爱意满满的作品展示区。
luobobo8965

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

  •  
  •   luobobo8965 · 1 day ago · 890 views

    公司制度文档散在网盘、群聊、个人电脑,新人问、老人答,答的不一定是现行版本。试过 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 replies  •  2026-10-25 09:13:44 +08:00
    loading
        1
    loading  
       17h 42m ago
    代码地址给个 github 账号是什么意思?

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

    没诚意就别发出来。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1249 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 18:56 · PVG 02:56 · LAX 11:56 · JFK 14:56
    ♥ Do have faith in what you're doing.