用 380 行 Python 给公司做了个离线知识库(带出处、带权限)

luobobo8965 2026-10-24 23:47 1

公司制度文档散在网盘、群聊、个人电脑,新人问、老人答,答的不一定是现行版本。试过 SaaS 知识库,卡在「数据出内网」和「按人头收费」两点,就自己写了一个。


只做一件事:把 Markdown 丢进 docs/,就能提问,回答带《文档》/章节出处,能点开核对原文;文档带可见范围(普通员工查不到财务制度,财务角色能看到)。全程不联网,零第三方依赖,一个文件 380 行。


几个实现上的小设计:



  • 分块:维护标题栈 + 段落,约 420 字一块,每块自带「《员工报销制度》/ 报销标准」这样的路径,回答时直接当引用

  • 中文分词:二元组切分,不依赖分词库,英文数字按词切

  • 召回:BM25 + TF-IDF 双路加权。第一版问「出差住宿报销上限」,第一条返回的是「差旅餐补」——加「查询词覆盖率」加权后才稳定命中住宿段落

  • 回答默认抽取式,不生成。制度类问题最怕编造,返回原文让人自己核对


部署就两条命令:python3 kb.py ingest 建索引,python3 kb.py serve 起服务,目录拷到内网机器就能用。


演示( 89 秒纯录屏): https://youtu.be/cNloexteD4s
实现细节长文: https://juejin.cn/spost/7699848140908544010
代码: https://github.com/luobobo896


轻喷。主要想听检索排序和文档权限这两块还有哪些坑,或者你们公司现在怎么解决「制度找不到」这个问题。

最新回复 (1)
  • loading 10-25 09:13
    1楼
    代码地址给个 github 账号是什么意思?

    我看了你账号上的 17 个 repo ,没找到。

    没诚意就别发出来。
* 帖子来源V2EX
返回