1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import json
- from matplotlib.font_manager import json_dump
- import model.records
- from app.gpt.service.ali_filetrans import file_trans
- from app.gpt.service.openai import openai_check_intent
- from common.log import log
- from database.db_mysql import async_db_session
- async def get_intent(body: dict):
- notify = body['notify']
- record = model.records.Records(
- body=body,
- staff_no=str(notify['staffNo']),
- caller=str(notify['caller']),
- callee=str(notify['callee']),
- record_file=str(notify['recordFile']),
- session=str(notify['session']),
- )
- mp3url = "https://toolsapi.gkscrm.com/api/v1/gpt/recordfile?filepath=" + notify['recordFile']
- get_ali_response = file_trans(mp3url)
- if not get_ali_response:
- log.error("ali_trans error")
- return False
- if "Result" not in get_ali_response:
- log.error("ali_trans response not Result")
- return False
- record.ali_trans = get_ali_response
- record.ali_task_id = get_ali_response["TaskId"]
- sentences = get_ali_response["Result"]["Sentences"]
- chats = ""
- for sentence in sentences:
- chats += "speaker-" + sentence["SpeakerId"] + ": " + sentence["Text"] + "\n"
- log.info("聊天记录如下:\n" + chats)
- record.chats = chats
- user_intent = openai_check_intent(chats)
- record.user_intent = user_intent.user_intent
- record.accept = user_intent.accept
- async with async_db_session() as db:
- db.add(record)
- await db.commit()
- return True
|