Spaces:
Running
Running
perf: ROUTE_AND_REWRITE_PROMPT 合并提示
Browse files- app/agents/prompts.py +19 -17
app/agents/prompts.py
CHANGED
|
@@ -1,28 +1,30 @@
|
|
| 1 |
"""中英系统提示词. 集中管理, 便于 A/B 调优."""
|
| 2 |
|
| 3 |
-
#
|
| 4 |
-
|
|
|
|
|
|
|
| 5 |
|
| 6 |
-
|
| 7 |
-
- "
|
| 8 |
-
- "
|
| 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 |
-
|
| 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 |
# 答案生成主提示 (含引用)
|