Browse Source

Merge branch 'feature/xueyiming/2025-10-09-update-query' of Server/rag_server into master

xueyiming 7 hours ago
parent
commit
37f8cc1284
1 changed files with 15 additions and 5 deletions
  1. 15 5
      applications/utils/chat/rag_chat_agent.py

+ 15 - 5
applications/utils/chat/rag_chat_agent.py

@@ -1,3 +1,4 @@
+import asyncio
 from typing import List
 
 from applications.config import Chunk
@@ -145,11 +146,20 @@ class RAGChatAgent:
     @staticmethod
     def split_query_prompt(query):
         prompt = f"""
-        请将以下问题拆解成最多3个宽泛的子问题。要求:
-
-        1. 子问题应该围绕原始问题本身展开,但需要更宽泛,避免过于细化。
-        2. 每个子问题应关注原始问题的核心内容,但从不同的角度、层面或维度去思考。
-        3. 子问题要求和原问题同属同一类别
+        你是一个信息检索助理,负责把用户的问题拆解为“更宽泛但仍同类、且彼此不重叠”的子问题,用于召回多样证据。
+
+        【目标】
+        - 生成 1–3 个“更宽泛”的子问题(broad questions),它们应与原问题同一类别/主题,但从不同角度扩展;避免把原问题切得更细(avoid over-specific)。
+        - 子问题之间尽量覆盖不同维度(例如:背景/原理、影响/应用、比较/趋势、方法/评估 等),减少语义重叠(≤20% 相似度)。
+
+        【必须遵守】
+        1) 与原问题同类:如果原问题是技术/科普/对比/流程类,子问题也应保持同类语气与目标。
+        2) 更宽泛:去掉过细的限制(具体数值/版本/人名/时间点/实现细节),但保留主题核心。
+        3) 去重与互补:不要改写成近义句;每个子问题关注的面不同(角度、层面或受众不同)。
+        4) 可检索性:避免抽象空话;每个子问题都应是可用于检索/召回的良好查询。
+        5) 数量自适应:若无法合理扩展到 3 个,就输出 1–2 个;不要为了凑数而重复。
+        6) 语言一致:与原问题同语言输出(中文入→中文出;英文入→英文出)。
+        7) 仅输出 JSON,严格符合下述 schema;不要输出额外文字或注释。
 
         原始问题:
         {query}