重构会话处理逻辑,移除批量处理,改为直接并发处理每个会话,优化临时保存机制。同时,更新DifyExporter类,新增获取节点信息和词条列表的方法,调整导出列以包含备注信息
This commit is contained in:
@@ -120,10 +120,54 @@ class DifyExporter:
|
||||
if vertical_classification == "固定话术类":
|
||||
return "使用固定话术"
|
||||
|
||||
if sub_classification == "软件锁类":
|
||||
return "固定引导至博微软件助手中操作"
|
||||
return ""
|
||||
|
||||
def get_node_info_by_title(self, workflow_node_executions_info:list, title:str) -> dict:
|
||||
"""
|
||||
获取指定标题的节点信息
|
||||
"""
|
||||
if workflow_node_executions_info is None:
|
||||
return None
|
||||
for node_execution in workflow_node_executions_info:
|
||||
if node_execution["title"] == title:
|
||||
return node_execution
|
||||
|
||||
return None
|
||||
|
||||
def get_wiki_list(self, msg_debug_info) -> list:
|
||||
"""
|
||||
获取检索到的词条列表
|
||||
"""
|
||||
wiki_list = []
|
||||
if msg_debug_info['workflow_node_executions_info'] is None:
|
||||
return []
|
||||
node_execution = self.get_node_info_by_title(msg_debug_info['workflow_node_executions_info'], "提取处理后的知识")
|
||||
if node_execution is not None:
|
||||
if node_execution["outputs"] is None:
|
||||
return []
|
||||
source_kno = json.loads(node_execution["outputs"])["source_kno"]
|
||||
knowledge_list_metadata = json.loads(node_execution["outputs"])["knowledge_list_metadata"]
|
||||
for knowledge in knowledge_list_metadata:
|
||||
document_name = knowledge['metadata']['document_name']
|
||||
wiki_list.append(document_name.split("/")[-1])
|
||||
return wiki_list
|
||||
|
||||
lock_node_execution = self.get_node_info_by_title(msg_debug_info['workflow_node_executions_info'], "软件锁知识")
|
||||
if lock_node_execution is not None:
|
||||
if lock_node_execution["outputs"] is None:
|
||||
return []
|
||||
source_kno = json.loads(lock_node_execution["outputs"])['json'][0]['retrieve_result']
|
||||
for knowledge in source_kno:
|
||||
document_name = knowledge['metadata']['document_name']
|
||||
wiki_list.append(document_name.split("/")[-1])
|
||||
|
||||
wiki_list.append("锁信息查询")
|
||||
wiki_list.append("软件锁注册、激活、查锁、试用锁延期")
|
||||
return wiki_list
|
||||
|
||||
return []
|
||||
|
||||
|
||||
def extract_message_info(self, message):
|
||||
"""
|
||||
从消息中提取信息
|
||||
@@ -152,18 +196,7 @@ class DifyExporter:
|
||||
if not msg_debug_info:
|
||||
return None
|
||||
|
||||
wiki_list = []
|
||||
if msg_debug_info['workflow_node_executions_info'] is not None:
|
||||
for node_execution in msg_debug_info['workflow_node_executions_info']:
|
||||
if node_execution["title"] == "提取处理后的知识":
|
||||
if node_execution["outputs"] is None:
|
||||
break
|
||||
source_kno = json.loads(node_execution["outputs"])["source_kno"]
|
||||
knowledge_list_metadata = json.loads(node_execution["outputs"])["knowledge_list_metadata"]
|
||||
for knowledge in knowledge_list_metadata:
|
||||
document_name = knowledge['metadata']['document_name']
|
||||
wiki_list.append(document_name.split("/")[-1])
|
||||
|
||||
wiki_list = self.get_wiki_list(msg_debug_info)
|
||||
# 获取备注
|
||||
remark = self.get_remark(msg_debug_info)
|
||||
|
||||
@@ -239,7 +272,7 @@ class DifyExporter:
|
||||
# 设置列的顺序
|
||||
columns_order = [
|
||||
"msg_id", "提问", "回答", "提问人", "提问时间",
|
||||
"评价", "问题分类", "检索到的词条"
|
||||
"评价", "问题分类", "检索到的词条", "备注"
|
||||
]
|
||||
|
||||
# 确保所有列都存在,如果不存在则添加空列
|
||||
@@ -275,7 +308,8 @@ class DifyExporter:
|
||||
"提问时间": 15,
|
||||
"评价": 10,
|
||||
"问题分类": 20,
|
||||
"检索到的词条": 40
|
||||
"检索到的词条": 40,
|
||||
"备注": 40
|
||||
}
|
||||
|
||||
# 应用列宽设置
|
||||
@@ -347,7 +381,7 @@ if __name__ == "__main__":
|
||||
help='查询日志文件路径')
|
||||
parser.add_argument('--start_date', '-s', type=str, default="2025-07-14 00",
|
||||
help='开始日期时间,格式为YYYY-MM-DD HH,例如2025-07-08 14表示2025年7月8日14时(UTC+8时区)')
|
||||
parser.add_argument('--end_date', '-e', type=str, default="2025-07-14 15",
|
||||
parser.add_argument('--end_date', '-e', type=str, default=None,
|
||||
help='结束日期时间,格式为YYYY-MM-DD HH,例如2025-07-08 18表示2025年7月8日18时(UTC+8时区)')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
Reference in New Issue
Block a user