扣子工作流基本介绍
扣子工作流基本介绍
文章目录
工作流介绍
- 工作流是一系列可执行指令的集合,用于实现业务逻辑或完成特定任务。它为应用/智能体的数据流动和任务处理提供了一个结构化框架。工作流的核心在于将大模型的强大能力与特定的业务逻辑相结合,通过系统化、流程化的方法来实现高效、可扩展的 AI 应用开发。
- 扣子提供了一个可视化画布,你可以通过拖拽节点迅速搭建工作流。同时,支持在画布实时调试工作流。在工作流画布中,你可以清晰地看到数据的流转过程和任务的执行顺序
工作流类型
- 工作流(Workflow):用于处理功能类的请求,可通过顺序执行一系列节点实现某个功能。适合数据的自动化处理场景,例如生成行业调研报告、生成一张海报、制作绘本等。
- 对话流(Chatflow):是基于对话场景的特殊工作流,更适合处理对话类请求。对话流通过对话的方式和用户交互,并完成复杂的业务逻辑。对话流适用于 Chatbot 等需要在响应请求时进行复杂逻辑处理的对话式应用程序,例如个人助手、智能客服、虚拟伴侣等。
工作流和对话流的区别
差异 | 工作流 | 对话流 |
---|---|---|
开始节点 | 预置一个非必填参数,格式为 String,默认命名为 input。 | 预置了以下必选参数:USER_INPUT:用户在对话流中输入的原始内容。CONVERSATION_NAME:对话流绑定的会话。 |
大模型节点 | 不支持对话历史。 | 支持读取对话历史,会话中的上下文会和用户问题一起传递给大模型。 |
意图识别节点 | 不支持对话历史。 | 支持读取对话历史,会话中的上下文会和用户问题一起传递给大模型。 |
节点
工作流的核心在于节点,每个节点是一个具有特定功能的独立组件,代表一个独立的步骤或逻辑。这些节点负责处理数据、执行任务和运行算法,并且它们都具备输入和输出。每个工作流都默认包含一个开始节点和一个结束节点。
工作流的开始节点、结束节点、输出节点、插件节点、子工作流节点、代码节点、SQL 自定义节点、新增数据节点、查询数据节点、更新数据节点、删除数据节点、问答节点、批处理节点、循环节点、变量聚合节点、变量节点、选择器节点均支持多种变量类型,包括 String、Integer、Number、Boolean、Object、File 和 Array等
引用输入参数是需要使用{{输入参数}}格式
权限
工作流的所有者享有工作流的全部权限,包括编辑、发布和删除自己创建的工作流。团队成员可以查看和使用团队内的所有工作流,而团队所有者和管理员有权删除工作流
工作流节点
基础节点
开始节点
- 开始节点是工作流的起始节点,用于设定启动工作流需要的输入信息。开始节点只有输入参数,没有输出等其他参数。开始节点中默认有一个输入参数 BOT_USER_INPUT,表示用户在本轮对话中输入的原始内容。你也可以按需添加其他参数。支持JSON格式导入参数
- 支持配置 String、Number 等多种类型的输入参数。其中 Object 类型的参数最多支持 3 层嵌套。
结束节点
- 结束节点是工作流的最终节点,用于返回工作流运行后的结果。结束节点支持两种返回方式,即返回变量和返回文本。
- 返回变量支持配置 String、Number、Object 等多种类型,其中 Object 类型的参数最多支持 3 层嵌套。
大模型节点
- 大模型节点可以调用大型语言模型,根据输入参数和提示词生成回复,通常用于执行文本生成任务
- 大模型节点依赖大语言模型的语言理解和生成能力,可以处理复杂的自然语言处理任务,你可以根据业务场景的需求选择不同的模型,并配置提示词来定义模型的人设和回复风格。
系统提示词,用于指定人设和回复风格。
用户提示词是用户在本轮对话中的输入,用于给模型下达最新的指令或问题
插件节点
- 插件节点用于在工作流中调用插件运行指定工具。
- 插件是一系列工具的集合,每个工具都是一个可调用的 API。
工作流节点
扣子提供工作流节点,实现工作流嵌套工作流的效果。
业务逻辑节点
代码节点
代码节点支持通过编写代码来生成返回值。扣子支持在代码节点内使用 IDE 工具,通过 AI 自动生成代码或编写自定义代码逻辑,来处理输入参数并返回响应结果。
示例
// 在这里,您可以通过 ‘params’ 获取节点中的输入变量,并通过 'ret' 输出结果
// 'params' 和 'ret' 已经被正确地注入到环境中
// 下面是一个示例,获取节点输入中参数名为‘input’的值:
// const input = params.input;
// 下面是一个示例,输出一个包含多种数据类型的 'ret' 对象:
// const ret = { "name": ‘小明’, "hobbies": [“看书”, “旅游”] };
async function main({ params }: Args): Promise<Output> {
// 构建输出对象
const ret = {
"key0": params.input + params.input, // 拼接两次入参 input 的值
"key1": ["hello", "world"], // 输出一个数组
"key2": { // 输出一个Object
"key21": "hi"
},
};
return ret;
}
选择器节点
该节点是一个 if-else 节点,用于设计工作流内的分支流程。
意图识别节点
意图识别节点能够让智能体识别用户输入的意图,并将不同的意图流转至工作流不同的分支处理,提高用户体验,增强智能体的落地效果。
识别用户用户,需要在意图里面说明需要匹配的东西,否则可能无法进行匹配
循环节点
循环节点用于重复执行一系列任务。
批处理节点
批处理节点用于批量执行部分操作。
变量聚合节点
工作流变量聚合节点能够将多路分支的输出变量整合为一个,方便下游节点统一配置。
输入和输出节点
输入节点用于在工作流运行期间收集用户输入。
输出节点用于在工作流执行过程中输出指定的消息内容
数据库节点
数据库节点是对数据库操作的节点
SQL自定义
SQL 自定义节点用于对指定数据库进行常见的 SQL 操作。
可以自己编写sql语句,也可以使用自然语言AI生成
新增数据
新增数据节点用于向指定的数据库插入数据,对应 SQL 中的 INSERT 操作。
向user表中插入数据
更新数据
更新数据节点用于更新指定的数据库中数据,对应 SQL 中的 UPDATE 操作。
根据id更新user表中的username,phone,address
查询数据
查询数据节点用于在指定的数据库中查询数据,对应 SQL 中的 SELECT 操作。
根据id查询数据
删除数据
删除数据节点用于删除指定的数据库中数据,对应 SQL 中的 DELETE 操作。
根据id删除数据
知识和数据节点
对知识库操作的节点
- 知识库写入:知识库写入节点用于向指定的扣子知识库或火山知识库中添加内容。
- 知识库检索:知识库是智能体的私有知识合集,知识库检索节点可以基于用户输入查询指定的知识库,召回最匹配的信息,并将匹配结果以列表形式返回。
- 知识库删除:对知识库中的内容进行删除
- 长期记忆:长期记忆节点用于在工作流中召回长期记忆中储存的用户的个性化信息。
- 变量赋值:变量赋值节点是工作流中用于修改和存储变量值的节点
图像处理节点
处理图像相关的节点
组件节点
HTTP请求:HTTP 请求节点允许用户通过 HTTP 协议发送请求到外部服务,实现数据的获取、提交和交互。
问答:问答节点用于主动收集用户的信息、获取用户意图。
文本处理:文本处理节点用于将多种类型的输入数据进行字符串处理,适用于内容二次总结、文本拼接、文本转义等场景,例如对多轮对话中的关键字拼接为 prompt 后进行文生图。
JSON序列化:JSON 序列化节点用于将数据结构(变量)转换为 JSON 格式的字符串,便于下游节点处理。
JSON反序列化:JSON 反序列化节点用于从 JSON 格式字符串中提取其中的字段内容作为变量。
会话管理节点
会话指的是用户与模型之间基于同一主题的一系列连续的对话交互,会话中存储用户输入的消息和模型回复的消息。
创建会话:创建会话节点用于在工作流或对话流中创建一个空的会话。
修改会话:修改会话节点通常用于修改已创建的会话名称。
删除会话:删除会话节点用于删除通过创建会话节点创建的会话。
查询会话列表:查看会话列表节点用于查看当前用户的会话列表。
会话历史节点
查询会话历史:查询会话历史节点用于查看指定会话中存储的上下文消息。
清空回话历史:查询会话历史节点用于查看指定会话中存储的上下文消息。
消息节点
创建消息:创建消息节点用于在指定会话中手动插入消息。
修改消息:修改消息节点用于修改指定会话中的某一条消息内容。
删除消息:删除消息节点用于删除指定会话中的某一条消息内容。
查询消息列表:查询消息列表节点用于查看指定会话中的所有历史消息。
更多推荐
所有评论(0)