菜单

组件参考

相关源文件

本文档为 RAGFlow 智能体流程系统中所有可用组件提供全面的参考。组件是模块化的构建块,可以连接在一起以创建 AI 工作流。每个组件都有特定的参数、输入、输出和行为,以实现复杂的智能体自动化。

有关使用可视化流程编辑器界面的信息,请参阅流程编辑器使用。有关整体智能体系统架构,请参阅智能体流程系统

组件架构

RAGFlow 智能体系统建立在模块化组件架构之上,所有组件都继承自基类,这些基类提供参数验证、输入/输出处理和执行生命周期管理等通用功能。

基本组件结构

组件系统遵循一致的模式,每个组件都有一个参数类(继承自ComponentParamBase)和一个执行类(继承自ComponentBase)。

来源:agent/component/base.py34-564 agent/component/generate.py42-84 agent/component/retrieval.py33-57

组件生命周期

每个组件遵循以下执行模式

  1. 初始化:使用画布引用、唯一ID和参数创建组件
  2. 参数验证check()方法验证所有必需参数
  3. 输入处理get_input()从上游组件检索数据
  4. 执行_run()方法执行组件的主要逻辑
  5. 输出设置:结果被存储并提供给下游组件

来源:agent/component/base.py351-383 agent/canvas.py169-298

核心工作流组件

这些组件构成任何智能体工作流的基本构建块,并处理主要的 RAG(检索增强生成)操作。

开始组件

Begin组件是所有智能体工作流的入口点。它管理用户输入、全局参数和初始序言消息。

参数类型描述必填
prologue字符串向用户显示的欢迎消息
querylist输入参数定义

主要功能

  • 定义工作流输入参数及其类型(行、段落、选项、文件、整数、布尔值、知识库)
  • 验证必需参数与可选参数
  • 为聊天界面提供序言消息

来源:agent/component/begin.py agent/component/__init__.py18

检索组件

Retrieval组件执行知识库搜索和检索操作,支持向量相似度和关键词匹配。

参数类型描述必填
kb_idslist要搜索的知识库ID
similarity_threshold浮点数最小相似度分数 (0-1)
keywords_similarity_weight浮点数关键词与向量搜索的权重
top_n整数要检索的块数量
top_k整数检索中的最大 token 数量
rerank_id字符串重排序模型ID
empty_response字符串未找到结果时的响应
tavily_api_key字符串Web 搜索的 API 密钥
use_kg布尔值启用知识图谱检索

检索过程

  1. 处理来自上游组件的输入查询
  2. 使用嵌入模型搜索指定的知识库
  3. 应用相似度阈值和排名
  4. 可选集成知识图谱结果
  5. 返回带有元数据的格式化块

来源:agent/component/retrieval.py33-136

生成组件

Generate组件执行基于 LLM 的文本生成,具有可配置的提示、引用和工具调用功能。

参数类型描述必填
llm_id字符串LLM 模型标识符
prompt字符串生成提示模板
max_tokens整数最大输出 token 数量
temperature浮点数采样温度 (0-1)
top_p浮点数核采样参数
presence_penalty浮点数存在惩罚 (-2 到 2)
frequency_penalty浮点数频率惩罚 (-2 到 2)
cite布尔值启用引用插入
llm_enabled_toolslist可用工具函数

提示变量替换: prompt参数支持使用{variable_name}语法进行变量替换,其中变量可以引用

  • 上游组件输出:{component_id}
  • 开始组件参数:{begin@parameter_key}
  • 聊天历史:{answer}

来源:agent/component/generate.py42-277

回答组件

Answer组件处理向用户的最终响应交付,包括流式传输支持和对话历史管理。

来源:agent/component/answer.py agent/component/__init__.py21

数据处理组件

这些组件转换、过滤和操作流经工作流的数据。

分类组件

Categorize组件使用基于 LLM 的分类方法将输入文本分类到预定义类别中。

参数类型描述必填
category_descriptiondict包含示例的类别定义
llm_id字符串用于分类的 LLM 模型

类别配置: 每个类别都需要

  • description:类别的文本描述
  • examples:用于分类的训练示例
  • to:用于路由的目标组件ID

来源:agent/component/categorize.py23-115

模板组件

Template组件提供使用 Jinja2 语法的高级文本模板功能,支持组件输出替换。

参数类型描述必填
content字符串Jinja2 模板内容
parameterslist模板参数定义

模板功能

  • Jinja2 沙盒环境安全性
  • 组件输出的变量替换
  • 支持循环、条件和过滤器
  • 复杂数据类型的 JSON 序列化

来源:agent/component/template.py25-137

代码组件

Code组件在沙盒环境中执行代码,支持 Python 和 Node.js。

参数类型描述必填
lang字符串编程语言 (python/nodejs)
script字符串要执行的代码
argumentslist来自组件的输入参数
address字符串沙盒服务 URL
enable_network布尔值允许网络访问

执行环境

  • 用于安全的独立沙盒容器
  • Base64 编码的代码传输
  • 来自组件的结构化参数传递
  • 超时保护和错误处理

来源:agent/component/code.py58-149

外部服务组件

这些组件与外部 API 和服务集成,以扩展工作流功能。

搜索组件

提供多种搜索服务集成

组件服务关键参数
Google谷歌搜索api_key, search_engine_id, top_n
BingBing 搜索subscription_key, top_n
Baidu百度搜索top_n
DuckDuckGoDuckDuckGo 搜索top_n
WikipediaWikipediatop_n

学术研究组件

组件服务描述
PubMedPubMed 数据库医学文献搜索
ArXivArXiv 存储库学术论文搜索
GoogleScholarGoogle 学术引用和论文搜索

翻译组件

组件服务关键参数
DeepLDeepL 翻译auth_key, source_lang, target_lang
BaiduFanyi百度翻译appid, secret_key, trans_type

来源:agent/component/__init__.py29-53 agent/component/baidufanyi.py23-97 agent/component/deepl.py21-62

数据库组件

ExeSQL组件支持直接进行数据库查询,并具有自动 SQL 生成和错误恢复功能。

参数类型描述必填
db_type字符串数据库类型 (mysql/postgresql/mssql)
database字符串数据库名称
username字符串数据库用户名
主机字符串数据库主机
port整数数据库端口
password字符串数据库密码
loop整数最大重试次数
top_n整数最大结果行数

SQL 执行过程

  1. 从 LLM 生成的内容中提取 SQL
  2. 使用连接池执行查询
  3. 通过自动重试和重新生成处理错误
  4. 以 Markdown 表格格式返回结果

来源:agent/component/exesql.py28-156

控制流组件

这些组件管理工作流执行模式和数据流控制。

开关组件

Switch组件提供基于输入评估的条件路由。

来源:agent/component/switch.py agent/component/__init__.py23

迭代组件

组件描述
Iteration管理集合上的循环执行
IterationItem表示迭代中的单个项

这些组件支持对数据集合进行带循环控制和聚合的处理。

来源:agent/component/iteration.py agent/component/iterationitem.py agent/component/__init__.py51-52

组件配置系统

参数验证

所有组件都通过ComponentParamBase类实现全面的参数验证。

验证方法

  • check_empty():验证必需的字符串参数
  • check_positive_integer():验证正数值
  • check_decimal_float():验证浮点数范围 (0-1)
  • check_valid_value():对照允许值列表进行验证
  • check_boolean():验证布尔参数

来源:agent/component/base.py226-286

动态参数更新

组件通过update()方法支持运行时参数更新,实现

  • 用户提供的配置覆盖
  • 废弃参数处理
  • 嵌套参数结构
  • 参数依赖解析

来源:agent/component/base.py109-162

组件执行与调试

调试模式

系统通过/debug API 端点提供全面的调试功能。

调试功能描述
输入模拟使用模拟输入测试组件
参数覆盖修改参数进行测试
输出检查查看组件输出数据
错误处理捕获并显示执行错误

来源:api/apps/canvas_app.py235-257

组件输入/输出流程

组件通过多种来源检索输入

  • 直接上游连接:来自连接组件的自动数据流
  • 参数查询:针对特定组件输出的结构化查询
  • 调试输入:手动输入注入用于测试
  • 画布历史:访问对话历史和上下文

来源:agent/component/base.py419-517

流式传输支持

组件可以支持流式执行以实现实时响应生成

流式传输主要用于Generate组件,用于向最终用户实时流式传输 LLM 响应。

来源:agent/component/generate.py235-263

组件注册与发现

组件系统使用动态模块加载进行组件发现

所有可用组件都注册在__all__导出列表中,从而实现画布执行引擎的自动发现。

来源:agent/component/__init__.py56-136