ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

rag-kb:不联网也能查表格,把 CSV/Excel 变成可提问的本地资料

rag-kb:不联网也能查表格,把 CSV/Excel 变成可提问的本地资料

rag-kb:不联网也能查表格,把 CSV/Excel 变成可提问的本地资料

rag-kb(PyPI 包名kb-memory)是一个本地优先的 Agent 记忆与知识服务:单进程常驻,
同时提供 REST 和 MCP,把记忆、文档、网页、表格统一进一个可检索的本地库。
不配置大模型也能存取和检索;配置本地 Ollama 或云端 API 后,才启用 RAG 问答。

它解决什么问题

做测试、实施或运维的人大概都遇到过:一个项目几十个用例表、导出报表、配置清单,散在十几个目录。
想确认“用户550的分数是多少”,要打开 Excel、筛选、跨表找;数据涉及业务字段,又不敢传到在线文档。

rag-kb 的做法是:整文件夹导入,逐行入库,离线提问。

功能一览

  • 记忆:写入 / 更新 / 删除 / 列表,支持标签、项目子库、关联图谱
  • 知识入库:txt / md / pdf / docx / csv / xlsx / 网页,支持整文件夹批量导入
  • 检索:向量 + BM25 混合检索,可选重排与稀疏第三路
  • 表格问答:CSV/XLSX 逐行入库,单元格问题确定性作答,不需要 LLM
  • REST + MCP:13 个 MCP 工具,Agent 可直接读写记忆和知识库
  • 离线:默认嵌入模型约 92MB,CPU 可跑,数据不出本机

它不替代 SQL/BI,适合“在一堆表里快速找一个值/一行记录”。

五分钟上手

pip install"kb-memory[ingest]"python-m kb serve

打开http://127.0.0.1:8000/ui,把整个文件夹拖进页面;也可以命令行批量导入:

python-m kb import"D:\用例数据"--project smoke

然后直接问:

python-m kb ask"用户550的分数是多少"--project smoke# → 用户550:分数=30

多 sheet 会按表名消歧:问“五班张芳”只答五班;问“张芳的总分”“韩梅梅的平均分”会按行聚合。
没命中的问题仍走原来的 RAG 流程。

15 个 sheet 的实测

我做了一份 15 个班级 sheet 的成绩表:每班 10 名学生,同一个姓名(张芳)故意分布在 15 个 sheet 里,分数各不相同。

指标结果
数据规模15 个 sheet × 10 行 = 150 行
导入耗时6.06 秒(CPU,批量导入)
问题数20 题(15 个单 sheet 查询 + 3 个同名跨 sheet 消歧 + 2 个按行聚合)
准确率20 / 20 = 100%
延迟P50 7.9ms,P95 28.0ms

例如“十五班张芳的数学成绩是多少”只取十五班,不会命中五班;“十班张芳的总分是多少”直接读总分类。

边界也要说清楚:不点名的全班汇总(如“一班语文总分是多少”)不走确定性表格路径,会回退到 RAG/LLM;
未配置 LLM 时返回 503。它擅长行级查询,不是报表引擎。

REST 和 MCP 都能管

# 写入一条记忆Invoke-RestMethod-Uri http://127.0.0.1:8000/api/v1/memories-Method Post `-ContentType'application/json'-Body'{"content":"冒烟用例必须先登录"}'# 查看已入库资料Invoke-RestMethod-Uri http://127.0.0.1:8000/api/v1/documents# 删除一份资料的全部 chunkInvoke-RestMethod-Uri"http://127.0.0.1:8000/api/v1/documents/用例.csv"-Method Delete

MCP 侧对应 13 个工具,这个场景常用的是add_document、list_documents、delete_document,
以及write_memory/search_memory/delete_memory。Claude Code、Cursor、TraeWork
不需要切 REST,就能完成“导入 → 查看 → 提问 → 删除”的闭环。

适合谁

  • 测试/实施/运维:经常面对 CSV、Excel、配置清单,需要离线快速定位一行数据
  • 本地 Agent 用户:想让 AI 记住偏好、读写本地资料,又不想把数据上云
  • 小团队:一台 2C2G 的机器就能常驻,不需要额外向量库服务

链接

  • GitHub:https://github.com/fish827-08/rag-kb
  • Gitee:https://gitee.com/little-fishy/rag-kb
  • PyPI:pip install "kb-memory[ingest]"
  • 发布说明:docs/RELEASE_NOTES_2.4.4.md

如果你也在用 CSV/Excel 做测试数据,欢迎说说你最想“一句话查出来”的字段是什么。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进