在heli_db_to_excel.py中添加SEQUENCE_ID字段到数据处理结果,并新增根据会话ID查询SEQUENCE_ID的方法;在DifyCompareTest.py中优化回答判断逻辑,增加对空回答的处理,调整文件处理的最大并发数。
This commit is contained in:
@@ -277,6 +277,7 @@ class DataProcessor:
|
|||||||
"消息发送者": record["message_sender"],
|
"消息发送者": record["message_sender"],
|
||||||
"发送者昵称": record["sender_nickname"],
|
"发送者昵称": record["sender_nickname"],
|
||||||
"创建时间": record["CREATE_TIME"],
|
"创建时间": record["CREATE_TIME"],
|
||||||
|
"SEQUENCE_ID": record["SEQUENCE_ID"],
|
||||||
})
|
})
|
||||||
|
|
||||||
return result
|
return result
|
||||||
@@ -337,11 +338,21 @@ class MariaDBClient:
|
|||||||
df, _ = self.execute_query(sql, (start_date, end_date))
|
df, _ = self.execute_query(sql, (start_date, end_date))
|
||||||
return df
|
return df
|
||||||
|
|
||||||
|
def get_sequence_id_by_session_id(self, session_id: str) -> Optional[pd.DataFrame]:
|
||||||
|
"""根据会话ID查询消息详情"""
|
||||||
|
sql = """
|
||||||
|
SELECT SEQUENCE_ID
|
||||||
|
FROM crm_hlyj.crm_hlyj_dmri
|
||||||
|
WHERE SESSION_ID = %s
|
||||||
|
"""
|
||||||
|
df, _ = self.execute_query(sql, (session_id,))
|
||||||
|
return df
|
||||||
|
|
||||||
def query_messages_by_session_id(self, session_id: str) -> Optional[pd.DataFrame]:
|
def query_messages_by_session_id(self, session_id: str) -> Optional[pd.DataFrame]:
|
||||||
"""根据会话ID查询消息详情"""
|
"""根据会话ID查询消息详情"""
|
||||||
sql = """
|
sql = """
|
||||||
SELECT CREATE_TIME, CUS_NICK_NAME, MODE, MSG_TYPE, AGENT_NAME, CONTENT,
|
SELECT CREATE_TIME, CUS_NICK_NAME, MODE, MSG_TYPE, AGENT_NAME, CONTENT,
|
||||||
SESSION_ID, ACCOUNT, SYSTEM_MODE_MESSAGE_TYPE
|
SESSION_ID, ACCOUNT, SYSTEM_MODE_MESSAGE_TYPE, SEQUENCE_ID
|
||||||
FROM crm_hlyj.crm_hlyj_dmri
|
FROM crm_hlyj.crm_hlyj_dmri
|
||||||
WHERE SESSION_ID = %s
|
WHERE SESSION_ID = %s
|
||||||
ORDER BY CREATE_TIME
|
ORDER BY CREATE_TIME
|
||||||
|
|||||||
@@ -69,7 +69,8 @@ class DifyCompareTest:
|
|||||||
|
|
||||||
max_retries = 3
|
max_retries = 3
|
||||||
retry_count = 0
|
retry_count = 0
|
||||||
|
if len(old_answer) == 0 or len(now_answer) == 0:
|
||||||
|
return "回答基本不相同"
|
||||||
while retry_count < max_retries:
|
while retry_count < max_retries:
|
||||||
try:
|
try:
|
||||||
response = self.llm.invoke(user_prompt=user_prompt, need_retry=False, response_format={"type": "json_object"})
|
response = self.llm.invoke(user_prompt=user_prompt, need_retry=False, response_format={"type": "json_object"})
|
||||||
@@ -100,15 +101,14 @@ class DifyCompareTest:
|
|||||||
)
|
)
|
||||||
result = response.json()
|
result = response.json()
|
||||||
answer = result.get('answer', "")
|
answer = result.get('answer', "")
|
||||||
|
answer = answer.split("----------------------------------------")[0].strip()
|
||||||
if len(answer) == 0:
|
if len(answer) == 0:
|
||||||
raise Exception(f"回答为空: {result}")
|
raise Exception(f"回答为空: {result}")
|
||||||
if old_answer:
|
if old_answer:
|
||||||
judge_result = self.llm_judge_answer(old_answer=old_answer, now_answer=answer)
|
judge_result = self.llm_judge_answer(old_answer=old_answer, now_answer=answer)
|
||||||
else:
|
else:
|
||||||
judge_result=""
|
judge_result=""
|
||||||
judge_result=""
|
|
||||||
# 只取回答的前半部分
|
# 只取回答的前半部分
|
||||||
answer = answer.split("----------------------------------------")[0].strip()
|
|
||||||
message_id = result.get('message_id', "")
|
message_id = result.get('message_id', "")
|
||||||
return answer, judge_result, message_id
|
return answer, judge_result, message_id
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@@ -247,14 +247,14 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
# 处理第一个文件
|
# 处理第一个文件
|
||||||
excel_files = [
|
excel_files = [
|
||||||
# ("data/excel/5月.xlsx", "data/excel/5月问答对比.xlsx"),
|
("data/excel/300专业提问.xlsx", "data/excel/300专业提问_问答测试.xlsx"),
|
||||||
("data/excel/第四轮点踩问题.xlsx", "data/excel/第四轮点踩问题_问答测试.xlsx")
|
# ("data/excel/有知识的.xlsx", "data/excel/有知识的_问答测试.xlsx")
|
||||||
]
|
]
|
||||||
|
|
||||||
for excel_path, save_path in excel_files:
|
for excel_path, save_path in excel_files:
|
||||||
logging.info(f"开始处理文件: {excel_path}")
|
logging.info(f"开始处理文件: {excel_path}")
|
||||||
try:
|
try:
|
||||||
dify_compare_test.run(excel_path=excel_path, save_path=save_path, max_workers=3)
|
dify_compare_test.run(excel_path=excel_path, save_path=save_path, max_workers=10)
|
||||||
logging.info(f"文件处理完成: {excel_path}")
|
logging.info(f"文件处理完成: {excel_path}")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(f"处理文件 {excel_path} 时出错: {e}")
|
logging.error(f"处理文件 {excel_path} 时出错: {e}")
|
||||||
|
|||||||
Reference in New Issue
Block a user