检索增强生成组件为工作流提供了构建专属知识库并利用其进行智能问答的能力。通过将外部知识源与大模型的推理能力相结合,生成更精准、相关性更高且可溯源的响应,有效缓解大模型的“幻觉”问题。
该组件包含三个核心子组件:创建知识库、上传文件和知识库检索。
创建知识库
该组件根据指定的名称和配置参数,在系统中创建一个新的、空的知识库实例。创建成功后,知识库的唯一标识(如ID或名称)将作为输出,可供“上传文件”或“知识库检索”组件调用。
参数配置:
- 知识库名称:为知识库设置一个唯一且易于识别的名称。此名称将作为检索和管理的依据,支持手动输入或是接收输出类型为Message的组件结果。
- 分块方法:选择文档预处理时的文本分割策略。不同的策略影响检索的相关性和精度。
- common(通用文本):用递归分块。
- book(书籍):按章节/主要标题分块。
- laws(法律):按条款/条分块,不破坏法律条款的完整性。
- manual(手册):按任务/操作步骤分块,保持一个操作的完整性。
- paper(论文):按结构(摘要、引言、方法、结论、参考文献等)分块。
- presentation(PPT):按幻灯片分块。
- qa(问答):按问答对分块。
- table(表格):按整表或按行分块。
上传文件
该组件将用户提供的文件(如PDF、TXT、DOC等)上传至已创建的知识库中。系统会自动对文件进行解析、分块(依据创建知识库时选择的分块方法)和向量化处理,并将其存储为可被高效检索的知识片段。
参数配置:
- 知识库响应:将组件的“知识库响应”输入端口,连接到“创建知识库”组件的输出端口,或连接到包含知识库标识信息的变量。
- 文件:点击选择文件,通过“我的文件”面板指定需要上传的文件。支持单次上传单个或多个文件。
知识库检索
该组件根据输入的查询问题,在关联的知识库中进行语义相似性搜索,返回与问题最匹配的文本块及其相关性评分。
参数配置:
- 问题:将组件的“问题”输入端口,连接到工作流的提问源,如“聊天输入”组件或上游处理逻辑的输出。
- 知识库:选择知识库,以确定检索范围,支持多选。
在工作流中使用检索增强生成组件
以下示例展示如何将三个组件串联,构建一个基于专属文档的智能问答流程。
初始化知识库
1、添加 “创建知识库” 组件至画布中。
2、配置参数:名称为“产品白皮书”,分块方法选择“common”。
注入知识内容
1、添加 “上传文件” 组件至画布中。
2、将其“知识库响应”端口连接到“创建知识库”组件的输出端口。
3、在“文件”中选择或直接上传一份产品白皮书PDF文件。
以上工作流即完成了知识库的创建,接下来将在同一画布中创建根据知识库生成增强回答的工作流
生产增强回答
1、添加 “会话输入” 组件以接收用户提问。
2、添加 “知识库检索” 组件,“问题”参数的输入端口连接至“会话输入”组件的输出端口。在“知识库”参数中选择创建好的知识库,支持多选。
3、添加“语言模型”组件,配置好模型提供商、模型名称及对应API Key。并将“输入”参数的输入端口连接至“知识库检索”组件的输出端口。
4、添加“会话输出”组件,连接“语言模型”的输出端口。
测试流程
运行工作流,在试验场中输入问题:“请问产品A在空间分析方面有哪些核心功能?”
“知识库检索”组件将自动从“产品白皮书”库中查找相关描述,并交由大模型生成一个基于实际文档内容的、可溯源的准确回答。