大家好,我是荣姐。
Dify知识流水线这个系列,我们已经聊过了简单问答、父子模式和复杂PDF这几个特色玩法。
今天咱们来聊聊Dify知识库内置模版中的通用模式。
在Dify知识库的多种文档处理策略中,通用模式是最核心、适用性最广的基础模式。
因为它代表了RAG(检索增强生成)应用中最经典和最直接的处理方式。
正如其名,它通用且高效,是大多数场景下的首选方案。
通用模式的工作原理非常直接:将文档内容分割成较小的段落块(通用块),然后直接将这些块用于匹配用户查询和检索。
通用模式的主要优势如下:
1、极高的普适性:
这是它最大的优势。无论你导入的是纯文本(.txt)、Markdown(.md),还是从PDF、网页、Word中提取出的非结构化文本,通用模式都能有效处理。它不像简单问答模式那样强依赖表格数据,也不像Markdown转换模式那样专精于特定的Office文件。
2、成本与效果的完美平衡:
通用模式在处理文档的分块阶段不依赖大型语言模型(LLM)进行额外的分析或生成。与LLM上下文增强或LLM生成问答等模式相比,这意味着:
处理速度更快。
成本极低,因为它在索引过程中不消耗宝贵的Token。
3、简单直观,效果稳定:
它的逻辑切块->索引->检索,清晰明了。对于绝大多数标准的问答和文档检索需求,这种方式都能提供稳定可靠的基础效果,使其成为所有用户入门和构建RAG应用的默认起点。
综上,当你需要一种快速、低成本、不挑剔文档类型、并且能迅速搭建起基础检索能力的方案时,通用模式就是最稳妥和最高效的选择。
1 整体流程
整体流程如下:选择本地文件->根据文件后缀选择解析器->文本提取->通用文本分块->存入知识库。
其中DIFY文本提取器和通用文本分块需要安装一下插件。
选择知识库->通过知识流水线创建知识库。
可以从空白知识流水线添加,也可以直接使用内置的模版General Mode-ECO。
如果是直接使用模版,工作流是这个样子的。为了方便,就把数据源精简成只有一个本地文件了。
2 节点配置
2.1 数据源节点
首先肯定是选择数据源节点了,这里为了测试方便,我就只添加一个本地文件。
本地文件支持多种数据格式。
如果你想添加其他数据源,可以下载相应的插件。
2.2 条件分支节点
如果文件后缀是 .xlsx, .xls, .md, .markdown, .mdx, .html, .htm, .docx, .csv 或 .txt ,用Dify内置的文本提取器来解析文档,否则用文档提取器来解析文档。
2.3 文档提取器节点
文档提取器用了两个插件,Dify文本提取器和文档提取器。
其中Dify文本提取器是Dify开发的一款内置文档解析器。它支持多种常见的文件格式,并为某些特定格式(例如 .docx)提供专门的处理。除了提取文本外,它还能提取文档中嵌入的图像,将其存储,并返回可访问的URL。
文档提取器能自动识别、提取各类文档(如PDF、图像、扫描文件、手写笔记等)中的文本和数据,并将其结构化为可供RAG流水线中的语言模型有效利用的格式。
2.4 变量聚合器
不论是哪种文档提取器分析后的文档,聚合到一个变量中。
2.5 通用文本分块节点
在插件市场搜索“通用文本”,选择通用文本分块进行安装。
在这个模块中,我们可以看到6个参数。
1、输入变量:指定要进行分块处理的原始文本内容,这里接收变量聚合器的结果。
2、分隔符
3、最大块的长度
4、块的重叠长度
5、替换连续的空格、换行符和制表符:是否移除文本中的连续空格、换行符和制表符。
6、删除所有URL和电子邮件地址:是否移除文本中的URL和电子邮件地址。
除了第一个输入的文本外,剩下的5个参数可以设置全局变量,方便进行灵活测试。
在输入字段中增加5个全局共享输入,作为通用文本分块的参数。
2.6 知识库节点
具体配置如下:
1、分段结构:Dify 知识库支持三种分块结构:通用、父子和问答。每个知识库只能有一种结构。前一节点的输出必须与所选的分块结构相匹配。所以这里只能选择通用。
2、分块:接收通用文本分块节点的输出。
3、索引方式:知识库提供两种索引方法:高质量 (High-Quality) 和 经济 (Economical),两者各有不同的检索策略。这次选择经济模式。
高质量模式:使用 embeddings 进行向量化,支持向量检索、全文检索和混合检索。这种方式能提供更准确的结果,但资源消耗也更高。
经济模式:采用基于关键词的反向索引,不消耗 token,但准确度较低。此模式可以升级到高质量模式,但无法降级(如需降级,必须重新创建一个新的知识库)。
4、检索设置:倒排索引是一种用于高效检索的结构。按术语组织,每个术语指向包含它的文档或网页。
3 测试
1、选择本地文件
2、填写全局参数。
3、查看结果。
4 总结
这个流水线是一个单数据源输入、自动路由、经济实惠的知识处理流程。
它通过IF/ELSE判断为不同文件选择最优解析器,通过聚合器统一处理所有文本,然后使用通用分块器进行标准分块,最后存入经济模式的知识库,实现了在不消耗Token的前提下快速构建关键词索引。
在没有特别需求下,通用模式确实是一个不错的选择。
Dify知识流水线系列文章:
1、Dify知识流水线,搞定复杂 PDF(含MinerU本地部署教程)
2、Dify知识流水线,父子模式怎么玩
3、Dify知识流水线,玩转简单问答模版,轻松搞定结构化数据