我们分享了关于如何在本地私有化部署开源大模型应用平台Dify,并成功将Xinference内的3个模型(语言模型、嵌入模型以及重排序模型)集成到Dify中。那么在本篇文章,我们将基于所集成的模型能力来尝试搭建一个基于RAG知识库的智能聊天助手。
本篇文章内容共分为2个部分,你可根据需要选择性阅读:
- RAG相关概念及检索方式简介;
- 基于知识库的智能聊天助手搭建实验。
一、什么是RAG?
大语言模型的训练数据一般是基于公开数据,且每一次训练需要消耗大量的算力,这意味着大模型的知识一般不会包含私有领域的知识,同时在公开知识领域存也会在一定的滞后性。目前解决这一问题的通用方案是采用 RAG(检索增强生成)技术,即首先使用用户问题来匹配最相关的外部数据,然后将检索到的相关内容召回后作为模型提示词的上下文和原问题一起提交给大模型来重新组织回复。
1.1 RAG 的概念解释
以向量检索为核心的 RAG 架构已成为解决大模型获取最新外部知识,同时解决其生成幻觉问题时的主流技术框架,并且已在相当多的应用场景中落地实践。开发者可以利用该技术低成本地构建一个 AI 智能客服、企业智能知识库、AI 搜索引擎等,通过自然语言输入与各类知识组织形式进行对话。以一个有代表性的 RAG 应用为例:
在下图中,当用户提问 “美国总统是谁?” 时,系统并不是将问题直接交给大模型来回答,而是先将用户问题在知识库中(如下图中的维基百科)进行向量搜索,通过语义相似度匹配的方式查询到相关的内容(拜登是美国现任第46届总统…),然后再将用户问题和搜索到的相关知识提供给大模型,使得大模型获得足够完备的知识来回答问题,以此获得更可靠的问答结果。
RAG 基本架构
基于上述架构,一个简化的流程执行逻辑图如下所示:
RAG流程执行逻辑图
1.2 为什么需要这样做?
我们可以把大模型比做是一个超级专家,他熟悉人类各个领域的知识,但他也有自己的局限性,比如他不知道你个人的一些状况,因为这些信息是你私人的,不会在互联网上公开,所以他没有提前学习的机会。
当你想雇佣这个超级专家来充当你的家庭财务顾问时,需要允许他在接受你的提问时先翻看一下你的投资理财记录、家庭消费支出等数据。这样他才能根据你个人的实际情况提供专业的建议。
这就是 RAG 系统所做的事情:帮助大模型临时性地获得他所不具备的外部知识,允许它在回答问题之前先找答案。
根据上面这个例子,我们很容易发现 RAG 系统中最核心的是外部知识的检索环节。专家能不能向你提供专业的家庭财务建议,取决于能不能精确找到他需要的信息,如果他找到的不是投资理财记录,而是家庭减肥计划,那再厉害的专家都会无能为力。
1.3 关于知识检索的方式
目前常用的知识检索方式主要包括向量检索(也叫相似度检索)、关键词检索以及混合检索,以下分别介绍:
1.3.1 向量检索/相似度检索
RAG 检索环节中的主流方法是向量检索,即语义相关度匹配的方式。技术原理是通过将外部知识库的文档先拆分为语义完整的段落或句子,并将其转换(Embedding)为计算机能够理解的一串数字表达(多维向量),同时对用户问题进行同样的转换操作。
计算机能够发现用户问题与句子之间细微的语义相关性,比如 “猫追逐老鼠” 和 “小猫捕猎老鼠” 的语义相关度会高于 “猫追逐老鼠” 和 “我喜欢吃火腿” 之间的相关度。在将相关度最高的文本内容查找到后,RAG 系统会将其作为用户问题的上下文一起提供给大模型,帮助大模型回答问题。
除了能够实现复杂语义的文本查找,向量检索还有其他的优势:
相近语义理解(如老鼠/捕鼠器/奶酪,谷歌/必应/搜索引擎)
多语言理解(跨语言理解,如输入中文匹配英文)
多模态理解(支持文本、图像、音视频等的相似匹配)
容错性(处理拼写错误、模糊的描述)
虽然向量检索在以上情景中具有明显优势,但有某些情况效果不佳。比如:
- 搜索一个人或物体的名字(例如,伊隆·马斯克,iPhone 15)
- 搜索缩写词或短语(例如,RAG,RLHF)
- 搜索 ID(例如,gpt-3.5-turbo,titan-xlarge-v1.01)
【向量检索】在Dify中的参数配置说明:
TopK:用于筛选与用户问题相似度最高的文本片段。系统同时会根据选用模型上下文窗口大小动态调整片段数量。系统默认值为 3。
Score 阈值: 用于设置文本片段筛选的相似度阈值,即:只召回超过设置分数的文本片段。系统默认关闭该设置,即不会对召回的文本片段相似值过滤。打开后默认值为 0.5。
Rerank 模型: 你可以在“模型供应商”页面配置 Rerank 模型之后,在检索设置中打开“Rerank 模型”,系统会在语义检索后对已召回的文档结果再一次进行语义重排序,优化排序结果。设置 Rerank 模型后,TopK 和 Score 阈值设置仅在 Rerank 步骤生效。
1.3.2 关键词检索
我们在上面提到的关于使用向量检索/相似度检索所存在的缺点恰恰都是传统关键词搜索的优势所在,传统关键词搜索擅长:
- 精确匹配(如产品名称、姓名、产品编号)
- 少量字符的匹配(通过少量字符进行向量检索时效果非常不好,但很多用户恰恰习惯只输入几个关键词)
- 倾向低频词汇的匹配(低频词汇往往承载了语言中的重要意义,比如“你想跟我去喝咖啡吗?”这句话中的分词,“喝”“咖啡”会比“你”“想”“吗”在句子中承载更重要的含义)
在Dify中对于关键词检索的应用是【全文检索】,具体指:通过索引文档中的所有词汇,从而允许用户查询任意词汇,并返回包含这些词汇的文本片段。
TopK:用于筛选与用户问题相似度最高的文本片段。系统同时会根据选用模型上下文窗口大小动态调整片段数量。系统默认值为 3。
Rerank 模型: 你可以在“模型供应商”页面配置 Rerank 模型之后,在检索设置中打开“Rerank 模型”,系统会在全文检索后对已召回的文档结果再一次进行语义重排序,优化排序结果。设置 Rerank 模型后,TopK 和 Score 阈值设置仅在 Rerank 步骤生效。
1.3.3 混合检索
混合搜索主要结合了向量检索和关键词检索两者的优点,同时也弥补了两方的缺点。对于大多数文本搜索的情景,首要的是确保潜在最相关结果能够出现在候选结果中。在混合检索中,你需要在数据库中提前建立向量索引和关键词索引,在用户问题输入时,分别通过两种检索器在文档中检索出最相关的文本。
混合检索
说明⚠️:“混合检索”实际上并没有明确的定义,本文以向量检索和关键词检索的组合为示例。如果我们使用其他搜索算法的组合,也可以被称为“混合检索”。比如,我们可以将用于检索实体关系的知识图谱技术与向量检索技术结合。
也可以说没有任何一种检索模式能够适用全部的情景。混合检索通过多个检索系统的组合,实现了多个检索技术之间的互补。
在Dify中对于【混合检索】的定义以及参数配置:
同时执行全文检索和向量检索,并应用重排序步骤,从两类查询结果中选择匹配用户问题的最佳结果,需配置 Rerank 模型。
TopK:用于筛选与用户问题相似度最高的文本片段。系统同时会根据选用模型上下文窗口大小动态调整片段数量。系统默认值为 3 。
Rerank 模型:你可以在“模型供应商”页面配置 Rerank 模型之后,在检索设置中打开“Rerank 模型”,系统会在混合检索后对已召回的文档结果再一次进行语义重排序,优化排序结果。设置 Rerank 模型后,TopK 和 Score 阈值设置仅在 Rerank 步骤生效。
1.4 为什么需要重排序
混合检索能够结合不同检索技术的优势以获得更好的召回结果,但在不同检索模式下的查询结果需要进行合并和归一化(将数据转换为统一的标准范围或分布,以便更好地进行比较、分析和处理),然后再一起提供给大模型。这时候我们需要引入一个评分系统:重排序模型(Rerank Model)。
重排序模型会计算候选文档列表与用户问题的语义匹配度,根据语义匹配度重新进行排序,从而改进语义排序的结果。其原理是计算用户问题与给定的每个候选文档之间的相关性分数,并返回按相关性从高到低排序的文档列表。常见的 Rerank 模型如:Cohere rerank、bge-reranker等。
混合检索+重排序
在大多数情况下,在重排序之前会有一次前置检索,这是由于计算查询与数百万个文档之间的相关性得分将会非常低效。所以,重排序一般都放在搜索流程的最后阶段,非常适合用于合并和排序来自不同检索系统的结果。
不过,重排序并不是只适用于不同检索系统的结果合并,即使是在单一检索模式下,引入重排序步骤也能有效帮助改进文档的召回效果,比如我们可以在关键词检索之后加入语义重排序。
重排序也并不是搜索技术的替代品,而是一种用于增强现有检索系统的辅助工具。它最大的优势是不仅提供了一种简单且低复杂度的方法来改善搜索结果,允许用户将语义相关性纳入现有的搜索系统中,而且无需进行重大的基础设施修改。
关于RAG等相关概念介绍完毕,下面我们进入具体实验环节。
二、基于知识库的智能聊天助手搭建实验
我们知道,传统的客服机器人往往是基于关键词检索的,当用户输入了关键词以外的问题,机器人就无法解决,需要转人工处理。而知识库能够做到语义级别上的检索,降低人工的负担。
在实验开始之前,请记住知识库的核心是检索而非LLM,是LLM增强了输出的过程,但真正的需求仍然是生成答案。
该实验的前提条件:
- 在Dify模型供应商中已添加可以使用的大语言模型、嵌入模型以及重排序模型;
- 若使用Xinference大模型,请确保该模型已部署,即在Xinference --Running Models页面可以查看到该模型。
2.1 创建知识库&上传文档
创建知识库并上传文档大致分为以下5个步骤:
登录Dify,在 Dify Workspace内创建知识库,从本地选择您需要上传的文档;
选择分段与清洗模式,预览效果;
配置索引方式和检索设置;
等待分段嵌入;
完成上传,在应用内关联并使用 🎉
以下是各个步骤的详细说明:
1 登录Dify,创建知识库
重新登录Dify时,需要在终端重新拉起Docker本地服务,具体操作可参考上一篇文章。
在 Dify 主导航栏中点击知识库,点击“**创建知识库”**进入创建向导。
拖拽或选中文件进行上传,上传文档存在以下限制:
- 单文档的上传大小限制为 15MB;
- SaaS 版本的不同订阅计划限定了批量上传个数、文档上传总数、向量存储空间。
2 选择分段与清洗策略
将内容上传至知识库后,需要先对内容进行分段与数据清洗,该阶段可以被理解为是对内容预处理与结构化。
支持以下两种策略:
- 自动分段与清洗:自动模式适合对分段规则与预处理规则尚不熟悉的初级用户。在该模式下,Dify 将为你自动分段与清洗内容文件;
- 自定义:自定义模式适合对于文本处理有明确需求的进阶用户。在自定义模式下,你可以根据不同的文档格式和场景要求,手动配置文本的分段规则和清洗策略。
这里我们选择自动分段与清洗:
3 索引方式
指定内容的预处理方法(分段与清洗)后,接下来需要指定对结构化内容的索引方式。索引方式将直接影响 LLM 对知识库内容的检索效率以及回答的准确性。
系统提供以下三种索引方式,你可以根据实际需求调整每种方式内的检索设置:
- 高质量:在高质量模式下,将首先调用 Embedding 嵌入模型(支持切换)将已分段的文本转换为数字向量,帮助开发者更有效地实现大量文本信息的压缩与存储;同时还能够在用户与 LLM 对话时提供更高的准确度。且高质量索引方式提供向量检索、全文检索和混合检索三种检索设置。
- 经济:使用离线的向量引擎与关键词索引方式,降低了准确度但无需额外花费 Token,产生费用。检索方式仅提供倒排索引。
- Q&A 模式:在知识库上传文档时,系统将对文本进行分段,总结后为每分段生成 Q&A 匹配对。与高质量与经济模式中所采用的「Q to P」(用户问题匹配文本段落)策略不同,QA 模式采用 「Q to Q」(问题匹配问题)策略。这是因为问题文本通常是具有完整语法结构的自然语言,Q to Q 的模式会令语意和匹配更加清晰,并同时满足一些高频和高相似度问题的提问场景。当用户提问时,系统会找出与之最相似的问题,然后返回对应的分段作为答案。这种方式更加精确,因为它直接针对用户问题进行匹配,可以更准确地帮助用户检索真正需要的信息。
这里我们选择【高质量】:
当你在这里选择了【高质量】或者【采用Q&A分段模式】时,还需要选择一个【Embedding模型】,该模型为您在模型供应商列表内所添加的模型,若未添加需要先完成该模型的添加,这里我们选择之前部署的Xinference嵌入模型:
4 检索设置,等待分段嵌入
在高质量索引方式下,Dify 提供以下 3 种检索方案,向量检索、全文检索以及混合检索。这里我们选择【混合检索】,混合检索需要进一步选择【权重设置】以及【Rerank模型】,具体参数意义见第一部分内容,这里的Rerank模型我们也选择之前部署的Xinference重排序模型。
5 完成上传
选择完成后,点击左下角按钮“保存并处理”,等待嵌入完成,即完成该知识库的创建:
轻点“前往文档”,可进入知识库页面:
点击左边菜单栏的“召回测试”查看文档分段情况:
继续点击左边栏的“设置”按钮,我们可以修改知识库的名称、知识库描述、可见权限、索引模式、嵌入模型以及检索设置进行修改:
修改完成后,点击底部的“保存”按钮。返回知识库可以看见该知识库已存在。
至此,基于本地文件上传所构建的知识库已经完成。
2.2 在聊天助手应用中集成知识库
关于聊天助手的编排方法,这里可以尝试选择“基础编排”和“工作流编排”两种方式:
基础编排
1)点击进入“工作室” – “创建空白应用” – 选择“聊天助手” – “基础编排”:
点击"基础编排"后,直接进入编排页面,输入提示词 – 添加知识库后,在右下角输入问题和聊天助手开始对话:
可以看到该回答有引用知识库中的内容。
工作流编排
2)点击进入“工作室” – “创建空白应用” – 选择“聊天助手” – “工作流编排”:
点击"工作流编排"后,进入的是工作流编排的页面,可以根据自己的想法在画布中选择添加节点完成整个工作流的设计。
问题分类器
如我们在这里添加了一个“问题分类器”节点,对用户的问题进行简单的分类/描述:
分类 1 :用户询问其他问题
分类 2:用户询问与个人知识管理有关问题
当用户输入不同的问题时,问题分类器会根据已设置的分类标签 / 描述自动完成分类,并按下一步流程分支进行回答:
“如何对个人知识进行精进管理?” —> “与个人知识管理有关问题”
“今天是农历几月几日**?” —> “其他问题**”
如何配置
- 问题分类器节点
配置步骤:
1) 选择推理模型,问题分类器基于大语言模型的自然语言分类和推理能力,这里选择Xinference qwen2.5-instruct;
2) 择输入变量,指用于分类的输入内容,支持输入文件变量。客服问答场景下一般为用户输入的问题sys.query;
3)编写分类标签/描述,你可以手动添加多个分类,通过编写分类的关键词或者描述语句,让大语言模型更好的理解分类依据,这里添加了2个分类问题;
4) 选择分类对应的下游节点,问题分类节点完成分类之后,可以根据分类与下游节点的关系选择后续的流程路径。这里选择两个不同的下游节点,若问题和个人知识有关则选择知识库作为参考,否则,直接使用大语言模型进行回答。
- 当用户询问其他问题
- 当用户询问与个人知识管理有关问题
执行测试
通过询问问题测试是否会按照分类条件执行流程进行回复:
问题1:如何对个人知识进行管理呢?
可以看到,对于该问题的回答执行的是第2个分支,回答结果如下所示,点击“工作流”,也可以看到具体执行的流程节点:
问题2:广州市今天天气如何?
由于选择的是Xinference的15亿参数的小模型,无法联网查询实时数据,我们将其更换为通义千问qwen2.5-720亿的模型试试看:
大模型正常回答出了广州市今天的天气情况:
到这里我们就完成了一个基于知识库的简单的聊天机器人的AI应用搭建,你也可以动动手亲自尝试一下。
总结
本文主要分享了关于RAG相关概念的基本介绍,并通过之前部署的开源大模型应用平台Dify + Xinference大模型对如何基于知识库搭建一个简单的聊天助手进行了实验,整个流程有按照设计的场景成功运行,但还是有一些欠缺的地方:
一方面,对于实验中所上传的构建知识库的文档,本文并未做过多的手工干预以及数据预处理,可以看出效果还可以,但是实际应用场景中需要处理的数据源往往比较复杂,一般需要经过预处理后才可以作为知识库的知识来源,本文并未涉及;
另一方面,对于聊天助手的构建,我们分别尝试了“基础编排”和“流程编排”,对于流程编排中使用了“问题分类器”节点对用户问题进行了简单的分类,下一步分别设置了使用知识库或者大模型两个分支进行回答,但是实际上可以使用“变量聚合”节点,将该分支进行合并,不需要重复定义下游的 LLM 和直接回复节点,这一遗留问题我们下次实验再尝试;
最后,Dify平台还有很多的节点可以辅助我们来构建更加复杂和面向实际场景的应用,待后续一一解锁。
想入门 AI 大模型却找不到清晰方向?备考大厂 AI 岗还在四处搜集零散资料?别再浪费时间啦!2025 年AI 大模型全套学习资料已整理完毕,从学习路线到面试真题,从工具教程到行业报告,一站式覆盖你的所有需求,现在全部免费分享!
👇👇扫码免费领取全部内容👇👇
一、学习必备:100+本大模型电子书+26 份行业报告 + 600+ 套技术PPT,帮你看透 AI 趋势
想了解大模型的行业动态、商业落地案例?大模型电子书?这份资料帮你站在 “行业高度” 学 AI:
1. 100+本大模型方向电子书
2. 26 份行业研究报告:覆盖多领域实践与趋势
报告包含阿里、DeepSeek 等权威机构发布的核心内容,涵盖:
- 职业趋势:《AI + 职业趋势报告》《中国 AI 人才粮仓模型解析》;
- 商业落地:《生成式 AI 商业落地白皮书》《AI Agent 应用落地技术白皮书》;
- 领域细分:《AGI 在金融领域的应用报告》《AI GC 实践案例集》;
- 行业监测:《2024 年中国大模型季度监测报告》《2025 年中国技术市场发展趋势》。
3. 600+套技术大会 PPT:听行业大咖讲实战
PPT 整理自 2024-2025 年热门技术大会,包含百度、腾讯、字节等企业的一线实践:
- 安全方向:《端侧大模型的安全建设》《大模型驱动安全升级(腾讯代码安全实践)》;
- 产品与创新:《大模型产品如何创新与创收》《AI 时代的新范式:构建 AI 产品》;
- 多模态与 Agent:《Step-Video 开源模型(视频生成进展)》《Agentic RAG 的现在与未来》;
- 工程落地:《从原型到生产:AgentOps 加速字节 AI 应用落地》《智能代码助手 CodeFuse 的架构设计》。
二、求职必看:大厂 AI 岗面试 “弹药库”,300 + 真题 + 107 道面经直接抱走
想冲字节、腾讯、阿里、蔚来等大厂 AI 岗?这份面试资料帮你提前 “押题”,拒绝临场慌!
1. 107 道大厂面经:覆盖 Prompt、RAG、大模型应用工程师等热门岗位
面经整理自 2021-2025 年真实面试场景,包含 TPlink、字节、腾讯、蔚来、虾皮、中兴、科大讯飞、京东等企业的高频考题,每道题都附带思路解析:
2. 102 道 AI 大模型真题:直击大模型核心考点
针对大模型专属考题,从概念到实践全面覆盖,帮你理清底层逻辑:
3. 97 道 LLMs 真题:聚焦大型语言模型高频问题
专门拆解 LLMs 的核心痛点与解决方案,比如让很多人头疼的 “复读机问题”:
![]()
三、路线必明: AI 大模型学习路线图,1 张图理清核心内容
刚接触 AI 大模型,不知道该从哪学起?这份「AI大模型 学习路线图」直接帮你划重点,不用再盲目摸索!
路线图涵盖 5 大核心板块,从基础到进阶层层递进:一步步带你从入门到进阶,从理论到实战。
L1阶段:启航篇丨极速破界AI新时代
L1阶段:了解大模型的基础知识,以及大模型在各个行业的应用和分析,学习理解大模型的核心原理、关键技术以及大模型应用场景。
L2阶段:攻坚篇丨RAG开发实战工坊
L2阶段:AI大模型RAG应用开发工程,主要学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。
L3阶段:跃迁篇丨Agent智能体架构设计
L3阶段:大模型Agent应用架构进阶实现,主要学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造Agent智能体。
L4阶段:精进篇丨模型微调与私有化部署
L4阶段:大模型的微调和私有化部署,更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调,并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。
L5阶段:专题集丨特训篇 【录播课】
![]()
四、资料领取:全套内容免费抱走,学 AI 不用再找第二份
不管你是 0 基础想入门 AI 大模型,还是有基础想冲刺大厂、了解行业趋势,这份资料都能满足你!
现在只需按照提示操作,就能免费领取:
👇👇扫码免费领取全部内容👇👇
2025 年想抓住 AI 大模型的风口?别犹豫,这份免费资料就是你的 “起跑线”!