소스 검색

feat:蜀道集团及下属公司名单、补充公司层级逻辑、补充十五类子意图识别逻辑

FanHong 1 주 전
부모
커밋
336a0a8973
3개의 변경된 파일17개의 추가작업 그리고 6개의 파일을 삭제
  1. 2 2
      shudao-chat-py/prompts/module_dispatch_template.md
  2. 13 3
      shudao-chat-py/services/qwen_service.py
  3. 2 1
      shudao-chat-py/utils/config.py

+ 2 - 2
shudao-chat-py/prompts/module_dispatch_template.md

@@ -2,10 +2,10 @@
 你是意图分发器。
 
 # Rules
-1. ai_writing: 要求"写通知/方案/报告/总结/制度"或"给出一份...要点/方法/流程/指南"等文稿撰写
+1. ai_writing: 只有在用户明确要求“写/起草/生成/拟写/整理一份”通知、方案、报告、总结、制度,或明确要求输出一份文稿型内容(如要点/方法/流程/指南)时,才归为 ai_writing
 2. safety_training: 要求"培训/PPT/课件/大纲"。
 3. exam_workshop: 要求"试卷/题库/考试/出题"。
-4. ai_qa: 普通问答/法规查询/闲聊/无法归类的。
+4. ai_qa: 普通问答/法规查询/制度查询/办法查询/已有文件内容咨询/闲聊/无法归类的。
 
 # Output
 仅输出JSON格式,严禁其他解释:

+ 13 - 3
shudao-chat-py/services/qwen_service.py

@@ -260,8 +260,11 @@ class QwenService:
             training_keywords = (
                 "培训课件", "培训大纲", "培训讲稿", "培训计划", "培训材料", "培训ppt", "课件", "讲稿", "大纲", "ppt"
             )
-            writing_keywords = (
-                "通知", "方案", "报告", "制度", "纪要", "函", "总结", "公文", "写一份", "写个", "起草", "润色", "改写"
+            writing_action_keywords = (
+                "写", "写个", "写一份", "写一个", "起草", "草拟", "拟一份", "拟写", "撰写", "生成", "润色", "改写", "给我一份", "帮我出一份", "整理一份", "拟定", "编写"
+            )
+            writing_document_keywords = (
+                "通知", "方案", "报告", "制度", "纪要", "函", "总结", "公文", "申请", "发言稿", "倡议书", "要点", "方法", "流程", "预案", "指南", "手册", "细则"
             )
 
             if any(keyword in normalized_message for keyword in exam_keywords):
@@ -270,7 +273,14 @@ class QwenService:
             if any(keyword in normalized_message for keyword in training_keywords):
                 return build_dispatch_result("safety-training", 0.8, "关键词规则命中安全培训")
 
-            if any(keyword in normalized_message for keyword in writing_keywords):
+            has_writing_action = any(
+                keyword in normalized_message for keyword in writing_action_keywords
+            )
+            has_writing_document = any(
+                keyword in normalized_message for keyword in writing_document_keywords
+            )
+
+            if has_writing_document and has_writing_action:
                 return build_dispatch_result("ai-writing", 0.8, "关键词规则命中AI写作")
 
             if "培训" in normalized_message and ("通知" in normalized_message or "方案" in normalized_message):

+ 2 - 1
shudao-chat-py/utils/config.py

@@ -191,7 +191,8 @@ class Settings:
         self.oss = OSSConfig(**config_data.get('oss', {}))
         self.aichat = AIChatConfig(**config_data.get('aichat', {}))
         self.speech = SpeechConfig(**config_data.get('speech', {}))
-        self.thinking_summary = ThinkingSummaryConfig(**config_data.get('thinking_summary', {}))
+        self.thinking_summary = ThinkingSummaryConfig(
+            **config_data.get('thinking_summary', {}))
         self.base_url = config_data.get(
             'base_url', 'https://aqai.shudaodsj.com:22001')