ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

答非所问的 RAG,问题不在大模型:用 WeKnora 从零搭建企业知识库实战

答非所问的 RAG,问题不在大模型:用 WeKnora 从零搭建企业知识库实战

答非所问的 RAG,问题不在大模型:用 WeKnora 从零搭建企业知识库实战

【免费下载链接】WeKnoraOpen-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.项目地址: https://gitcode.com/GitHub_Trending/we/WeKnora

很多团队把大模型接进内部资料后,得到的却是源源不断的"答非所问"——要么检索不到关键信息,要么引用了错误的文档。问题往往不在模型,而在知识链路。WeKnora是开源的 LLM 知识平台,能把原始文档变成可查询的RAG、会推理的 Agent 和自动维护的 Wiki。这篇文章带你从零搭建一套企业级 RAG 知识库,把每一步的坑提前说清楚。

先给 RAG 做个体检:问题多半出在"管道"而不是"水龙头"

先别急着换模型。回忆一下你上一次遇到"答非所问"的场景:是模型没能力回答,还是它根本没拿到该拿的资料?

绝大多数失败属于后者。一个 RAG 系统从文档到答案,至少要经过四道工序:

文档解析 → 分块切分 → 向量化与检索 → 大模型生成

这四道工序就是一条水管,大模型只是出水口。任何一段堵了,流出来的水都是歪的。你可以对照症状快速定位病灶:

症状大概率卡在哪
扫描件 PDF 完全问不出内容解析阶段没做 OCR
回答总是"半句",缺上下文分块太小,或没开父子分块
命中的块和问题明显不相关分块太大主题混杂,或没开混合检索
回答流畅但引用的文档对不上检索阈值太松,或没看引用验证
资料一多,问答和浏览都找不到北缺少结构化整理,见第五节 Wiki 模式

接下来的实战路线就按这条链路展开。我们不追求一次配齐所有高级功能,而是先跑通最小可用,再逐级加码——这也是生产环境最稳妥的推进方式。

第一级台阶:把文档喂进去,解析配置一次到位

知识库的第一口饭,来自文档解析。WeKnora 把这件事交给了独立的解析服务docreader(源码在docreader/),它负责把各种格式的文件变成统一的 Markdown 文本,供后续分块和向量化使用。

好消息是它支持的格式覆盖了绝大多数办公场景:PDF、Word、PPT、Excel、EPUB、Markdown、CSV、JSON,甚至网页 URL 和 MHTML 归档。所以第一步动作很简单:上传文档时不用纠结格式转换,直接把原始文件丢进去。

真正需要动脑的是下面三个高频坑:

坑一:扫描件 PDF 没文字。如果 PDF 是扫描版,docreader 会把它识别为"扫描页"并交给 OCR 处理——但前提是你配置了视觉模型。如果你在问答里完全搜不到扫描件的内容,先检查这一点,而不是怀疑检索有问题。

坑二:版式复杂,默认引擎不够用。内置解析引擎处理大多数文档没问题,但遇到 PDF 表格错位、版式还原差时,可以在知识库的解析设置里为pdf单独指定其他引擎,比如 MarkItDown 或 OpenDataLoader(后者做 PDF 版面分析,需要 Java 环境)。规则类似这样:

parser_engine_rules: - file_type: "pdf" engine: "opendataloader"

坑三:Excel 表头被当成数据。默认情况下首行按数据处理,如果你上传的是"首行是列名"的平铺表,记得打开「首行作为表头」开关,检索结果里的键值对才会变成"姓名: 张三"这种有语义的形式,而不是"A: 张三"。

判断解析效果好不好,最直接的方法是看分块预览——不是改完全部重新跑一遍,而是先拿一段文本试切,确认没问题再入库。解析和分块的详细机制可以参考文档解析与分块机制两篇文档。

第二级台阶:调好分块参数,让检索命中率明显提升

文档变成 Markdown 之后,下一个决定成败的环节是分块。你可以把分块理解成"切菜":切太碎,单块信息不完整,答案永远是半句;切太大,一块里混了好几个主题,向量表达失真,检索就答非所问。

WeKnora 的默认值是分块 512 字、重叠 80 字、自适应策略。这个默认值对大多数通用文档都够用,所以第一版建议先原样跑起来,拿到基线效果再调。真正需要动手的场景是这样的:

  • 回答缺上下文、经常答半句 → 调大chunk_size,或者开父子分块
  • 命中的块跟问题关系不大 → 调小chunk_size,让每块主题更集中
  • 资料是 FAQ、参数表这类条目式内容 → 重叠设为 0,避免相邻条目互相污染
  • 资料是长篇报告、论文 → 重叠调到 150–200,保住跨块的语义连贯

其中父子分块(parent-child)是性价比最高的升级项:它先用大窗口(默认 4096 字)切出父块,再在小窗口(默认 384 字)里切子块,检索时命中精确的子块、返回上下文完整的父块。相当于既保留了狙击枪的准头,又保留了望远镜的视野。

一个务实的建议:改分块参数之前,先用分块预览接口POST /api/v1/chunker/preview试切,不落库、不产生向量,改坏了也不影响现有索引。等你确认"切出来的样子是对的",再对存量文档重新解析。

第三级台阶:从"查得到"到"答得对",用引用验证每一次回答

分块调好之后,检索质量通常会明显上一个台阶。但"检索到"不等于"回答对"——大模型有很强的"脑补"倾向,你还需要给回答装上安全带

WeKnora 在对话里提供了两个很实用的验证手段:引用浮层RAG 流水线进度。回答生成时,AI 会标注它依据了哪些文档;点击引用可以看到对应的原文片段和出处,逐条核对"这句话到底有没有依据"。

你可以给自己定一条验收标准:任何一条关键结论,都必须能在引用里找到原文出处。如果某条回答引用了错误的文档,通常不是模型的问题,而是检索排序问题——这时候再回头调检索参数,方向就不会跑偏。

想进一步压住"脑补",可以打开混合检索。它把向量检索(语义相似)和关键词检索(BM25 精确匹配)结合起来,语义和字面两头都覆盖,再叠加一层重排(Rerank)模型精排。对于产品型号、人名、代码片段这类需要精确匹配的内容,效果立竿见影。相关配置可以在检索引擎与向量存储里找到。

进阶玩法:开启 Wiki 模式,让知识库自己长出来

到这里,你已经有一套能用的问答系统了。但再往下走,大多数团队会遇到一个新问题:文档越堆越多,除了问答之外,大家根本不知道库里有什么。新人入职想系统学习一下,总不能一个问题一个问题地问。

这就是 Wiki 模式的用武之地。开启后,WeKnora 会用大模型从原文里抽出人物、产品、概念等条目,为每个条目生成一篇带出处的 Markdown 页面,页面之间自动互相链接——相当于你的知识库自动长出了一套维基百科。

问答和 Wiki 的区别可以这样理解:问答是"你问我答",Wiki 是"先替你把知识整理好"。资料越零散,Wiki 的价值越明显。而且这套页面不只给人看——Agent 也能读写它们,把它当长期记忆用;模型生成错的地方,你可以在浏览器里直接改,每次改动都有版本历史,支持 diff 对比和一键回滚,不用担心改坏。

配合 Wiki 的还有知识图谱视图,条目的链接关系会呈现为一张可视化的网络图,适合用来发现"这个产品居然关联了这么多售后问题"之类的隐性关系。

开启方式很轻量:编辑知识库 → 索引策略里打开Wiki→ 上传文档(已有文档会自动纳入)。生成是异步的,文档多时需要等一会儿。注意生成过程会消耗大模型调用,成本与文档量成正比,抽取密度可以在focused/standard/exhaustive三档之间按需调节。更完整的说明见 Wiki 能力。

落地收尾:把智能体接进团队每天在用的工具里

知识库建得再好,如果大家要专门登录一个后台才能提问,使用率一定上不去。最后一步,是把这套能力"送"到团队日常所在的工具里。

WeKnora 提供了三条现成的通道:

第一条:IM 机器人。支持企业微信、飞书、Slack、Telegram、钉钉、Mattermost 等主流平台。在群里 @ 机器人就能直接提问,答案带着引用链接发回来,不用切换任何系统。

第二条:数据源自动同步。如果你的资料本来就存在飞书知识库、飞书云盘、Notion、语雀或 RSS 里,可以配置连接器自动同步,文档更新后知识库跟着更新,不用人工搬运。这是让知识库"保鲜"的关键——很多 RAG 系统死于资料过期。

第三条:网站嵌入 Widget。如果你想把智能体发布到外部站点(比如官网的智能客服),有现成的嵌入组件,支持安全模式 Token 交换和限流,对外提供服务也不会裸奔。

想自己动手验证的话,仓库地址是https://gitcode.com/GitHub_Trending/we/WeKnoradocker-compose.yml一键起服务,内置了样例数据集,十分钟就能跑通第一轮问答。IM 集成的详细步骤见 IM 集成。

给你的行动清单

最后把这篇文章浓缩成一张可勾选的清单,按顺序走完,你的知识库基本就立住了:

  1. 上传原始文档,不预先转换格式,用默认解析配置先跑通
  2. 检查扫描件,没搜到内容先确认视觉模型是否配置
  3. 用分块预览试切,确认默认切分效果,再决定是否调参或开父子分块
  4. 打开混合检索 + 重排,拿典型问题验证命中质量
  5. 用引用抽屉逐条核对回答,把"无依据的回答"当作 bug 处理
  6. 开启 Wiki 模式,让知识库结构化,方便人浏览、Agent 记忆
  7. 接一个 IM 机器人或数据源同步,让团队用起来,别让知识库落灰

如果你正在被"答非所问"困扰,请记住:先修管道,再谈模型。WeKnora把解析、分块、检索、推理到 Wiki 整理整条链路打通了,你要做的只是从第一级台阶开始,一步步往上走。下一步,就从上传你的第一份文档开始。

【免费下载链接】WeKnoraOpen-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.项目地址: https://gitcode.com/GitHub_Trending/we/WeKnora

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表