这是一段扣子工作流的JavaScript代码,接收infos_list(需JSON解析的图片信息数组)和visualPromptGroups(含content的数组),遍历判断content是否含换行符,将对应首个图片信息分入单图组(无换行)或双图组(有换行),返回两组结果。
📝 提示词原文
累计复制 0 次
// 定义异步主函数main,接收参数对象{params},返回Promise包裹的输出结果
async function main({ params }: Args): Promise<Output> {
// 初始化双图组数组(存含换行符的content对应图片信息)
const double_img_info: any[] = [];
// 初始化单图组数组(存无换行符的content对应图片信息)
const single_img_info: any[] = [];
// 将输入的infos_list(字符串数组)解析为JSON对象数组(每个元素是图片信息数组)
const infos = params.infos_list.map(item => JSON.parse(item));
// 从参数获取视觉提示组数组(含content字段,判断是否有换行符)
const prompts = params.visualPromptGroups;
// 遍历每个视觉提示组(i是索引)
for (let i = 0; i < prompts.length; i++) {
// 当前提示组的内容(判断是否含换行符)
const content = prompts[i].content;
// 安全获取infos中对应索引的第一个图片信息(避免索引越界)
const firstImgInfo = infos[i]?.[0];
// 如果图片信息为空,跳过当前组(不处理)
if (!firstImgInfo) continue;
// 判断内容是否含换行符('\n')
if (content.includes('\n')) {
// 含换行符→加入双图组
double_img_info.push(firstImgInfo);
} else {
// 不含换行符→加入单图组
single_img_info.push(firstImgInfo);
}
}
// 返回分组结果:单图组数组、双图组数组
return {
single_img_info,
double_img_info
};
}
async function main({ params }: Args): Promise<Output> {
// 初始化双图组数组(存含换行符的content对应图片信息)
const double_img_info: any[] = [];
// 初始化单图组数组(存无换行符的content对应图片信息)
const single_img_info: any[] = [];
// 将输入的infos_list(字符串数组)解析为JSON对象数组(每个元素是图片信息数组)
const infos = params.infos_list.map(item => JSON.parse(item));
// 从参数获取视觉提示组数组(含content字段,判断是否有换行符)
const prompts = params.visualPromptGroups;
// 遍历每个视觉提示组(i是索引)
for (let i = 0; i < prompts.length; i++) {
// 当前提示组的内容(判断是否含换行符)
const content = prompts[i].content;
// 安全获取infos中对应索引的第一个图片信息(避免索引越界)
const firstImgInfo = infos[i]?.[0];
// 如果图片信息为空,跳过当前组(不处理)
if (!firstImgInfo) continue;
// 判断内容是否含换行符('\n')
if (content.includes('\n')) {
// 含换行符→加入双图组
double_img_info.push(firstImgInfo);
} else {
// 不含换行符→加入单图组
single_img_info.push(firstImgInfo);
}
}
// 返回分组结果:单图组数组、双图组数组
return {
single_img_info,
double_img_info
};
}
扣子工作流代码节点常见问题
代码节点支持哪些编程语言?
目前扣子工作流代码节点主要支持 JavaScript(Node.js 环境)和 Python。您可以在节点设置中选择语言,推荐使用 JavaScript 以更好地与前端交互。
如何在代码节点中引入第三方库?
扣子代码节点内置了常用库(如 axios、lodash),无需额外安装。如果需要其他库,可使用动态导入(ES6)或通过在线依赖注入。具体可参考官方文档的“允许的依赖列表”。
代码节点如何获取上游节点的输出数据?
通过代码节点的输入参数对象
inputs 获取,例如 const data = inputs.user_query。确保上游节点的输出字段名与代码中引用的名称一致。
代码节点如何返回数据给下游节点?
使用
return 语句返回一个对象,对象的属性将成为输出字段。例如 return { result: "处理完成" };。下游节点可通过 {{节点名.result}} 引用。
代码节点执行超时或内存不足怎么办?
扣子代码节点默认超时时间较短(通常 5-10 秒),避免在代码中执行大量同步循环或大数据处理。建议将复杂任务拆分为多个节点,或使用异步流处理。如果必须处理大数据,考虑分批或调用外部API。
代码节点能访问环境变量或工作流全局变量吗?
可以通过
process.env 访问系统环境变量(仅限内置变量)。工作流全局变量(如工作流ID、用户ID)可通过 inputs 中的特定字段获取,具体需查看平台文档。
代码节点出错后如何定位问题?
利用
console.log() 打印关键变量,然后在工作流运行日志中查看输出。也可以使用 try-catch 捕获错误并返回自定义错误信息,便于调试。