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) log.info("用户意图为:" + user_intent.model_dump_json(indent=4)) record.user_intent = user_intent.user_intent record.basis = user_intent.basis if user_intent.accept: record.accept = 1 else: record.accept = 2 async with async_db_session() as db: db.add(record) await db.commit() return True