Appearance
扣子工作流节点支持 Object、Array 等多种复杂类型的输出和输出格式,在数据传输和处理的过程中,往往需要转换数据类型以便下游节点处理。JSON 序列化和反序列化是常见的数据类型转换方式,例如将某个节点输出的 Object 对象保存在扣子数据库中,需要先将 Object 对象转换为 JSON 字符串,再通过数据库节点保存到 String 类型的字段中。 扣子工作流现已支持 JSON 序列化和反序列化节点,支持将 Object 对象等常见数据类型转换为 JSON 字符串,以及将 JSON 字符串还原为指定数据结构。相较于代码节点,JSON 序列化和反序列化节点无需编写代码,可视化程度高、操作更加便捷。关于节点的详细说明,可参考JSON 序列化节点、JSON 反序列化节点。 本文档以发送 HTTP 请求为例,演示 JSON 序列化和反序列化的方式。 工作流设计 设计一个调用扣子 OpenAPI 创建消息的工作流。 1. 生成 OpenAPI 请求 Body:由大模型节点生成 Object 结构,即消息内容,再由 JSON 序列化节点将其序列化为 JSON 字符串。 2. 发送 OpenAPI 请求:由 HTTP 请求节点发送请求,调用扣子 OpenAPI 创建消息。 3. 解析 OpenAPI 响应:由 JSON 反序列化节点解析 HTTP 请求节点的输出变量(body),将其转为 Object 结构,再解析出 code、msg 等响应参数。
核心节点 各个节点的配置详情如下:
节点名称
说明
配置示例
开始节点
在本教程中,开始节点用于传入调用 OpenAPI 的必选参数。我们设置一个输入参数 input,用于传入消息内容,例如“早上好”。
大模型节点
为开始节点传入的消息内容生成一个完整的消息结构,便于后续序列化为 JSON 字符串作为 OpenAPI 的请求体。 用户提示词:提示模型生成 role、content 和 content_type 三个字段,并描述三个字段的含义。其中 content 部分引用开始节点传入的 input,作为消息内容。 输出:输出变量设置为 output,Object 类型,其中包含 role、content 和 content_type 三个字段。
JSON 序列化节点
将大模型节点生成的 Object 类型数据转为 JSON 字符串,后续可直接作为 OpenAPI 的请求体。 输入:引用大模型节点输出的 ouput。 输出:固定为 JSON 字符串。
HTTP 请求
发送一个扣子 OpenAPI 请求,对应的 API 为创建消息。 API:配置 OpenAPI 的请求方法、请求地址。 请求参数:引用 JSON 序列化节点输出参数。 请求头:配置 OpenAPI 的请求头。 请求体:配置为 JSON 格式,输入 { 并直接引用 JSON 序列化节点输出参数 ouput。
JSON 反序列化节点
HTTP 请求节点的输出参数 body 中封装了 OpenAPI 响应的 Body 部分,其中包含 code、msg 等字段,通过 JSON 反序列化节点可以将其成功解析为输出变量,以便关注其中的重点字段内容。 输入:引用 HTTP 请求节点的输出参数 body,表示解析该字段。 输出:配置需要从 JSON 中解析的字段。可以复制一个 JSON 格式的 OpenAPI 响应 Body 示例,通过输出区域右上角 JSON 导入功能,直接生成节点的输出结构。
结束节点
输出需要返回的变量或文本。这里我们选择返回变量 code、msg。 调用工作流之后可以根据 code 判断接口的响应状态,如果 API 调用失败,可通过 code 和 msg 判断失败原因。
