1

工作流程介绍

工作流支持通过可视化的方式,对插件、大语言模型、代码块等功能进行组合,从而实现复杂、稳定的业务流程编排,例如旅行规划、报告分析等。 当目标任务场景包含较多的步骤,且对输出结果的准确性、格式有严格要求时,适合配置工作流来实现。

功能概述

工作流由多个节点构成,节点是组成工作流的基本单元。例如,大语言模型 LLM、自定义代码、判断逻辑等节点。 工作流默认包含了 Start 节点和 End 节点。
  • Start 节点是工作流的起始节点,可以包含用户输入信息。
  • End 节点是工作流的末尾节点,用于返回工作流的运行结果。

工作流+ - 图1

不同节点可能需要不同的输入参数,输入参数分为 Reference 和 Input 两类。Reference 是指引用前面节点的参数值、Input 则是支持设定自定义的参数值。

工作流+ - 图2

Coze 为你提供了以下基础节点,除此之外,你还可以添加插件节点或其他工作流。
节点名称 描述
LLM 大语言模型节点,该节点支持选择不同的 AI 模型处理文本生成任务。
Code 代码节点。通过 IDE 编写代码处理输入参数,并返回输出值。
Knowledge 知识库节点。根据输入参数从关联知识库中召回数据,并返回。
Condition if-else 逻辑节点。满足设置条件则运行 if 分支,否则运行 else 分支。
Variable 变量节点。用于读取和写入 Bot 中的变量。

典型场景

工作流常用于处理报告分析、旅行规划等多步骤的复杂 AI 任务,但也不限制于仅处理复杂任务。你可以灵活搭配各类型的节点,构建适用于自身需求的工作流。以下提供了工作流的典型场景供你参考。

入门场景

仅添加一个节点所构建的简单工作流。
  • 场景一:通过工具节点内的插件能力,自定义工作流。例如,使用 getNews 插件,构建一个用于获取新闻列表的工作流。工作流+ - 图3
  • 场景二:使用大语言模型(LLM)节点,接收并处理用户问题。工作流+ - 图4
  • 场景三:使用 Code 节点,生成随机数。工作流+ - 图5

进阶场景

通过多节点组合,构建逻辑较复杂的工作流。
  • 场景一:搜索并获取指定信息的详情。先通过插件能力进行关键词搜索、然后通过 Code 节点过滤指定信息、最后通过插件能力获取信息详情。工作流+ - 图6
  • 场景二:通过条件判断,识别用户意图。例如,通过 LLM 节点处理用户消息,将消息分为不同的类型,然后通过 Condition 节点分别处理不同类型的用户消息。工作流+ - 图7

Last updated: 2024/2/26 10:58

2

使用工作流

通过本文你可以了解如何创建、发布、复制工作流,以及如何在 Bot 中添加工作流。 使用工作流的顺序如下:
  1. 创建工作流。
  2. 配置工作流。添加工作流节点并按照要处理的用户任务顺序连接工作流。
  3. 测试并发布工作流。
  4. 将工作流添加到你的 Bot 内。

步骤一:创建工作流

  1. 登录 Coze
  2. 在左侧导航栏的 My Workspace 区域,选择进入指定团队。
  3. 在页面顶部进入 Workflows 页面,单击 Create workflow
  4. 设置工作流的名称与描述,并单击 Confirm清晰明确的工作流名称和描述,有助于大语言模型更好的理解工作流的功能。创建后页面会自动跳转至工作流的编辑页面,初始状态下工作流包含 Start 节点和 End 节点。 - Start 节点用于启动工作流。 - End 节点用于返回工作流的运行结果。
  5. 工作流+ - 图8

步骤二:配置工作流

创建工作流后,你可以通过拖拽的方式将节点添加到画布内,并按照任务执行顺序连接节点。 工作流提供了基础节点供你使用,除此之外,你还可以添加插件节点来执行特定任务。
  1. 在左侧面板中选择要使用的节点。
  2. 将节点拖拽到画布中,并与其他节点相连接。
  3. 配置节点的输入输出参数。

配置 LLM 节点

LLM 节点是 Coze 提供的基础节点之一,你可以使用该节点的大语言模型处理文本生成任务。节点配置说明:
  • Model:所用的大语言模型。
  • Temperature:模型生成内容的随机度。取值范围[0-1],数值越大表示生成不确定性越高、内容越多元。
  • Prompt:该节点的提示词。在提示词中支持使用 引用输入参数(Input)。
  • Batch processing:支持配置批量处理模式,后续该节点会按照配置多次运行。每次运行都会分配参数值,直到达到次数限制或者列表的最大长度。

配置 Code 节点

你可以在 Code 节点内使用 IDE 工具,通过 AI 自动生成代码或编写自定义代码逻辑,来处理输入参数并返回响应结果。 该节点支持 JavaScript、Python 运行时。

JavaScript

  • JavaScript 支持 TypeScript,提供静态语言编码体验。
  • JavaScript 中,仅内置了dayjs(版本 1.8.36) 和 lodash(版本 4.17.20) 两个三方依赖库。javascript
  • JavaScript 运行时遵循 WinterCG 规范,支持 Minimum Common Web Platform API 列举的大多数 API,具体可用的 API 你可以在 IDE 内编码时参考代码提示。

Python

Python 中,仅内置了 requests_async numpy 两个三方依赖库,requests_async 依赖库与 requests 类似,但需要 await

python

节点操作说明

在节点内的 Code 区域单击 Edit in IDE 可通过 IDE 编辑和调试代码。

工作流+ - 图9

具体使用说明如下:
  • 使用 AI 生成代码你可以在 IDE 底部单击 Try AI,并输入自然语言设定代码逻辑,AI 将自动生成代码。你也可以选中代码片段,通过快捷键(macOS 为 Command + I、Windows 为 Ctrl + I)唤起 AI,并输入自然语言让 AI 帮助你修改代码。
  • 补全代码如果你已经为 Code 节点配置好了输入参数,则编辑时支持自动补全参数。
  • 调试代码单击 Test Code,在测试面板以 JSON 格式输入参数进行测试。支持使用 AI 自动生成模拟数据进行测试。设置输入参数后,单击 Run,你可以在 Output Value 区域查看运行结果。在页面底部单击 Update Schema,可将结果同步到 Code 节点的 Output工作流+ - 图10

配置 Knowledge 节点

知识库节点可以根据输入参数从指定知识库内召回匹配的信息。节点配置说明:
  • 设置 Input,节点会根据参数值召回关键内容。
  • 设置 Knowledge,你需要使用的知识库。 - Maximum number of recalls:从知识库召回的最大段落数,数值越大返回的内容越多。 - Minimum matching degree:知识库会根据设置的匹配度召回段落,低于匹配度的内容将不会被召回。

配置 Condition 节点

该节点是一个 if-else 节点,用于设计工作流内的分支流程。 当向该节点输入参数时,节点会判断是否符合 If 区域的条件,符合则执行 If 对应的工作流分支,否则执行 Else 对应的工作流分支。

配置 Variable 节点

该节点用于读取和写入 Bot 中的变量。 Variable 节点需要搭配 Bot 使用,即你需要先创建 Bot 并设置变量,然后再来编辑包含 Variable 节点的工作流,并且 Variable 节点内的变量名称需要和 Bot 内的变量名称保持一致。
  • 选择 Set variable value to bot,你可以将工作流中的参数,赋值到 Bot 的变量中。该操作的 Output 用于校验是否成功为 Bot 变量赋值。
  • 选择 Get variable value from bot,你可以获取 Bot 内的变量值,并作为 Output 使用。

步骤三:测试并发布工作流

完成工作流编辑后,你可以单击页面右上角的 Test run 测试工作流。测试时,运行成功的节点边框会显示绿色,运行失败的节点边框会显示红色。在各节点的右上角单击 Display result 可查看节点的运行结果。该测试能力用于确保工作流在发布前,所有节点均已正确运行。 要想在 Bot 内使用该工作流,则需要发布工作流。
  1. 单击 Test run运行成功的节点边框会显示绿色,在各节点的右上角单击 Display result 可查看节点的输出。工作流+ - 图11
  2. 单击发布只有试运行成功时,才能发布工作流。

步骤四:在 Bot 中添加工作流

  1. 前往当前团队的 Bots 页面,选择进入指定 Bot。
  2. Bots 编排页面的 Workflows 区域,单击 +
  3. Add workflow 对话框的 I created 页面,选择自建的工作流。工作流+ - 图12
  4. 在 Bot 的 Persona & Prompt 区域设置提示词,引用工作流的名称来调用工作流。工作流+ - 图13

其他操作

复制工作流

在某一工作流的编辑页面,单击右上角的 Duplicate 图标,可以将该工作流复制到你的 Workflows 列表。

工作流+ - 图14

删除工作流

对于不再需要使用的工作流,你可以在 Workflows 列表的 Actions 列单击删除图标。 如果工作流已添加至 Bot,在删除时会同步删除 Bot 中的工作流。

工作流+ - 图15

  1. //only dayjs and lodash are allowed
  2. import dayjs from 'dayjs';
  3. import _ from 'lodash';
  4. async function main({ params }: Args): Promise<Output> {
  5. // get input params by this way
  6. return {
  7. content: params.name
  8. };
  9. }
  1. import requests_async as requests
  2. async def main(args: Args) -> Output:
  3. # you can get url by this way
  4. url = args.params['url']
  5. response = await requests.get(url)
  6. ret = {
  7. 'code': response.status_code,
  8. 'res': response.text,
  9. }
  10. return ret

Last updated: 2024/2/26 10:58