内部资料,请扫码登录
工作流功能以dev分支为准,当前功能正在快速迭代中

工作流是 PIG AI 平台的核心功能之一,通过将复杂的任务分解成较小的步骤(节点)降低系统复杂度,减少了对提示词技术和模型推理能力的依赖,提高了 LLM 应用面向复杂任务的性能,提升了系统的可解释性、稳定性和容错性。
# 关键概念
# 节点
节点是工作流的关键构成,通过连接不同功能的节点,执行工作流的一系列操作。工作流的核心节点包括开始节点、结束节点、LLM节点、条件分支节点等,每个节点都有特定的功能和配置选项。
# 变量
变量用于串联工作流内前后节点的输入与输出,实现流程中的复杂处理逻辑,包含系统变量、环境变量和会话变量。变量作为一种动态数据容器,能够存储和传递不固定的内容,在不同的节点内被相互引用,实现信息在节点间的灵活通信。
# 环境变量
环境变量用于保护工作流内所涉及的敏感信息,例如运行工作流时所涉及的 API 密钥、数据库密码等。它们被存储在工作流程中,而不是代码中,以便在不同环境中共享。
环境变量拥有以下特性:
- 环境变量可在大部分节点内全局引用
- 环境变量命名不可重复
- 环境变量为只读变量,不可写入

# 节点:开始
开始节点是 Chatflow / Workflow 应用中的关键预设节点。它提供了基本的初始信息,如用户输入和上传的文件,以支持应用和后续工作流节点的正常流程。
在开始节点的设置页面,你会找到两个部分:"输入字段"和预设的系统变量。
# 输入字段
输入字段由应用开发者配置,用于提示用户提供额外信息。例如,在周报应用中,可能需要用户提供姓名、工作日期范围和工作详情等背景信息,这些初步信息有助于 LLM 生成更高质量的回复。
支持六种类型的输入变量,所有这些都可以设置为必填项:
- 文本:短文本,由用户填写,最大长度为 256 个字符。
- 段落:长文本,允许用户输入更长的内容。
- 选择:由开发者设置的固定选项;用户只能从预设选项中选择,不能输入自定义内容。
- 数字:只允许数字输入。
# 节点:问题分类
问题分类节点通过定义分类描述,使 LLM 能够根据用户输入选择与之相匹配的分类。这个节点特别适用于需要根据用户问题类型进行不同处理路径的场景。
# 节点功能
问题分类节点允许你定义多个分类,每个分类包含:
- 分类名称:用于标识该分类的唯一名称
- 分类描述:详细说明该分类所涵盖的问题类型和特征
- 示例问题:提供该分类的典型问题示例,帮助 LLM 更准确地识别
当用户提问时,LLM 会分析问题内容,并将其归类到最匹配的分类中,然后工作流可以根据分类结果执行不同的处理路径。
# 使用场景
问题分类节点适用于以下场景:
- 客户服务:将用户问题分类为产品咨询、技术支持、投诉建议等
- 内容推荐:根据用户兴趣分类,提供个性化内容推荐
- 多功能助手:根据用户意图分类,执行不同的功能模块
# 条件分支
条件分支节点允许你根据 if/else/elif 条件将工作流拆分成多个分支,实现复杂的逻辑控制。
# 分支节点
通过条件判断代码动态控制工作流分支走向,根据输入参数值返回对应的分支索引。以下示例演示如何根据用户输入参数判断执行路径:
function main(args) {
// 条件判断:当输入参数等于 'ai' 时返回分支索引 0,否则返回分支索引 1
// Conditional check: Return branch index 0 when input equals 'ai', otherwise branch index 1
return args.input === 'ai' ? 0 : 1;
}
# 代码执行
代码执行节点支持运行 JS 代码以在工作流程中执行数据转换等自定义逻辑。它可以简化你的工作流程,适用于算术运算、JSON 转换、文本处理等情景。
// 这里返回值必须是 map ,才能被下游感知
function main(args){
return {
arg1:args.arg1,
arg2:args.arg2
}
}
# 数据库操作
数据库操作节点允许工作流与数据库进行交互,执行查询、插入、更新和删除等操作。这个节点特别适用于需要持久化存储数据或从数据库检索信息的场景。

# 节点功能
这里可以直接选择开发平台维护的数据源,然后针对目标数据源写SQL,
直接 SQL 查询:允许你编写 SQL 语句直接操作数据库
SELECT * FROM users WHERE age > 18
# HTTP 请求
HTTP 请求节点允许通过 HTTP 协议发送服务器请求,适用于获取外部检索结果、webhook、生成图片等情景。
# 节点功能
HTTP 请求节点支持以下功能:
- 请求类型:支持 GET、POST、HEAD、PATCH、PUT、DELETE 等 HTTP 方法
- 鉴权类型:支持无鉴权、API-Key 基础、API-Key Bearer、API-Key 自定义等多种鉴权方式
- 请求头:可设置自定义 HTTP 请求头
- 请求参数:支持 URL 参数设置
- 请求体:支持 none、form-data、x-www-form-urlencoded、raw text、JSON 等多种格式
# 结束
结束节点定义一个 workflow 流程结束的最终输出内容。它是工作流的终点,用于汇总处理结果并返回给用户或其他系统。
# 应用发布 (API)
对话型应用支持发布为:
- 直接运行
- 访问 API - 通过标准化接口供外部其他应用系统调用

# 请求参数描述
参数名称 | 类型 | 必填 | 说明 |
---|---|---|---|
id | string | 是 | 应用ID |
params | object | 是 | 应用输入参数 【对应开始节点的参数要求】 |
envs | object | 否 | 额外环境变量参数 |
# 响应参数描述
参数名称 | 类型 | 说明 |
---|---|---|
code | number | 状态码,0表示成功 |
msg | string | 状态消息,成功时为null |
data | object | 返回数据对象 |
data.nodes | array | 节点信息数组 |
data.variables | object | 变量信息 |
data.result | object | 结果信息 【对应结束节点参数配置】 |
ok | boolean | 请求是否成功 |