【Dify RAG 实战】法律法规领域高精准 RAG 应用:准确度超 90% 实战案例解析

1. 为什么RAG需要数据标注,数据清洗?

当你使用自有知识库嵌入时,系统会自动为每个文本段标记关键词(也支持手动编辑元数据)。这些关键词是检索的核心要素,若用户提问中包含匹配的关键词,则对应文本段的匹配得分会显著提升。得分越高,该内容被召回的几率越大,从而确保大模型获取正确知识的概率也随之提高。

dify自有的知识库添加进去的话,关键词往往是杂乱的,且和上下文无关。但是在很多场景中,分段是有层级关系的,比如法律场景:第x章 第x条 第x款类似的场景,用户的问题往往是需要结合多条法律条款解决,需要返回多条法律,如果没有专门做标注,容易出现召回分数过低导致召回错误或召回不全的情况。

为了验证这一点,我们用一个例子,第一个知识库不做数据标注,第二个知识库做数据标注

可以看到在召回测试中,不做数据标注,分数都偏低,这里我们都设置的是0.61的召回分数,不做数据标注仅能返回两条数据,注定了这种方式返回的段落给大模型参考会不够全面。

我们再使用相同问题提问,看谁的效果好,可以看到右边做了数据标注的知识库明显回答的要更加全面

2. 如何进行数据清洗和标注?以法律为例,通用标注见其他文档

第一步,选择合适的数据提取工具

如pdf格式的文件,你需要利用包括mineU,olm,marker-pdf等工具进行提取并转为md格式,转完以后,你需要检查是否出现问题。(这里特别注意,扫描件以及含有图片,很多表格的文件需要特别检查,这与当下ocr大模型的提取能力相关,每个工具都有自己的优势)

第二步,比如法律条文。运行法律条文数据标注,清洗工作流(dify)ps:这个工作流是b站一个大佬iCHN-DeepGen做的,我花了一百买来学习研究,过段时间我会把研究成果总结为文章,请继续关注我。

上传文件和输出文件名

等待清洗完毕后,进入dify的这个目录,file是我创建的文件,用来保存写入的内容,配置文件和权限我已经设置好了,如果有疑问请参考另一篇文档《15-拆解工作流报错解决.pdf》在桌面的文档里

把刚刚 “你取的名字_combined_file.txt” 拿出来

打开检查有没有问题,正常如下。若出现分段和标签有问题,可考虑是不是大模型不行换一个大模型或者对提示词做约束,我遇到过大模型输出的不是我要求的严格的json导致生成的内容和标签混乱的情况。####是分段 @@@是标签

3. 创建知识库,

设置分段规则,选择父子分段,混合检索等,如图配置后,点击预览块,看看有没有正确分段。若出现没有包含完整的分块,可调整分段最大长度。父子分段可以很好地利用我们在数据清洗和标注产生的元数据进行检索,提高召回的分数,为大模型提供足够的语料,但是要注意使用score阈值来控制召回的数量,防止不相干数据污染大模型的输入。

4. 第四步,检索提问

使用大模型进行问题拆解,将复杂问题拆解

拆解为问题列表后迭代检索

大模型的提示词设计也是非常重要的一环,这里不多赘述

5. 提问测试

使用用户提供或提前准备的测试问题进行测试,根据返回结果继续调整提示词策略或者召回数量。

本文转自 https://blog.youkuaiyun.com/AwhiteV/article/details/148091378?ops_request_misc=%257B%2522request%255Fid%2522%253A%25224d8c87a016d4bfd16b4055b20cc9710c%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=4d8c87a016d4bfd16b4055b20cc9710c&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-15-148091378-null-null.142v102pc_search_result_base8&utm_term=dify%E6%A1%88%E4%BE%8B%E6%8B%86%E8%A7%A3&spm=1018.2226.3001.4187,如有侵权,请联系删除。

这份完整版的AI智能体整合包已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

在这里插入图片描述

<think>好的,我现在需要回答用户关于Dify RAG的问题。首先,我需要明确用户的问题是什么。用户提到“dify rag”,可能是在询问Dify平台中的RAG(检索增强生成)技术是如何工作的,或者它的应用场景、优势等。用户还提供了两个参考链接,我需要结合这些资料来构建回答。 首先,我应该回顾一下RAG的基本概念。RAG结合了检索和生成两个步骤,通过从外部知识库中检索相关信息来增强生成模型的结果,使其更准确和可靠。在Dify中,RAG被整合到知识库功能中,用于提升生成式AI应用的表现。 接下来,我需要确定Dify RAG的具体实现机制。根据提供的参考资料,DifyRAG流程可能包括知识库构建、检索策略、信息增强生成这几个步骤。知识库可能支持多种格式的数据,比如文本、PDF等,并通过嵌入模型将文档转化为向量存储。检索时,用户的查询也会被向量化,通过相似度匹配找到相关文档片段,然后这些片段作为上下文输入到生成模型中,比如LLM,生成最终回答。 然后,我需要考虑用户可能关心的方面,比如Dify RAG的优势、应用场景、优化方法等。优势可能包括提升生成内容的准确性,减少模型幻觉,支持动态更新知识库应用场景可能涉及客服、知识问答系统、内容生成等需要实时准确信息的领域。优化方法可能涉及检索策略的调整,比如调整top-k参数,使用混合检索(结合关键词和向量搜索),或者优化知识库的结构。 用户可能还会想知道如何在自己的项目中使用DifyRAG功能,可能需要简要说明操作步骤,比如创建知识库、上传文档、配置检索参数等。不过根据用户提供的参考链接,可能不需要详细的操作指南,而是更侧重原理和结构。 另外,需要确保回答符合用户给出的格式要求,比如使用中文,行内公式用$...$,独立公式用$$...$$,但根据当前问题,可能涉及数学公式的地方不多。不过如果有提到相关算法,比如向量相似度计算,可能需要用到内联公式,比如余弦相似度公式$ \cos(\theta) = \frac{\mathbf{A} \cdot \mathbf{B}}{|\mathbf{A}| |\mathbf{B}|} $。 还需要生成相关问题,这部分需要根据回答内容提出几个相关的问题,比如Dify RAG的技术原理、优化方法、应用场景等。 需要确保回答引用参考链接,在适当的位置添加引用标识,例如在提到Dify中的RAG知识库时引用[^1],在检索增强生成的概念时引用[^2]。 现在组织回答结构:首先概述Dify RAG,然后分点讲解核心机制、优势、应用场景,接着给出示例代码或配置片段(如果有的话),最后生成相关问题。 检查是否有遗漏的部分,比如是否提到了知识库构建、检索策略、生成整合等步骤。确保每个部分都简明扼要,符合用户要求的清晰结构。 最后,生成的相关问题需要与Dify RAG相关,可能包括技术细节、优化、应用案例、与其他RAG系统的比较等。</think>### Dify中的RAG(检索增强生成)技术解析 Dify通过整合**检索增强生成(RAG)**技术,将外部知识库与生成式AI结合,显著提升模型输出的准确性和可靠性。以下是其核心机制: #### 1. **知识库构建与向量化** - Dify支持上传多种格式文档(如PDF、文本),并通过嵌入模型(如OpenAI的text-embedding-ada-002)将内容转化为向量$ \mathbf{v} \in \mathbb{R}^d $,存储至向量数据库。 - 文档分块策略采用滑动窗口(例如512 tokens)结合语义分割,平衡检索效率与上下文完整性。 #### 2. **混合检索策略** - **向量检索**:计算查询向量与知识库向量的余弦相似度$ \cos(\theta) = \frac{\mathbf{q} \cdot \mathbf{v}}{|\mathbf{q}| |\mathbf{v}|} $,返回Top-K相关片段。 - **关键词增强**:结合BM25算法补充传统关键词匹配,缓解语义鸿沟问题。 #### 3. **生成阶段优化** - 检索结果通过Prompt模板注入LLM上下文,例如: ```text 根据以下知识回答问题: [检索片段1] [检索片段2] 问题:{用户输入} ``` - 支持调整**温度(temperature)**参数控制生成多样性,默认0.7平衡准确性与创造性。 #### 4. **动态知识更新** - 知识库支持增量更新,新文档触发自动向量化与索引重建(如FAISS或Milvus),保障信息时效性。 #### 优势对比 | 特性 | 传统生成模型 | Dify RAG | |--------------------|-------------------|-----------------------| | 知识时效性 | 固定训练数据 | 支持动态更新 | | 事实准确性 | 易产生幻觉 | 基于检索结果约束 | | 领域适应性 | 需微调模型 | 仅需更新知识库 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值