业务背景
公司内部文档散落在 Confluence、飞书文档与代码仓库 README 中,新员工上手平均要问 30+ 个问题才能开工。目标是做一个「问了就有答案、答案带出处」的内部知识库机器人。
架构简述
- 数据管道:Python 定时任务抓取多源文档 → 清洗分块 → 向量化入 pgvector;
- 检索策略:BM25 关键词检索 + 向量语义检索混合召回,RRF 融合排序;
- 生成层:FastAPI 服务封装 LLM 调用,Prompt 强制「只依据检索到的段落作答」;
- 溯源:每个回答附带原文档链接与段落引用,点击直达。
核心业务成果
- 周活 200+ 员工,日均提问 800+;
- 新人上手周期从 2 周缩短至 5 天;
- 回答采纳率(用户点「有帮助」)达到 87%;
- 文档维护团队收到的问题工单下降 40%。
技术难点总结
- 检索质量调优:纯向量检索对专有名词(内部系统名、缩写)召回差,混合检索 + 同义词表把 Top-5 命中率从 62% 提到 89%;
- 分块策略:按标题层级分块而非固定 token 数,表格单独成块并保留上下文标题链;
- 拒答机制:检索置信度低于阈值时明确说「不知道」并转人工,杜绝一本正经地胡编;
- 权限隔离:文档 ACL 同步到向量库元数据,查询时按部门过滤,避免越权泄露。
