工作流 | 代码节点

内容纲要

一、作用是什么?

代码节点支持通过编写代码来生成返回值。

扣子支持在代码节点内使用 IDE 工具,通过 AI 自动生成代码或编写自定义代码逻辑,来处理输入参数并返回响应结果。

注意:代码节点能够支撑的能力和插件的代码所能支持的能力不同点在于,代码节点不能引入第三方库。

二、基础操作说明

基础参数和代码说明

我们需要在工作流中引入一个代码节点

img

代码节点配置说明如下:

  • 输入:如果代码中需要引用变量,可以在输入参数中指定(与其他节点的输入一致,需要引用前序节点的输出)。
  • 代码
    • 参考代码示例编写一个函数的结构,你可以直接使用输入参数中的变量,并通过 return 一个对象来输出处理结果。
    • 此功能不支持编写多个函数,即使仅有一个输出值,也务必保持以对象的形式返回。
    • 支持 JavaScript、Python 运行时

代码运行时(runtime)支持JavaScript和Python

JavaScript

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

Python

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

Python 运行时暂不支持 Http.client 方式的请求。

  • 输出:代码运行成功后,输出的参数。
    • 按照样例的说明,输出的内容,保存在代码的返回参数 ret 内
    • ret 的返回需要以 结构体格式返回。每一项均可作为输出内容,输出的类型和格式要匹配(若不想得到的结果,可以不在 ret 中返回,或者不再输出参数配置)
    • 可以根据实际需求,在输出结构中只保留必要的参数。
      • 在测试代码节点时,你可以通过原始输出获取代码执行的真实输出结果
      • 而最终输出是按照指定的输出结构生成的输出结果。

在 IDE 中编辑代码

说明:代码只能在 IDE 编辑器中进行编辑。

扣子提供了网页版 IDE 环境供你使用,无需考虑代码部署等问题,只要关注代码逻辑即可。

扣子 IDE 还提供了 AI 插件,辅助你进行代码生成。

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

  • 支持 JavaScript 和 Python 两种语言模式
  • 按照自己的实际需求进行代码编辑和输出
  • AI 代码使用
    • 代码生成
    • 可以在 IDE 底部单击 尝试 AI,并输入自然语言设定代码逻辑,AI 将自动生成代码。
    • 也可以选中代码片段,通过快捷键(macOS 为 CommandI、Windows 为 Ctrl + I)唤起 AI,并输入自然语言让 AI 帮助你修改代码。
    • 补全代码
    • 如果已经为 Code 节点配置好了输入参数,则编辑时支持自动补全参数。
    • 调试代码
    • 单击测试代码,在测试面板以 JSON 格式输入参数进行测试。支持使用 AI 自动生成模拟数据进行测试。
    • 设置输入参数后,单击运行,你可以在输出区域查看运行结果。在 输出 区域右侧单击 同步输出到节点,可将结果同步到 代码 节点的输出值

首先,获得参数。我们通过 params.get 方式获取到 output list 。如果不想手动写代码,我们也可以使用 AI 生成代码。点击 AI 助手并输入要求,例如循环输出列表内容。AI 会生成相应代码。

AI 生成的代码可以将循环后的内容拼接成一个新的字符串。例如,将每个姓名拼接成“姓名 1,姓名 2”的格式。点击接受 AI 生成的代码,稍作修改以满足我们的需求,例如强制换行符的添加。

在代码中,将生成的字符串赋值给返回结果。删除多余的返回结果,只保留必要的输出参数。完成修改后,测试代码。使用自动生成的测试数据,点击运行查看结果。确认输出结果与预期一致后,关闭编辑器,代码节点编写完成。

接下来,来到结束节点。在结束节点中引用代码节点的输出,并修改回答内容,以变量的方式引用结果。然后进行试运行,查看输出结果。确认用户输入的所有信息被成功解析,并且所有姓名都正确输出。

通过代码节点的设置,我们成功将用户输入的七个信息全部解析,并将姓名输出。代码中的换行符在回答内容中也成功生效。

Leave a Comment

您的电子邮箱地址不会被公开。 必填项已用*标注

close
arrow_upward