宿州小神童 發表於 2025-8-20 19:54:00

RAG优化实战 - LinkAI智能体平台的知识库升级之路

<blockquote>
<p>RAG(Retrieval-Augmented Generation,检索增强生成)技术经过近两年的快速发展,已经从初期的概念验证阶段进入到了大规模企业级应用的关键时期。在这个过程中,单纯依靠简单的文档切分和基础的向量检索技术已经无法满足企业对于知识库问答质量的要求,需要在RAG技术的各个环节进行更为深入的优化。</p>
</blockquote>
<p>本文将以知识库问答场景的完整生命周期为主线,结合 LinkAI 智能体平台的真实企业落地实践,从知识库 <strong>导入、检索、生成、评估</strong> 等各环节出发,深度分享RAG技术的进阶优化思路和产品演进历程。</p>
<h1 id="整体方案">整体方案</h1>
<p>RAG优化的最终目标是让智能体能够根据知识库中的相关内容<strong>准确回答用户问题</strong>,并尽可能<strong>减少模型幻觉</strong>的出现。拆解到整个RAG流程中包括:</p>
<ol>
<li><strong>导入:</strong> 文档解析时尽量保留原始信息、还原排版结构;切分时要尽可能将相对独立的内容划分至一个段落</li>
<li><strong>检索:</strong> 知识检索要能够理解用户语义,尽可能查询到所有相关内容,同时减少不相关的噪音影响</li>
<li><strong>生成:</strong> 回答时要严格遵循检索上下文,展示文档引用来源和引导问题,优化交互体验</li>
<li><strong>评估:</strong> 需要完善的评估体系对回答内容进行度量,并基于反馈不断完善知识库,形成数据循环</li>
</ol>
<p>以下是LinkAI平台的完整RAG链路,在各个阶段都进行了优化改进,以提升整体知识库问答的效果:</p>
<p><img src="https://cdn.link-ai.tech/doc/20250820173549.png"></p>
<h1 id="一文档导入">一、文档导入</h1>
<blockquote>
<p>文档导入是知识库检索的源头,如果在入库的第一步就丢失了文档中的关键信息,很难保证在后续的检索和生成中获得准确的效果。在已支持多种文档类型的基础上,LinkAI针对复杂格式文档的解析和分段进行了优化,更好还原文档的格式信息和段落结构,并对知识库的导入方式进行了完善升级。</p>
</blockquote>
<h2 id="1智能文档解析">1.智能文档解析</h2>
<p>文档解析是读取不同类型文件中的内容,供后续切分和入库使用,对于有复杂元素及排版格式的文件,普通的文档解析库或OCR工具很难获取完整信息。</p>
<p>平台新增了基于多模态大模型开发的 <strong>智能解析模式</strong>,可以更好提取文档中的文本、图片、表格、公式等复杂元素,并且可以处理多栏、混排等复杂排版的文档,另外对于清晰度有限的扫描件也能更好识别。</p>
<p><img src="https://cdn.link-ai.tech/doc/20250819200354.png"></p>
<p>开启智能解析模式后,会将 pdf、word、ppt 等文件类型解析后转为 Markdown 格式,能很好保留原始文档的段落结构,也为后续的切分建立了更好的基础。</p>
<h2 id="2分段策略优化">2.分段策略优化</h2>
<p>文档分段也是知识库导入中至关重要的一环,由于模型上下文的限制,需要将文档内容切分成一个个分块,进行向量化后入库,在对话时检索出相似的若干个分块交给大模型处理。所以能否将相对完整的内容划分至一个段落,以及能否建立相邻段落之间的关联,会对最终的检索效果产生直接影响。</p>
<p><img src="https://cdn.link-ai.tech/doc/20250819201141.png"></p>
<p>LinkAI 面向不同场景提供灵活的分段模式选择:</p>
<ul>
<li><strong>智能分段:</strong> 默认的分段模式,用户可设置最大分段长度,系统会根据不同文件类型智能设置不同的分隔符,让切分后的每段内容少于最大长度,并尽可能保证语句的完整性及分段之间的连贯性</li>
<li><strong>自定义分段:</strong> 完全自定义分隔符,支持多个分隔符按顺序递归处理,直到小于最大分段长度;同时支持设置连续分段之间的重叠度,以保证相邻分段的连续性</li>
<li><strong>层级分段:</strong> 按照文档层级分段,更好保留文档的层级结构,让独立的内容更好拆分到一个段落中。适用于 Markdown文档、网页导入、以及开启了「智能解析」后的 Word、PDF、PPT 文件。</li>
</ul>
<p>以Markdown文件为例,当分段层级设置为3时,则会将第三层级 (一般用 ### 标记) 下的内容拆分到一个分段中,并且每一段会保留前两级的目录标题,更好还原文档结构:</p>
<p><img src="https://cdn.link-ai.tech/doc/20250730111600.png"></p>
<h2 id="3更多导入方式">3.更多导入方式</h2>
<blockquote>
<p>除了针对文档解析和切分的优化,知识库的导入模式也很重要,便捷的导入途径可以让用户更及时的更新知识库内容,保证知识库内容的实时性和准确性。</p>
</blockquote>
<p>平台新增了 <strong>定时更新</strong> 和 <strong>工作流更新</strong> 两种触发方式。定时更新主要针对网站以及在线文档等知识类型,当外部页面和文档发生内容变更的时候可以自动同步至知识库中,省去定期手动维护的步骤,方便知识数据统一管理。例如可以建立一个自动同步企业文档中心的知识库,构建文档答疑智能体并通过「网页嵌入」功能集成到网站中:</p>
<p><img src="https://cdn.link-ai.tech/doc/knowledge-docs-center-example.jpg"></p>
<p><strong>工作流更新</strong> 则是一种更灵活的主动更新方式,可以通过自然语言对话的形式将知识动态写入知识库,可通过渠道接入、API调用等方式进行集成,为知识库的运营维护提供了新的模式。例如知识库维护人员可以在常用办公软件中通过对话的方式进行知识库更新,模型将自动提取信息写入知识库中:</p>
<p><img src="https://cdn.link-ai.tech/doc/20250710203357.png"></p>
<h2 id="4其他优化方案">4.其他优化方案</h2>
<p>在导入阶段还有一些其他优化思路可供选择:</p>
<ul>
<li><strong>大模型数据清洗:</strong> 通过大模型对原始语料进行清洗,例如去除一些特殊符号、无关信息,或是将无结构文档转为QA或表格等结构化知识,提高信息密度。但注意大模型处理可能会有几率导致丢失信息,要注意对提示词的编写和内容的复核。</li>
<li><strong>语义分块:</strong> 通过大模型理解文档语义后进行动态分段,将语义独立的内容划分到一个段落中,缺点是成本较高,同时也有改变原始内容的风险。</li>
<li><strong>图片理解和解析:</strong> 对于pdf/word/ppt文档中的图片内容,除了以链接形式保存外,还可以通过多模态模型进行图像识别,将关键信息形成描述摘要,和图片链接一同存储,这样在检索时可以根据图片内容检索到相关段落信息。</li>
<li><strong>GraphRAG:</strong> 以知识图谱作为底层存储,使用图结构更好存储和表示不同知识之间的关系,适用于医疗诊断、企业洞察、法律咨询等需要建立知识实体之间复杂关联的场景。同时构建知识图谱的成本相比向量数据库更高,需要结合实际场景进行选型。</li>
</ul>
<h1 id="二知识库检索">二、知识库检索</h1>
<blockquote>
<p>知识库检索优化的核心目标是提升检索的准确性,需要能够真正理解用户问题,检索出模型真正需要的知识库内容,同时减少对不相关内容的召回。</p>
</blockquote>
<h2 id="1查询改写">1.查询改写</h2>
<p>在实际应用场景中,用户会与智能体进行多轮的对话,用户查询的问题往往会出现主体不明、关键信息缺失、语义模糊等问题,如果直接用最新一轮的原始问题进行知识库检索,就有可能丢失这些上下文信息,影响检索的准确性。</p>
<p>解决这个问题的方案是通过 <strong>查询改写</strong> 来结合上下文对用户问题进行补全、完善、扩写,以检索到更多相关内容:</p>
<p><img src="https://cdn.link-ai.tech/doc/20250819225054.png"></p>
<p>如图所示,用户的第一次提问为"介绍LinkAI平台",第二次提问为 "有哪些行业解决方案",如果直接以当前最新问题进行检索,很可能因为缺少主语而无法准确检索到结果,通过查询改写后会将问题补全为 "LinkAI平台有哪些行业解决方案",实现指代消解的效果。同时还会结合场景对原有问题分解为多个更具体的子问题,通过批量检索子问题获取到更详细的知识内容:</p>
<p><img src="https://cdn.link-ai.tech/doc/20250820153330.png"></p>
<p>另外平台在常见的查询改写方案上进行了额外优化,不会直接对原始问题进行替换,也不会改变最终发送给大模型的问题,而是使用改写后的问题对知识库进行额外检索,并将附加知识库条目添加到上下文中,减少查询改写可能带来的副作用。</p>
<h2 id="2混合检索和重排">2.混合检索和重排</h2>
<p>混合检索是指对<strong>向量检索</strong>和<strong>关键词检索</strong>的组合使用,尽管向量检索能够更好理解用户语义,找到相似的文本语料,但是在针对一些短文本、低频出现、精确匹配的场景 (例如对于姓名、型号、专有名词等的检索) ,传统的关键词检索仍然有不可替代的优势。</p>
<p>目前LinkAI平台默认使用混合检索的方式,同时召回向量检索结果和关键词检索结果,并支持开启<strong>重排算法</strong>,对两种结果集进行统一的再次排序和打分,将与用户问题更相关的知识库语料放置在模型上下文的前面。</p>
<p><img src="https://cdn.link-ai.tech/doc/20250731155011.png"></p>
<h2 id="3其他优化方案">3.其他优化方案</h2>
<p>在检索阶段的一些其他优化思路:</p>
<ul>
<li><strong>父子分段:</strong> 文档分段对准确性最大的影响就是会把独立的段落分开,导致检索时无法一次性获取到完整内容,父子分段的思路是当检索到较小的分块时,将前后连续的其他分块组成一个更大的分块一并发给模型,从而提升上下文的连续性。</li>
<li><strong>分层索引:</strong> 分层索引解决的是当知识库内容太多而无法检索到全部相关信息的问题,思路是通过大模型对连续的多个分块进行摘要后再建立一层索引,当命中摘要索引后再对摘要后的小块进行检索,以提升检索召回率。</li>
<li><strong>元数据过滤:</strong> 元数据是指在知识库构建时可以对知识记录设置的元数据标签,在检索时可以根据用户意图或身份信息对元数据进行检索过滤,基于该特性可以实现知识权限控制、意图路由等功能。</li>
</ul>
<h1 id="三内容生成">三、内容生成</h1>
<blockquote>
<p>内容生成阶段大模型将根据前面检索到的知识库上下文,结合用户问题、系统提示词、历史记忆等,生成最终的答案。在这一步中,主要的优化工作在于设置模型对知识库未命中场景的回复策略,还可以优化输出的展示效果,来提升用户体验和结果的可信度。</p>
</blockquote>
<h2 id="1无关内容拒答">1.无关内容拒答</h2>
<p>对于回答准确性要求较高的场景,例如医疗、金融、政务领域的知识问答,需要能够拒绝回答知识库中不存在的内容,严禁模型自由发挥编造内容。</p>
<p>对于这个问题有两个优化途径,一是优化智能体的系统提示词,着重描述对于无关内容拒答的规则,并将模型温度设置为0。同时平台也提供了提示词一键优化功能,可以快速生成高质量的提示词。</p>
<p>另外一个方式就是对于未检索到知识库的情况设置明确的处理逻辑,平台提供了知识库未命中策略的配置,支持在模型<strong>自由发挥、回复固定文案、转人工</strong> 中选择。其中针对转人工还提供了丰富的规则配置,可选择关键词和意图触发,设置回复策略、通知方式、智能摘要,并支持在对话管理进行统一管理。</p>
<p><img src="https://cdn.link-ai.tech/doc/20250820161339.png"></p>
<h2 id="2知识库引用来源">2.知识库引用来源</h2>
<p>知识库的引用来源的展示可以提升输出答案的和可信度和可追溯性,同时也能让模型在生成时更多引用知识库内容作为来源,减少无关内容输出。另外,平台还支持对引用来源的展示设置置信度阈值,只有语料的检索相似度超过某个值时,才展示知识库的引用来源。</p>
<p><img src="https://cdn.link-ai.tech/doc/20250820164152.png"></p>
<h2 id="3引导问题生成">3.引导问题生成</h2>
<p><strong>问题引导</strong> 开启后会在智能体回复后生成几个推荐问题,以引导用户进一步深入提问,并更好命中知识库。</p>
<p>平台在引导问题的生成上进行了一系列优化,首先会与历史对话具有相关性,针对主题不断递进,让用户能逐步深入地了解更多信息。另外推荐的问题都是基于知识库中已有内容生成的,能够引导用户的下一次提问更好命中知识库,以便从源头上对用户的原始问题质量进行优化。</p>
<p><img src="https://cdn.link-ai.tech/doc/20250710152330.png"></p>
<h1 id="四评估体系建立">四、评估体系建立</h1>
<blockquote>
<p>任何问题如果无法度量,就无法被科学的优化,也很难对比评估改进的效果,所以评估体系的建立也是RAG优化中非常关键的一步,好的评估框架可以帮我们指明优化的方向,并形成 "迭代 -&gt; 评估 -&gt; 迭代" 的数据闭环。</p>
</blockquote>
<h2 id="1指标设定">1.指标设定</h2>
<p>首先要确定RAG系统的评估指标,即哪些要素可以来衡量一个RAG系统的效果好坏。由LlamaIndex和Truelens提出的 <strong>RAG三元组</strong> 是一个业界常用的评估理论:</p>
<p><img src="https://cdn.link-ai.tech/doc/20250819213919.png"></p>
<p>该理论的核心是通过用户问题(Query)、检索上下文(Context)、生成答案(Response) 三者间的关系来衡量RAG的质量。基于这个思路,我们可以针对两两之间的关系细化出更多指标:</p>
<ul>
<li><strong>上下文相关度:</strong> 评估知识库检索环节的准确性,即检索到的内容与用户问题的相关程度,包括召回率和上下文精度等指标。优化方向包括上文介绍的解析、分段、混合检索等。</li>
<li><strong>真实性:</strong> 评估最终生成的答案是否遵循检索上下文,即大模型的幻觉程度。优化方案是系统提示词优化、选择性能更好的模型、拒答策略设置等。</li>
<li><strong>答案相关性:</strong> 评估生成的最终答案是否真正满足用户问题,这一指标除了系统打分外还可以引入人工评估。优化思路可以是提示词工程、查询改写等。</li>
</ul>
<h2 id="2智能体评估中心">2.智能体评估中心</h2>
<p>目前LinkAI平台在RAG优化过程中以上述指标为指引,建立了多个不同行业和场景的测试集,在每次核心能力迭代后会自动化批量执行测试集,度量RAG系统的指标变化情况。</p>
<p>在后续迭代中,平台会将完整的评估能力开放给客户,建立<strong>智能体评估中心</strong>,支持客户自助构建测试集并批量执行,通过系统裁判模型生成各项过程指标,并同时支持人工标注打分。通过对评估结果的统计分析,可以更好进行智能体配置调优及知识库语料迭代,实现端到端的智能体落地优化。</p>
<h1 id="总结">总结</h1>
<p>本文从知识库系统的完整链路 (导入、检索、生成、评估) 出发,介绍了针对RAG技术更为深入的优化方案,通过对每个中间环节的升级,尽可能保证原始知识的完整性,提升检索准确性,并生成与用户问题及上下文匹配的答案,再通过评估指标量化整体效果,形成一个可以不断循环提升的RAG优化体系。</p>
<p>在实际的企业应用场景中,智能体的构建和知识库的维护一定是一个长期的过程,需要经过前期少量知识的冷启动阶段、AI辅助的人机协同阶段,再根据真实用户的问题和反馈不断补充完善知识库内容、调优智能体配置,才能逐步提升最终智能体落地的业务效果。</p>
<h1 id="参考链接">参考链接</h1>
<p>LinkAI平台:https://link-ai.tech<br>
文档中心:https://docs.link-ai.tech/platform</p><br><br>
来源:https://www.cnblogs.com/zhayujie/p/19049391
頁: [1]
查看完整版本: RAG优化实战 - LinkAI智能体平台的知识库升级之路