获取 AI 编程帮助
在 Code 节点中使用 AI
信息
功能可用范围
Code 节点的 AI 辅助功能适用于 Cloud 用户,自托管 n8n 不提供。
信息
AI 生成的代码会覆盖现有代码
如果已在 Code(代码) 标签页编写代码,AI 生成的代 码会将其替换。n8n 建议先用 AI 生成初始代码,再按需要编辑。
使用 ChatGPT 在 Code 节点中生成代码的步骤如下:
- 在 Code 节点中,将 Language(语言) 设为 JavaScript。
- 选择 Ask AI(询问 AI) 标签页。
- 编写请求。
- 选择 Generate Code(生成代码)。n8n 会将请求发送给 ChatGPT,再在 Code(代码) 标签页显示结果。
使用限制
试用阶段没有使用量限制。如果 n8n 将此功能正式推出,可能会根据定价套餐设置使用上限。
功能限制
n8n 中的 ChatGPT 实现有以下限制:
- AI 编写的代码用于操作 n8n 工作流中的数据,不能要求它从其他来源获取数据。
- AI 只知道数据结构,不知道实际数据,因此需要告诉它如何找到要提取的数据、如何检查空值等。
- 提交 AI 请求前,Code 节点之前的节点必须已执行,并将数据传递给 Code 节点。
- 不适用于大型传入数据结构。
- Code 节点前面有大量节点时,可能出现问题。
编写有效提示词
好的提示词能提高获得有用代码的概率。
一般建议如下:
- 提供示例:尽可能给出预期输出样例,帮助 AI 理解想要的数据转换或逻辑。
- 描述处理步骤:如果数据需要特定处理步骤或逻辑,按顺序列出。例如:“首先过滤掉所有未满 18 岁的用户,再按姓氏排序剩余用户。”
- 避免歧义:虽然 AI 能理解多种指令,但清晰、直接的表述有助于获得更准确的代码。例如,将“获取年长用户”改为“筛选年龄不小于 60 岁的用户”。
- 明确预期输出:希望转换、筛选、聚合还是排序数据?尽可能详细说明。
针对 n8n,还有以下建议:
- 考虑输入数据:确保 ChatGPT 清楚需要访问哪些数据,以及传入数据代表什么。可能还需要说明有哪些 n8n 内置方法和变量可用。
- 说明节点交互:如果逻辑涉及多个节点,明确它们如何交互,例如“根据 userID 属性合并 Node A 和 Node B 的输出”。如果希望使用特定节点或忽略其他节点,也要说明,例如“仅考虑 Purchases 节点的数据,忽略 Refunds 节点”。
- 确保输出兼容 n8n。n8n 要求的数据格式见数据结构。
提示词示例
以下示例展示多种提示词和任务。
示例 1:在第二个数据集中查找某条数据
要自行尝试,下载示例工作流并导入 n8n:
示例工作流
在第三个 Code 节点中输入以下提示词:
Slack 数据只有一个数据项。输入数据代表所有 Notion 用户。保存邮箱的 person 属性有时为 null。我想找到该 Slack 用户的 notionId 并返回。
查看 AI 生成的代码。
所需 JavaScript 如下:
const slackUser = $("Mock Slack").all()[0];
const notionUsers = $input.all();
const slackUserEmail = slackUser.json.email;
const notionUser = notionUsers.find(
(user) => user.json.person && user.json.person.email === slackUserEmail
);
return notionUser ? [{ json: { notionId: notionUser.json.id } }] : [];