☰
用Dify搭建知识库RAG问答系统:从部署到调优的完整实战
2026/10/2 11:18:32 网站建设 项目流程

我前阵子接手了一个挺常见的需求:公司有一本 100 多页的内部设备操作手册,大家每天都要翻,但问题来的时候没人愿意一页页找,领导想要一个能“直接回答”的工具。调研了一圈,最后我用开源的 Dify 搭了一套知识库 RAG 问答系统,把手册丢进去,AI 就能基于手册内容回答员工的问题,还能标注引用来源。整个过程从部署到调优踩了不少坑,这篇就把完整的实战过程写出来,包括 RAG 的核心原理、Dify 知识库的构建细节、检索调参经验,以及生产环境里那些文档里不会写的问题,想用 Dify 做知识库问答的人可以参考。

先交代一下我的环境和目标,后面所有的操作都围绕这两个前提展开:

  • 服务器:一台 4 核 8G 的 Linux 机器,装了 Docker 和 Docker Compose,系统是最常见的 CentOS 7,这也是很多人卡住的地方,后面会专门说。
  • 目标效果:把 PDF 格式的手册导入 Dify 知识库,创建一个问答应用,员工提问后 AI 能检索手册中的相关内容并给出带引用的回答,回答内容只基于手册,不能凭空编造。

1. 先聊清楚:为什么拿 Dify 来啃 100 页手册

1.1 100 页手册对大模型来说,不是“读完”就能答的

很多人第一反应是:手册不长,直接把全文丢给大模型不就行了?这个想法在 50 页以内的文档上勉强能跑,但 100 页手册通常有 8 到 12 万字,算下来好几万 token。硬塞给大模型会带来几个很现实的问题:

第一是上下文窗口放不下。就算模型支持 128K 甚至更长的上下文,把整本手册全塞进去之后,可用窗口也所剩无几,而且多轮对话时每轮都要重复携带全部手册内容,token 成本直线上升。

第二是注意力会被稀释。大模型看 10 万字的时候,真正相关的可能只有中间某一段。模型容易把早期内容和后文的关键细节混在一起,甚至把不同章节的参数弄串。我见过有人把手册里温度范围和压力范围搞反的例子,这种错误在设备操作场景里问题就大了。

第三是更新成本高。手册这个月改一版、下个月补一页,如果每次都重新生成一个“背诵全文”的系统,维护成本完全不可控。

所以正确思路是RAG(检索增强生成):把手册拆成一块一块的片段(chunk),先建立索引;用户提问时,先用问题去检索最相关的几个片段,再把“问题 + 检索到的片段”一起交给大模型生成答案。打个比方,传统方式相当于让一个人把整本书背下来再答题,RAG 则是让这个人带着书进考场,考到哪一题就翻到对应页码照着答。既省记忆,又保证答案有出处。

1.2 Dify 在这个场景里解决的是哪几件事

选 Dify 而不是从头写一套 RAG 流程,是因为它把这四件事都做成了开箱即用的模块:

  • 知识库管理:支持上传多种格式文档,内置文档解析、分段(chunking)、清洗规则,不需要自己写文本切片的代码。
  • 应用编排:可以创建一个 Chatbot 应用,关联知识库,配置提示词后直接得到一个可对话的 API 和 Web 页面。
  • 模型接入:Dify 本身不提供大模型,而是负责接各家模型。OpenAI、各家国产大模型 API、Ollama 本地模型都能接,切换模型只改配置,不动业务代码。
  • 可观测性:每一次问答的检索过程都能在调试面板里看到,系统到底检索了哪些片段、为什么这样回答,一目了然。这一点对排查问题太重要了,自研 RAG 想做到这个透明度要费不少功夫。

1.3 这个实战的内容范围

这篇文章会从零开始走一遍完整链路:Dify 部署、模型接入、手册导入与分段、检索参数调优、应用编排与提示词设计、生产环境瓶颈与优化方向。每一步都会解释为什么这么做,以及踩过的坑。想看基础概念的直接按章节往下看,已经部署好的可以直接跳到第 3 节。

2. 部署与模型接入:最容易磨掉耐心的两小时

2.1 Docker Compose 装 Dify,CentOS 7 上有几个暗坑

Dify 官方推荐的部署方式是 Docker Compose。我在 CentOS 7 上装的时候,第一步就遇到了麻烦——系统自带的 yum 源里 docker-compose 可能装不上或者版本太老。实践中建议用独立安装的 Docker Compose 二进制,而不是 yum 版本:

# 安装 Docker 基础环境(CentOS 7 常用方式) sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io # 启动 Docker sudo systemctl start docker sudo systemctl enable docker # 安装 Docker Compose v2 插件 sudo mkdir -p /usr/local/lib/docker/cli-plugins sudo curl -SL "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64" -o /usr/local/lib/docker/cli-plugins/docker-compose sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

CentOS 7 上最容易翻车的地方是内核版本和存储驱动。老内核可能导致 Docker 容器运行不稳定,建议部署前确认一下:

uname -r

如果内核是 3.10 的老版本,尽量先升级,或者用 Docker 的 overlay2 存储驱动配置来规避部分问题。另外 CentOS 7 上 Docker Compose v2 插件需要较新版本的 Docker,如果docker compose version报错,大概率是 Docker 版本太老。

装好 Docker 后,获取 Dify 源码并启动:

git clone https://github.com/langgenius/dify.git cd dify/docker cp .env.example .env docker compose up -d

第一次启动会拉取前端、后端、数据库、向量存储等多个镜像,耗时取决于网速,建议在带宽稳定的环境进行。启动完成后访问http://服务器IP就能看到初始化页面。

初始化时指定管理员邮箱和密码,这一步很简单,但密码策略有点严格,建议一次设置成大小写字母加数字的组合。

2.2 Windows 本机部署的注意事项

有不少人是在 Windows 上试玩 Dify 的,这个场景我也帮朋友处理过。Windows 下需要先装 Docker Desktop,注意两个点:

一是要保证 WSL2 后端正常运行,否则 Docker Desktop 启动不起来。在 PowerShell 里执行wsl --status能确认状态。

二是内存分配。Dify 全家桶跑起来大概要吃 4G 左右内存,Docker Desktop 默认可能只给 2G,需要在 Settings 里手动调到 4G 以上,否则容器会频繁 OOM。我实测 8G 内存的 Windows 机器跑起来比较从容。

2.3 接入模型:三种常见方式怎么选

Dify 本身不带模型,所以部署完后的第一件事就是接大模型。在“设置-模型供应商”页面里配置。我试过三种方式:

方式适用场景优点要考虑的问题
OpenAI API key有海外账号,业务允许调用海外 API效果稳定,生态好网络链路、费用、数据合规
国产大模型 API(OpenAI 兼容接口)国内部署,数据不出境合规、速度快部分模型在复杂推理上稍弱
Ollama 本地模型纯内网、无外网环境数据完全本地、免费效果受机器配置影响大

我在实际项目中用的是一家国产大模型的 OpenAI 兼容接口,Dify 里选择“OpenAI-API-compatible”这个供应商类型,填三个东西:API Key、API 地址、模型名称。

这里有个经验:模型名称必须填对方平台上真实存在的模型 ID,不是随便写个“gpt-4o”就能用。我曾在这上面卡了十分钟,一直报错,后来发现我填的模型名称和平台实际支持的模型 ID 不一致。

2.4 credentials validation 报错,九成是这三个原因

如果你在配置模型时看到 “An error occurred during credentials validation” 这个提示,别慌,这是 Dify 在校验 API Key 和地址时失败了。按我的排查经验,绝大多数情况是这三类问题之一:

  1. API Key 错了或过期了。直接去模型平台复制一个新的,粘贴时注意别带回车符。
  2. API 地址不对。很多 OpenAI 兼容接口的完整地址是https://xxx.com/v1,有些平台在控制台里给的是不带/v1的地址,Dify 填 base URL 时要补全。
  3. 内网无法访问该地址。Dify 服务器如果在内网,访问不了外网模型 API,自然校验失败。这种情况要么用内网代理,要么换成同内网可访问的模型服务。

一个额外提示:如果你用了 Nginx 或者 Caddy 做 HTTPS 反向代理,并且 Dify 页面能打开但模型校验失败,先检查反代配置里有没有把请求路径转发正确——Dify 后端 API 路径需要完整透传,路径重写过深就会导致回调地址不对。这属于 SSL/反向代理部署里比较容易忽略的地方,我在 2.1 部署完后就用 Caddy 配了 HTTPS,第一次配完后模型校验失败,排查了半天才发现是路径重写把/v1吞掉了。

3. 知识库构建:100 页手册的正确拆解姿势

3.1 入库前先想清楚:PDF 到底能不能直接用

很多人第一步就是直接把 PDF 拖进 Dify,然后发现处理报错。Dify 的文档解析器虽然支持 PDF,但对扫描版 PDF(本质是图片)和排版复杂的 PDF,解析效果很不稳定。热搜词里那个 “dify unstructured api url is not configured for doc file processing” 报错,就是 Dify 在处理部分文件类型时需要一个独立的非结构化文档解析服务,而默认环境里没配置。这个服务需要额外部署,比较折腾。

我的建议是:能用文字版就不用 PDF,能用结构化格式就用结构化格式。实际操作中,我把那本 100 页的手册从 PDF 转成了 Markdown 文本,用 Pandoc 或在线工具都能转,转完后再人工扫一遍,重点检查表格有没有错乱、图片里的文字有没有丢失。

如果你确实只能用 PDF,优先用文字版 PDF(能选中文字的),并且把 Unstructured 服务部署好。部署方法就是多起一个容器,然后在 Dify 的环境变量里配置对应的 API 地址,官方文档有说明,这里不展开。

这里有个知识点想多说一句:知识库到底能不能存图片?能。Dify 的知识库支持把图片作为附件或文档一起入库,但图片本身不会被语义理解,它要么靠文件名、要么靠 OCR 之后的文字被检索到。如果你的手册里大量内容是结构图、电路图,纯靠 RAG 检索图片是抓不到语义的,建议把图片的关键信息写成文字描述,随图入库,检索效果提升非常明显。

3.2 分段策略:同一份手册,不同模式结果差别巨大

Dify 创建知识库时,最关键的选择是“分段模式”。默认有两种可选:

  • 自动分段:系统根据段落标题和空白自动切分,对于结构良好的 Markdown 文档效果尚可。
  • 自定义分段:按固定 token 大小切分,可以设置分段长度(如 500 token)和重叠长度(如 50 token)。

我一开始用自动分段,效果不太理想,因为手册里有很多并列的操作步骤,被切得七零八落。后来改用自定义分段,设置了分段长度 500、重叠长度 80,才稳定下来。

这里必须提一下 Dify 的高阶用法:父子分段(Parent-Child Chunking)。原理是把文档按两层结构切:子块(小片段)用来做检索匹配,父块(大的完整段落或章节)用来做生成上下文。这样既能保证匹配的精准度,又能保证送进大模型的内容是完整的段落,不会因为切得太碎导致上下文断裂。

在 Dify 知识库设置里可以配置是否启用父子分段,配置父子块的最大 token 数。我实测下来的配置是:

  • 子块最大 token:300 到 500 之间。太小了匹配不到足够语义,太大了检索精度下降。
  • 父块最大 token:1000 到 2000。这个值取决于你的手册段落有多长,原则是父块能覆盖一个完整的操作单元。

用自己的话解释为什么这样设置:子块小,检索时定位精准,不会把“温度设置”和不相干的“电压设置”揉在一起;父块大,生成回答时大模型能读到一整段完整逻辑,不会因为只有半截话而瞎猜。

3.3 清洗规则:页眉页脚和目录是最大的噪音源

导入文档后,Dify 会提示你配置清洗规则。很多人直接跳过,但这一步其实很关键。那本 100 页的手册,页眉页脚每页都有公司名称和文档编号,目录占了前 5 页,如果不清洗,这些内容会被切成大量重复片段,检索时造成严重干扰。

我的清洗规则经验:

  • 把“公司名称、文档编号、第 N 页”这类页眉页脚信息设为忽略,声明为“重复子串”,这样所有命中该规则的片段会被自动过滤。
  • 目录部分尽量在导入前就从文档里删掉,或者用清洗规则把它排除。目录本身没有信息量,还经常包含页码,容易误导检索。
  • 手册里大量的“注意”“警告”等带有特殊标记的提示框,如果解析后保留了特殊符号,建议在清洗规则里清除,避免污染 embedding 向量。

3.4 入库后的质量验证:抽三个片段就知道行不行

知识库建好只是开始,必须验证分段质量。我每次入库后都会做下面这三件事:

  1. 随机抽查片段。在知识库的文档列表里点进任意片段,看看有没有完整的语义边界。如果一个 fragment 里标题和正文被切开了,或者表格被切成两半,就要调分段参数。
  2. 试检索。在知识库里直接试验一个典型问题,比如“如何校准温度传感器?”,看召回的前几名片段是不是真的包含校准步骤。如果召回的是手册里其他章节的内容,说明 chunk 切得有问题。
  3. 检查关键数字的完整性。设备手册里充满了量程、温度、压力、参数名和对应数值,如果这些数字恰好被切到了两个片段里,检索时必然丢信息。切分时用重叠长度(overlap)就是为了缓解这个问题。

这个验证过程看起来简单,但能帮你把检索质量的问题在源头就过滤掉一大半。很多人后来调到崩溃,其实问题出在分段上,而不是检索参数上。

4. 检索与重排序:回答质量的分水岭

4.1 三种检索模式,先搞懂再选

Dify 知识库关联到应用后,在“上下文”设置里可以选择检索模式。三种模式的差别,我用大白话说一下:

  • 向量检索:把问题和每个片段都转成向量,用余弦相似度找最接近的片段。优点是能理解语义,比如问“温度怎么调”和手册里的“设定温度值”能匹配上;缺点是对精确关键词匹配不敏感。
  • 全文检索:基于关键词匹配,类似搜索引擎。优点是查“PT100”这种精确型号时不会漏;缺点是不理解语义。
  • 混合检索:把向量检索和全文检索的结果按权重合并,再用 Rerank 重排序。这是目前最稳的组合:先各自召回,再统一排序,既保语义又保精确。

纯向量检索最大的问题是同义词和精确词之间的平衡。设备型号、零件编号这种内容,语义上相近但字面上不同的词很容易被漏掉;而全文检索又解决不了“加热”和“升温”这种语义等价的问题。所以100 页手册这种既有大量术语又有大量操作语义的场景,我建议直接上混合检索,不要省这一点配置工夫。

4.2 TopK 和 Score 阈值:不是越大越好,也不是越小越好

Dify 的检索设置里有个“TopK”参数,表示最终召回多少个片段给大模型。很多人习惯直接拉满,其实 TopK 过大反而有害——塞给大模型太多无关内容,它会困惑,甚至引用错片段。

我实测的感受:

  • TopK = 3 到 5 对大多数知识库问答最合适。如果是那种答案明确、步骤清晰的问法,3 个片段基本够了;如果是开放性问题,5 个更稳。
  • 分数阈值(Score)是过滤低相关片段的闸门,设太低会混入噪音,设太高可能召回为空。建议先用默认值,然后看调试面板里实际召回的分数分布再做调整。我这边最终设的阈值是 0.5 到 0.6 之间,低于这个分数的片段基本都不相关。

这里给一个实操建议:别靠感觉调参,要看调试面板。Dify 每次问答的调试面板里会显示每一个召回片段的得分,你连续问十几个问题,就能看到匹配得好的问题和匹配得差的问题分别落在什么分数段,然后据此设置阈值。这个数据驱动的调法比猜靠谱得多。

4.3 Rerank 模型:什么时候必须上

如果你启用了混合检索,Dify 会提示你配置 Rerank 模型。Rerank 的作用是:把向量检索和全文检索召回的候选片段,用一个专门的模型重新算一遍相关性,把最合适的排到最前面。

我一开始没配 Rerank,直接用混合检索跑,回答质量时好时坏。后来配了 Rerank 模型后,效果提升非常明显。原因在于,向量检索和全文检索各自的排序逻辑不同,简单合并的 TopK 结果不一定是最优组合,Rerank 能对候选做一次精细的“最终审阅”。

Rerank 模型有两种接入方式:

  • 本地部署:用开源的 BGE-Reranker 等模型,通过本地推理服务暴露 API。适合数据敏感、完全内网的环境。
  • 走 API:一些商业模型服务商提供 Rerank API,配置方式和普通模型类似。

对外语和中文内容混排的场景,我建议可以用中文优化的 Rerank 模型。实测中文手册场景下,开源 BGE 系列的效果已经足够好。

需要注意一点:Rerank 不是必须从一开始就配置,但如果你发现“检索到的内容里明明有正确答案,AI 却答偏了”或者“TopK 片段里关键信息排得太靠后”,那就是该上 Rerank 的信号。

4.4 调参前后的实测对比

下面这组对比来自我实际调试过程中的一个问题:“手册里推荐的冷却液温度是多少?”调整前用的是纯向量检索,TopK 设为 2,没有 Rerank;调整后改为混合检索 + Rerank,TopK 设为 4。

配置实际回答问题点
纯向量,TopK=2,无 Rerank“手册未明确说明冷却液温度,建议咨询厂商。”实际手册里有明确数值,但没被召回
混合检索,TopK=4,有 Rerank“手册第 3 章设备参数中提到,冷却液温度建议控制在 25℃ 至 30℃ 之间。来源:设备参数表。”正确,且带引用片段

同一个知识库、同一个问题,效果却天差地别。这直观地说明:RAG 的质量瓶颈往往不在大模型本身,而在检索链路。检索不到,再强的模型也只能胡说或说“不知道”。

5. 应用编排与提示词:把检索结果变成可用答案

5.1 创建 Chatbot 应用并关联知识库

Dify 安装完成后,首页会引导你创建应用。选“聊天助手”类型,然后在应用编排页面的“上下文”部分,把你刚才建好的知识库加进去。这一步操作很简单,有一个细节值得注意:应用可以关联多个知识库,比如你以后有设备手册、产品手册、维修记录等多个知识库,可以在一个应用里都挂上,然后通过检索策略控制优先级,也可以在编排里手动指定每个知识库的权重。

我目前的应用就是“设备操作手册”一个知识库,但预留了多知识库的扩展位。因为在生产环境里,很可能把 FAQ、操作手册、故障代码表拆成三个知识库分开维护,检索时按问题类型路由到不同知识库,效果会好很多。这个后面在“Agentic RAG”的部分再细说。

5.2 提示词模板:怎么约束 AI 只用手册内容

Dify 内置的默认提示词能用,但距离“好用”还差一层。我最终的提示词大致长这样:

你是一名设备操作助手,请基于提供的知识库内容回答用户问题。 规则: 1. 只使用知识库中检索到的内容回答,不要使用自身先验知识。 2. 如果检索内容不足以回答问题,明确回复“根据当前手册内容,无法回答该问题”。 3. 回答中尽量引用具体的章节名称或来源片段编号。 4. 当问题涉及数值、型号时,必须完整保留知识库中的原始数值和单位,不得近似或改写。 5. 如果知识库某一片段包含自相矛盾的内容,请指出矛盾之处。

这个提示词有几个设计意图:第一条和第二条是防幻觉,防止 AI 拿自己的知识出来“圆场”;第三条是溯源,方便用户在页面里看到答案依据;第四条是设备手册场景的关键,因为参数数值一旦被“润色”就可能出安全事故;第五条是用于发现手册本身的质量问题,实测中我就靠这条找到了原手册里两处自相矛盾的参数描述。

提示词这东西不需要写得花哨,要写清楚边界和约束,大模型才能稳定遵守。

5.3 自动溯源:让每个回答都有出处

Dify 在“功能”里打开“引用与归属”选项后,问答回复会自动附带引用的文档片段,用户在页面上能看到回答内容的来源。这不仅是体验问题,也是信任问题——只有能指出“我说的是手册第几章”,员工才敢照着这个 AI 的建议操作设备。

我当初做这个项目的一个验收项,就是“所有回答必须显示引用来源”。Dify 把这件事做成了开关,不需要自己折腾前端。如果你用 API 对接自己的系统,响应体里也有引用片段的字段,可以直接展示出来。

5.4 调试三板斧:是检索问题还是生成问题

调试 Dify 应用时,我固定的三板斧是这样的:

第一板斧,看上下文里召回的内容对不对。在调试面板展开“上下文”,确认 Launched 出来的片段是否覆盖了问题的答案。如果召回片段里根本没有答案,那就去调检索参数,别碰提示词。

第二板斧,单独测试检索不经过生成。Dify 的知识库页面里可以直接做召回测试,输入问题看召回结果,这样能快速判断是分段问题、向量问题还是重排问题。

第三板斧,固定召回结果,改提示词。如果召回内容已经没问题但回答仍然跑偏,那问题出在生成环节。此时把提示词调得更严格,或者换一个更稳的大模型,再测。

这三板斧的核心思路是把 RAG 这条链路拆开:检索是检索,生成是生成,永远不要混在一起下结论。我见过很多人一遇到“回答不对”就疯狂调提示词,调了半天才发现召回的内容本身就是错的。

6. 上线之后的那些事:瓶颈、优化与后续扩展

6.1 RAG 在实际运行中最容易掉链子的环节

把应用真正放给同事用之后,我观察到的几个高频问题,和网上常说的 RAG 瓶颈基本对得上:

  • 分段质量是永远的源头。手册更新了某几页,新片段的分段风格和旧内容不一致,召回结果就开始变差。
  • 长尾问题召回不足。员工问的问题往往带着口语缩略,比如“温度设多少合适”,而手册原文是“温度设定值”。向量检索能部分缓解,但不是全部,Rerank 能再救回一部分,仍然有漏网之鱼。
  • 多轮对话的上下文污染。用户问完 A 问题又问 B 问题,检索片段里可能混入 A 问题的残留内容,导致 B 问题回答被干扰。Dify 里有“多轮对话”的上下文清理设置,需要按场景调整。
  • 知识库版本更新与陈旧内容。手册更新后,旧版片段如果不及时下线,新旧内容会同时被检索到,AI 可能给出“过时”的答案。这就是我在提示词里加“自相矛盾时指出来”的另一个原因。

6.2 从基础 RAG 走向 Agentic RAG:当知识库多了之后

如果公司有多个知识库,比如设备手册、产品 FAQ、故障代码表、培训材料,那就是从“单库问答”走向“多库路由”的场景。基础 RAG 会把所有知识库的片段混在一起检索,效率和精度都会下降。更好的方案是让 AI 先判断问题属于哪个知识库,再去对应库里检索,这就是常说的 Agentic RAG 的雏形。

Dify 的工作流编排模块可以做到这一点:创建一个分类节点,让模型先判断问题类型,然后根据类型走不同的知识库检索分支,最后统一汇总生成答案。这个改造我目前正在做,效果比单库硬检索要好,尤其是当问题涉及“这个故障对应哪个代码”这类需要检索维修库的场景,路由到正确的库之后,回答准确率提升很明显。

6.3 知识库的增量更新:别等手册改版才想起来

手册不是静态的,它会被修订、增补、替换。我在实际运维中总结了一个简单的更新节奏:

  • 每次手册改版,用流程化方式导出新的 Markdown,重新入库。
  • 入库前对比旧版本,找出新增和删除的章节。
  • 在 Dify 知识库里删除旧文档,上传新文档,重建索引。
  • 抽几个关键问题做回归测试,确认新旧版本切换后没有回答“过时参数”。

这个流程看着繁琐,但比“不问不管、问了才更新”靠谱得多。知识库是拿来用的,不是拿来建的,内容保鲜才能保证回答可信。

6.4 二次开发方向:Dify 能嵌入现有系统吗

Dify 提供完整的 API,应用编排完成后可以拿到 API 密钥,通过 HTTP 接口调用对话和知识库检索能力。这意味着你可以把 Dify 嵌入到公司自己的工单系统、企业微信机器人、运维平台里,前端界面自己写,后端问答能力由 Dify 提供。

做过一次对接后,我的感受是 Dify 更像一个“RAG 中间件”:知识库管理、检索、编排都在 Dify 里完成,业务系统只需要通过 API 发送消息、接收回复和引用。二次开发的重点往往不在 Dify 本身,而在于把引用内容的结构化数据转换为业务系统需要的格式。

如果你需要在现有页面上嵌入聊天窗口,Dify 的 WebApp 模式也支持 iframe 嵌入,几分钟就能上线一个可用页面,适合先给团队试用,后续再逐步替换成定制化前端。

写在最后的实操体会

如果只挑一条最有价值的经验,那就是:先保证检索质量,再谈大模型效果。我调试这个项目的过程中,大多数“回答不对”的问题,最后都回溯到了分段不合理、检索参数不合适、Rerank 没配上这些环节,而不是大模型“不够聪明”。把这一层做好,哪怕模型不是最顶级的,回答质量也能稳定在可用水平。

还有一点想提醒大家,知识库 RAG 类项目真正的验收标准不是“demo 跑通”,而是“持续用不翻车”。文档更新、分段策略、检索调优这些运维工作,在项目上线后才是真正的日常。用 Dify 这类开源工具的好处是,这些环节都有可视化的配置界面和调试面板,踩坑了起码有地方下手查。希望这篇实战记录能帮你少走一些弯路。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询