Releases: QM-newer/YanXi-KCN
Releases · QM-newer/YanXi-KCN
Release list
v1.0.3 修复 ChromaDB 跨进程 HNSW 索引不兼容
修复 ChromaDB 跨进程 HNSW 索引不兼容问题,并新增向量库自动恢复机制。语音模块(voice/)无变动。
🐛 问题根因
ChromaDB 1.5.x 的 Rust HNSW 后端在 Windows 跨进程场景下存在序列化不兼容:
- 同一进程内构建完索引可以立即查询 ✅
- 新进程加载时触发
"Error loading hnsw index"❌ - 导致
load_vector_index()返回None,整个 RAG pipeline 失效
🔧 解决方案:三级恢复策略
直接从 chroma.sqlite3 读取文档和元数据(绕过损坏的 HNSW 索引文件),删除旧索引后重建。
📁 涉及改动
| 文件 | 改动 |
|---|---|
src/indexing/vector_builder.py |
新增 _extract_records_from_chroma_sqlite();三级恢复逻辑 |
src/factory.py |
加载时传入 v6 SQLite 作为 fallback |
scripts/rebuild_vector_store.py |
新增:独立向量库重建工具 |
indices/vector_store/ |
新增:跨进程兼容的新版向量索引 |
requirements.txt |
新增 langchain-core、langchain-chroma |
✅ 验证
修复后所有测试用例正常命中 RAG,置信度 0.75–0.95。
v1.0.2 优化 Hybrid RAG 检索架构和 LLM 路由策略。
v1.0.2 主要优化 Hybrid RAG 检索架构和 LLM 路由策略。语音模块(voice/)无变动。
⭐ 核心改动
Hybrid RAG 重构(hybrid_rag.py)
- 主流程代码重构,结构更清晰
LLM 路由优化(llm_router.py)
- graph 路由关键词(风险/诈骗/中奖/涉嫌等)统一路由到 hybrid,让向量检索和图检索互为 fallback,避免纯 graph 路由命中为 0
- LLM 返回 graph 决策但置信度 < 0.85 时自动降级为 hybrid
- 新增关键词:中奖、涉嫌、案件
🔧 配置适配
- 向量库路径从
d:/temp/移到项目内indices/vector_store,支持跨平台 - 移除
streamlit依赖(未使用的 Web UI)
🧹 代码清理
- 清理 6 个文件中的无用导入和死代码
- 移除 RAG-CITY 参考注释
- 更新配置路径文档
v1.0.1 修复 10 个 Bug + 新增 Agent 架构
v1.0.1 主要针对 Hybrid RAG 检索与分类引擎进行修复和增强,语音模块(voice/)本次无变动。
🔧 Bug 修复(10 项)
LLM 调用层
- 修复
llm_client.generate()方法不存在的问题,统一改为call() - 配置了
max_retries=3但从未生效,现已加入真重试循环(含指数退避等待)
图谱检索(graph_retriever.py)
- 中文社区匹配时
set(query)只拆出单字,Jaccard 评分永远为 0,修复为基于正则的双字以上词组分词 int(cid_str)遇上非数字社区 ID(如从 summary 检索返回的字符串 ID)直接崩溃,加try/except安全降级- 社区摘要向量库(summary_db)构建后从未调用,白建了——
retrieve()已改为优先走支持检索 _load()只支持 JSON 格式图文件,.pkl无法加载——按扩展名自动区分
来电分类(call_classifier.py)
- LLM 增强判断要求返回的 category 与预定义名称完全精确匹配,多个标点/空格就判失败——改为模糊子串匹配 + 标点清理
检索路由(router.py)
- 风险检测只依赖可能缺失的 metadata 字段,无元数据时直接漏检——增加内容关键词(诈骗/洗钱/违法等)双重保障
结果重排(reranker.py)
- 字符级交集评分过于粗糙,中文同义词完全无法匹配——改为词级分词匹配,权重 0.1 提升至 0.3
Pipeline(pipeline.py)
- Windows GBK 环境下 emoji ⏱️ 编码报错——替换为
[TIMING]纯文本标记
索引构建脚本(community_builder.py / build_indices.py)
- 两处调用了不存在的
llm_client.generate()方法——统一迁移至call()
✨ 新增内容(RAG 核心)
src/agents/base.py—AgentResult数据类,规范化 Agent 调用返回值src/agents/factory.py— Agent 工厂函数,支持按来电场景(delivery / risk / normal)自动分发对应处理逻辑tests/test_bugfixes.py— 覆盖上述 10 项修复的单元测试,全部通过
🧹 代码质量
langchain_community.vectorstores.Chroma已弃用,迁移至langchain_chroma
⚠️ 本次未涉及
voice/语音模块(ASR、录音、TTS)无任何改动,保持 v1.0 版本