From 948827d5538f828d5674b2ddad9dbaa56263d5c0 Mon Sep 17 00:00:00 2001 From: ouyangyouzhang Date: Fri, 1 Aug 2025 13:45:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8heli=5Fdb=5Fto=5Fexcel.py=E4=B8=AD?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0SEQUENCE=5FID=E5=AD=97=E6=AE=B5=E5=88=B0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86=E7=BB=93=E6=9E=9C=EF=BC=8C?= =?UTF-8?q?=E5=B9=B6=E6=96=B0=E5=A2=9E=E6=A0=B9=E6=8D=AE=E4=BC=9A=E8=AF=9D?= =?UTF-8?q?ID=E6=9F=A5=E8=AF=A2SEQUENCE=5FID=E7=9A=84=E6=96=B9=E6=B3=95?= =?UTF-8?q?=EF=BC=9B=E5=9C=A8DifyCompareTest.py=E4=B8=AD=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=9B=9E=E7=AD=94=E5=88=A4=E6=96=AD=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AF=B9=E7=A9=BA=E5=9B=9E=E7=AD=94=E7=9A=84?= =?UTF-8?q?=E5=A4=84=E7=90=86=EF=BC=8C=E8=B0=83=E6=95=B4=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=A4=84=E7=90=86=E7=9A=84=E6=9C=80=E5=A4=A7=E5=B9=B6=E5=8F=91?= =?UTF-8?q?=E6=95=B0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rag2_0/demo/heli_db_to_excel.py | 13 ++++++++++++- rag2_0/dify/DifyCompareTest.py | 12 ++++++------ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/rag2_0/demo/heli_db_to_excel.py b/rag2_0/demo/heli_db_to_excel.py index 58c2ca9..6d59907 100755 --- a/rag2_0/demo/heli_db_to_excel.py +++ b/rag2_0/demo/heli_db_to_excel.py @@ -277,6 +277,7 @@ class DataProcessor: "消息发送者": record["message_sender"], "发送者昵称": record["sender_nickname"], "创建时间": record["CREATE_TIME"], + "SEQUENCE_ID": record["SEQUENCE_ID"], }) return result @@ -337,11 +338,21 @@ class MariaDBClient: df, _ = self.execute_query(sql, (start_date, end_date)) 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]: """根据会话ID查询消息详情""" sql = """ 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 WHERE SESSION_ID = %s ORDER BY CREATE_TIME diff --git a/rag2_0/dify/DifyCompareTest.py b/rag2_0/dify/DifyCompareTest.py index 7186023..cf3cd0d 100755 --- a/rag2_0/dify/DifyCompareTest.py +++ b/rag2_0/dify/DifyCompareTest.py @@ -69,7 +69,8 @@ class DifyCompareTest: max_retries = 3 retry_count = 0 - + if len(old_answer) == 0 or len(now_answer) == 0: + return "回答基本不相同" while retry_count < max_retries: try: 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() answer = result.get('answer', "") + answer = answer.split("----------------------------------------")[0].strip() if len(answer) == 0: raise Exception(f"回答为空: {result}") if old_answer: judge_result = self.llm_judge_answer(old_answer=old_answer, now_answer=answer) else: judge_result="" - judge_result="" # 只取回答的前半部分 - answer = answer.split("----------------------------------------")[0].strip() message_id = result.get('message_id', "") return answer, judge_result, message_id except Exception as e: @@ -247,14 +247,14 @@ if __name__ == "__main__": # 处理第一个文件 excel_files = [ - # ("data/excel/5月.xlsx", "data/excel/5月问答对比.xlsx"), - ("data/excel/第四轮点踩问题.xlsx", "data/excel/第四轮点踩问题_问答测试.xlsx") + ("data/excel/300专业提问.xlsx", "data/excel/300专业提问_问答测试.xlsx"), + # ("data/excel/有知识的.xlsx", "data/excel/有知识的_问答测试.xlsx") ] for excel_path, save_path in excel_files: logging.info(f"开始处理文件: {excel_path}") 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}") except Exception as e: logging.error(f"处理文件 {excel_path} 时出错: {e}")