appQQQ commited on
Commit
b27f5af
·
verified ·
1 Parent(s): 7c0d55b

perf: ROUTE_AND_REWRITE_PROMPT 合并提示

Browse files
Files changed (1) hide show
  1. app/agents/prompts.py +19 -17
app/agents/prompts.py CHANGED
@@ -1,28 +1,30 @@
1
  """中英系统提示词. 集中管理, 便于 A/B 调优."""
2
 
3
- # 路由判断提示
4
- ROUTE_PROMPT = """你是一名 query 路由器. 根据用户问题, 决定走哪条路:
 
 
5
 
6
- - "direct": 闲聊/通用知识/不需检索 (如"你好", "今天天气")
7
- - "retrieve": 需要知识库检索 (绝大多数问题)
8
- - "multi_step": 复杂多步, 拆解为个子问题
9
-
10
- 仅输出一个 JSON, 不要解释: {"route": "direct"|"retrieve"|"multi_step", "reason": "<20字内>"}
11
- """
12
 
 
 
 
 
13
 
14
- # 查询改写提示 (用于提高检索召回)
15
- QUERY_REWRITE_PROMPT = """你是查询改写助手. 给定用户的原始问题, 生成 1-3 个改写版本, 用于提升向量检索召回率.
16
 
17
- 策略:
18
- - 加入同义词 / 别名
19
- - 改写为更具体的陈述句
20
- - 如果是缩写, 展开全称
21
 
22
- 仅输出 JSON: {{"rewrites": ["...", "..."]}}
23
 
24
- 原始问题: {query}
25
- """
 
26
 
27
 
28
  # 答案生成主提示 (含引用)
 
1
  """中英系统提示词. 集中管理, 便于 A/B 调优."""
2
 
3
+ # ⚡ 合并版: 单次 LLM 调用同时完成 route + query_rewrite
4
+ # 旧版: route_node (LLM 1) → query_rewrite_node (LLM 2) 串行, 两次 RTT 0.5-1.5s
5
+ # 新版: route_and_rewrite_node 一次 LLM 输出 {route, query, steps}, 省一次 RTT
6
+ ROUTE_AND_REWRITE_PROMPT = """你是 query 路由器 + 改写器. 根据用户问题, **单次**输出三件事:
7
 
8
+ 1. "route": 走哪条路
9
+ - "direct": 闲聊/通用/不需要检索 (如"你好", "今天天气")
10
+ - "retrieve": 需要知识库检索 (绝大问题)
11
+ - "multi_step": 复杂多步, 需要拆解为多个子问题
 
 
12
 
13
+ 2. "query": 改写后的检索串
14
+ - direct: 原样输出
15
+ - retrieve: 加入同义词/别名/更具体的陈述, 提升向量召回. 若原 query 已经清晰, 可原样
16
+ - multi_step: 输出**第一个**子问题, 后续子问题放 steps
17
 
18
+ 3. "steps": 子问题列表 (仅 multi_step 时填 2-4 个, 其他 route 填空数组)
 
19
 
20
+ 仅输出一个 JSON, 不要解释:
21
+ {{"route": "direct"|"retrieve"|"multi_step", "query": "...", "steps": []}}
22
+ """
 
23
 
 
24
 
25
+ # 旧版: 分开两次 LLM (保留作为 fallback 备查, 不被代码引用)
26
+ # ROUTE_PROMPT = ...
27
+ # QUERY_REWRITE_PROMPT = ...
28
 
29
 
30
  # 答案生成主提示 (含引用)