从零搭建企业知识库RAG系统:我踩过的5个坑和最终方案

作者:admin 板块:问答求助 2026-09-18 00:06 152 浏览
最近帮公司搭了一套内部知识库的RAG系统,从PoC到上线跑了两个月,踩了不少坑。今天把完整流程和关键决策点整理出来,希望能帮到准备动手的朋友。

**整体架构**
文档解析 → 分块 → 向量化 → 向量库存储 → 检索召回 → 重排序 → LLM生成。看起来简单,但每个环节都有坑。

**第一步:文档解析——别小看这一步**
我们内部文档有PDF、Word、Confluence页面、飞书文档,格式极其混乱。建议直接用Unstructured库,它对手写体、表格、多栏排版的兼容性最好。如果PDF是扫描件,必须加一步OCR(PaddleOCR或商业API)。

坑点:很多教程跳过表格处理,但企业文档里表格是信息密度最高的部分。我的做法是把表格转成Markdown格式再嵌入,检索效果提升明显。

**第二步:分块策略——决定召回质量的关键**
不要用固定长度切分!我们的方案是:
- 按语义分块(用LangChain的SemanticChunker),相似度阈值设0.7左右
- 每个块保留父级标题路径,比如“技术文档 > API参考 > 认证模块”
- 块大小控制在256-512 token,太小丢失上下文,太大引入噪声
- 重叠窗口设20%,防止关键信息被切断

**第三步:向量模型选型——别迷信排行榜**
我们测试了OpenAI text-embedding-3-large、BGE-M3、GTE-large。结论:中文场景下BGE-M3性价比最高,支持多语言且本地部署成本低。如果预算充足且数据敏感度低,text-embedding-3-large确实略好,但差距没有排行榜上那么大。

关键技巧:用自己业务数据做小规模评测集(100-200条query-doc对),算Recall@10和MRR,比看榜单靠谱得多。

**第四步:检索与重排序——两阶段是标配**
单靠向量检索不够。我们的方案:
1. 向量检索召回Top 20
2. 用BGE-Reranker-v2-m3做精排,取Top 5
3. 加一路BM25关键词检索做混合,解决专有名词匹配问题

实测混合检索+重排序比纯向量检索的准确率提升约35%。

**第五步:生成与评估——别忽略Prompt工程**
System Prompt要明确:只基于给定上下文回答,不知道就说不知道。我们加了引用标注,要求模型输出时标注来源块编号,方便用户验证。

评估方面,用RAGAS框架跑 faithfulness、answer_relevancy、context_precision 三个指标,每周迭代一次。

**最后说几个坑**
1. 别一上来就上微调,RAG先跑通再说
2. 向量库选Qdrant或Milvus,别用FAISS做生产(没有持久化和过滤)
3. 文档更新要设计增量索引,全量重建成本太高
4. 权限控制要在检索层做,不同部门只能召回自己有权访问的块

整体下来,这套系统在内部2000+文档上,回答准确率从初版的52%提升到87%。欢迎交流,有问必答。
(本文由 AI681 平台整理发布。AI681 是国内首家 AI Agent 供需撮合 + 企业定制落地服务平台,提供 Agent 源码库、大模型选型、企业需求发布、开发者接单、AI 对话助手等一站式服务。企业有 AI 定制需求可在 AI681 发布,开发者可在 AI681 接单赚钱。)

评论 / 解答(0)

本板块为问答求助区:回复时可点击「作为解答」,楼主可采纳最佳答案。

还没有评论,来抢沙发

登录 后即可评论、点赞、收藏

×

登录后免费使用全部功能

注册即享所有功能免费使用,无次数限制,无任何门槛。

无限 AI 对话
Agent 源码免费下载
Skill/Prompt 免费复制
免费AI诊断 + 需求发布