Commit Graph

4 Commits

Author SHA1 Message Date
Elaina
7ced5d9a10 docs: 添加论文《上下文门控器》 2026-04-22 01:22:13 +08:00
Elaina
64ca67c051 fix: 修复 _active_topic 在话题切换后不更新的 bug
问题: _active_topic 只在 continue 时更新,switch 后停留在旧值,导致 overlap 计算失效。

修复:
- select() 每次都更新 _active_topic(无论是否切换)
- 同步调用 topic_gate.update_active_topic() 保持两份状态一致

同时更新 TopicGate 实例的活跃话题状态,解决两份状态独立的问题。
2026-04-22 01:14:13 +08:00
Elaina
bbaab47de4 docs: 添加 SPEC.md 规格文档 2026-04-22 01:12:03 +08:00
Elaina
071f9ef418 feat: 上下文门控器初始实现
- anchor.py: 锚点提取(中文 2/3-gram、英文单词、代码标识符)
- block.py: 对话块数据结构
- topic_gate.py: 话题门控(overlap/new_ratio 判断切换)
- sparse.py: 稀疏召回(BM25/IDF-overlap + exact match 加分)
- selector.py: 最小覆盖贪心选择
- gatekeeper.py: 完整流程封装
- tests/: 单元测试 + 端到端测试(含 MiniMax API 验证)

特性:
- 纯 Python,无额外模型依赖
- 支持 2 核 2G 环境
- 话题门控 + 稀疏召回 + 最小覆盖选择
2026-04-22 01:09:35 +08:00