Files
SuperBizAgent-java/scripts/README-rebuild-hybrid-knowledge.md
zhuyongxin 1e532fb851 chore(rag): rebuild script in Python and use biz collection
Switch default knowledge collection back to biz (drop+recreate on rebuild),
replace PowerShell rebuild runner with Python, skip README.md imports, and
merge duplicate rag keys in application.yml.
2026-07-28 09:49:43 +08:00

2.6 KiB
Raw Permalink Blame History

重建 hybrid 知识库(dense + BM25)

面向当前 knowledge_base/ 目录文档,清空并重建配置中的 Milvus collection(默认 biz)。

前提

  1. 应用已启动(默认 http://localhost:9900)
  2. MILVUS_TOKEN 等连接配置可用
  3. application.yml 已配置:
milvus:
  collection: biz
retrieval:
  search:
    mode: hybrid
knowledge:
  base-path: knowledge_base/

一键脚本(Python)

在项目根目录执行:

python scripts/rebuild_hybrid_knowledge.py --confirm REBUILD

指定服务地址:

python scripts/rebuild_hybrid_knowledge.py --base-url http://127.0.0.1:9900 --confirm REBUILD

跳过前后 stats:

python scripts/rebuild_hybrid_knowledge.py --confirm REBUILD --skip-stats

依赖:Python 3.9+ 标准库即可(无需 pip 包)。

脚本会做什么

步骤 动作
1 检查 /milvus/health
2 打印重建前 /api/knowledge/stats
3 POST /api/knowledge/rebuild-hybrid?confirm=REBUILD
4 打印重建后 stats

服务端 rebuild-hybrid 内部顺序:

  1. Drop + recreate Milvus collection(milvus.collection,默认 biz)
    • 原有向量数据会被删除
    • 按 dense + BM25 schema 重建
  2. 清空 MySQL api_document
  3. 清空 内存 L0 索引
  4. 扫描 knowledge_base/**/*.md(跳过 README.md)并 force 全量导入
    • 写 MySQL 元数据
    • 切片
    • 写 dense 向量 + BM25 search_text
    • 更新 L0

不会做什么

  • 不会动 knowledge_base/ 源文件
  • 不会在未传 --confirm REBUILD 时执行

手动 curl 等价命令

# 重建(危险:会清空 biz collection + api_document)
curl -X POST "http://localhost:9900/api/knowledge/rebuild-hybrid?confirm=REBUILD"

# 仅强制导入(不 drop collection)
curl -X POST "http://localhost:9900/api/knowledge/init?force=true"

# 统计
curl "http://localhost:9900/api/knowledge/stats"

成功判据

响应中大致应有:

{
  "success": true,
  "collection": "biz",
  "inserted": 15,
  "failed": 0,
  "milvus": { "recreated": true, "loaded": true }
}

然后用一条知识库里真实存在的术语/故障词走 lookup_knowledge 或 chat 验证 hybrid 命中。

失败排查

现象 可能原因
connect / token 错误 MILVUS_TOKEN、host、database
BM25 / analyzer 相关报错 云端 Milvus/Zilliz 版本不支持 BM25 Function
inserted=0 knowledge_base 路径不对,或 md 缺 frontmatter/title
failed>0 看响应 details 与应用日志