扣子(Coze)工作流中的代码模块是其实现复杂逻辑和定制化功能的核心组件,以下从使用方式、应用场景及典型案例三方面展开说明:
一、代码模块的使用方式
1. 添加代码节点
在工作流编排界面中,选择「代码」节点,支持Python和JavaScript两种语言。系统提供默认代码模板,用户可点击「在IDE中编辑」进入编码界面。
2. 参数传递与处理
- 输入参数:通过`params = args.params`接收上游节点的变量(如大模型输出、用户输入等)。
- 代码逻辑:编写自定义处理逻辑,例如数据清洗、正则匹配等。
- 输出定义:以字典形式返回结果,需与下游节点的输入参数类型匹配。
3. 与上下游节点联动
代码节点的输出可传递给其他节点(如数据库操作、消息回复),需在结束节点或变量聚合节点中引用处理后的变量。
二、应用场景
1. 数据预处理
对大模型输出的文本进行格式清洗、关键信息提取(如提取URL、书籍名称)。
2. 复杂逻辑实现
实现条件判断、循环处理,或调用外部API完成特定功能。
3. 格式转换
将数据转换为符合插件要求的格式(如飞书多维表格的JSON结构)。
4. 错误处理
捕获异常并返回自定义错误信息,提升工作流稳定性。
三、典型案例与完整代码
案例1:从大模型回答中提取书籍名称和URL
目标:将通义千问生成的Python学习建议中的推荐书籍和网址提取到飞书表格中。
代码实现(Python)
python
import re
async def main(args):
接收大模型的输出文本
input_text = args.params'input'
提取书籍名称(匹配书名号内容)
book_pattern = r'《(.*?)》'
books = re.findall(book_pattern, input_text)
提取URL(匹配http链接)
url_pattern = r'https?://^\s+'
urls = re.findall(url_pattern, input_text)
返回结构化结果
return {
"books": books,
"urls": urls,
"original_text": input_text
}
工作流配置
- 输入:引用大模型节点的输出文本作为`input`参数。
- 输出:定义`books`(书籍列表)、`urls`(链接列表)、`original_text`(原始文本)三个变量。
- 下游节点:将`books`和`urls`传递给飞书多维表格插件完成数据写入。
案例2:飞书表格数据格式转换
目标:将用户输入的姓名、年龄、职业转换为飞书表格所需的JSON格式。
代码实现(JavaScript)
javascript
async function main({ params }) {
const list = {
name: params.name,
age: params.age,
job: params.job
};
let records = ;
for (const item of list) {
let fields = {
"姓名": item.name,
"年龄": item.age,
"职业": item.job
};
records.push({ fields: JSON.stringify(fields) });
}
return { info: records };
}
工作流配置
- 输入:从开始节点获取`name`、`age`、`job`参数。
- 输出:返回`info`数组,每个元素包含飞书表格所需的`fields`字段。
- 下游节点:调用飞书插件`add_records`,将`info`写入指定表格。
四、注意事项
1. 类型匹配:代码输出的变量类型需与下游节点要求严格一致,否则会报错。
2. 调试工具:利用工作流的「试运行」功能验证代码逻辑,结合日志排查错误。
3. 性能优化:复杂代码建议拆分为多个节点,避免单节点超时(默认最长5分钟)。
通过代码模块,开发者可将大模型能力与业务系统深度结合,实现从简单信息提取到企业级数据处理的复杂场景。
领取专属 10元无门槛券
私享最新 技术干货