Files
ai-g3sb-backman2.0/TASK_SUMMARY.md
T

33 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 任务基本信息
- **任务**:方案A:同一聊天框多话题时避免上下文污染(新话题禁用 `dialog_context`)
- **项目**:`backman-camel`(FastAPI Text2SQL API)
- **范围**:后端接口 `/g3sb/api/nl/chat`、`/g3sb/api/nl/chat/stream` 的会话上文注入策略
## 改动说明
- **新增**:`backend/utils/dialog_context.py` 增加 `is_likely_follow_up(user_text)`,用于轻量判断是否为续问/沿用口径。
- **调整**:`api_server.py` `_load_session_text2sql_context(request, user_text)` 在构造上文时:
- **续问**:注入最近 2 轮会话摘要
- **新话题**:不注入历史摘要(`max_pairs=0`)
- **目的**:减少多话题情况下历史 SQL/条件回流导致的串话与错误 SQL。
## 影响与风险
- **破坏性变更**:否(对外 API 不变)
- **风险等级**:中
- 可能将少量“隐式续问”误判为新话题,导致指代消解能力下降
- 但能显著降低跨话题上下文污染导致的 SQL 错误
- **回滚**:回退本次改动即可恢复旧策略(或将 `max_pairs` 恢复为默认值 8)
## 测试与验证
- 建议手工验证:
- 同一 session:先做话题A数据查询,再提一个完全不同话题B(无“再/按上面”等续问词),应不再引用 A 的表/过滤条件。
- 同一 session:首轮查询后,第二轮使用“再/按上面/沿用口径”等续问词,应仍能续用上轮口径生成 SQL。
## 后续事项
- 若误判率偏高,可迭代 `is_likely_follow_up` 规则(补充关键词/短语),或升级为轻量 LLM 判别器(方案B)。