Skip to content

Releases: QM-newer/YanXi-KCN

v1.0.3 修复 ChromaDB 跨进程 HNSW 索引不兼容

Choose a tag to compare

@QM-newer QM-newer released this 29 May 02:18

修复 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-corelangchain-chroma

✅ 验证

修复后所有测试用例正常命中 RAG,置信度 0.75–0.95。

v1.0.2 优化 Hybrid RAG 检索架构和 LLM 路由策略。

Choose a tag to compare

@QM-newer QM-newer released this 28 May 08:13

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 架构

Choose a tag to compare

@QM-newer QM-newer released this 26 May 05:46

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.pyAgentResult 数据类,规范化 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 版本

v1.0.0 演示视频

Choose a tag to compare

@QM-newer QM-newer released this 26 May 05:09
add demo.mp4 to gitignore