AI生成脚本
AI生成脚本(MagicCode) 用于让你用一句自然语言描述需求,由 AI 自动生成对应的 Python 脚本并在工作流中直接执行。它本质是一个强制使用 Python 的代码节点,适合快速实现一次性的数据转换、计算或逻辑兜底,省去手写代码的成本。
指令标识:MagicCode
指令类型:AI 智能指令
指令描述:用自然语言生成并执行 Python 脚本
先选使用方式
Section titled “先选使用方式”工作流支持「可视化编排」和「代码编排」两种创建方式。AI生成脚本 在两种方式里都能用,核心都是执行一段 Python 脚本,区别只是脚本由 AI 生成还是你手写。
| 方式 | 怎么用 | 适合人群 |
|---|---|---|
| 可视化编排(推荐先学) | 拖入「AI生成脚本」节点,用自然语言描述需求,点击生成后预览并运行 | 不熟悉代码、希望快速实现一次性逻辑的用户 |
| 代码编排(Python) | 直接调用 bots.magicCode(script="...", outKey="..."),或干脆手写 Python | 熟悉代码、需要精确控制脚本逻辑的用户 |
第一次使用建议先用可视化编排生成脚本跑通,再迁移到代码编排。下方「参数说明」同时给出界面字段和代码参数名,方便两种方式对应。
什么时候用?
Section titled “什么时候用?”- 需要做一段平台标准节点无法直接覆盖的数据处理或计算。
- 临时实现一次性逻辑,不想为它单独手写完整代码。
- 已有 Python 思路,但希望 AI 先帮你把骨架生成出来。
如果逻辑较重、需要长期维护,建议使用 执行代码(Python/JS) 节点手写并固化脚本。
- 用自然语言描述需求时,尽量写清楚输入是什么、要得到什么输出。
- 需要引用的上游数据,已经通过输入参数传入。
- 生成的脚本只能使用平台预置的 Python 包,复杂依赖可能不可用。
- 生成后务必先预览脚本逻辑,确认无误再运行。
可视化编排:从 0 到跑通
Section titled “可视化编排:从 0 到跑通”下面用一个常见场景演示:把上游节点返回的金额字符串清洗成数字并求和。
- 在工作流画布中添加 AI生成脚本 节点。
- 在 需求描述 中用自然语言写清楚需求,例如:
把输入的金额数组中每个元素去掉「元」和逗号,转成数字后求和,返回字段 total- 点击 生成,系统会给出一段 Python 脚本,检查逻辑是否符合预期。
- 在 输入参数 中添加
amounts,值引用上游节点的金额数组。 - 在 输出 中定义
total,点击运行查看结果。
| 界面名称 | 代码属性名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| 需求描述 | - | String | 是 | - | 用自然语言描述要实现的逻辑,仅在可视化生成阶段使用 |
| 脚本 | script | String | 是 | - | AI 生成或手写的脚本,入口为 def main(params) |
| 入参 | inputList | String | 否 | - | 高级选项。传给脚本的动态参数,JSON 格式,脚本内通过 params.get("参数名") 获取,例如 [{"name":"param1","value":"test"}] |
| 脚本语言 | language | String | 否 | - | 高级选项。脚本编程语言,支持 JavaScript、Python、Python3 |
| 输出参数 | outputList | String | 否 | - | 高级选项。需要从脚本结果中提取的输出参数配置,JSON 格式,例如 [{"name":"userName","value":"admin","type":"string","required":true}] |
| 界面名称 | 代码属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| 输出 | outKey | String | 否 | 保存脚本返回结果的变量名。脚本需以字典形式返回,键名与输出配置一致 |
脚本的运行规范与 执行代码(Python/JS) 一致:入口函数必须是 def main(params),返回值必须是字典。
AI生成脚本节点运行结束后状态为成功。- 运行日志中没有参数缺失、超时或执行失败等错误。
- 如果配置了输出变量,后续节点能够读取到符合预期的结果。
- 后续节点能够继续执行,流程没有因为该节点异常中断。
| 现象 / 报错原文 | 可能原因 | 处理建议 |
|---|---|---|
| 生成的脚本逻辑不符合预期 | 需求描述不够清晰 | 把输入字段、输出字段、处理规则写得更具体,再重新生成 |
运行报 ModuleNotFoundError | 使用了平台未预置的 Python 包 | 改用预置包实现,或拆分逻辑 |
| 输出变量取不到值 | 返回的字典键名与输出配置不一致 | 确保脚本 return 的键名与「输出」中配置的参数名完全一致 |
| 运行超时 | 脚本耗时过长或存在死循环 | 精简逻辑,避免大循环和阻塞操作 |
Python 代码编排
Section titled “Python 代码编排”代码编排以 Python 为主。运行上下文由代码编排模板创建,示例里只需要关注业务指令本身。
AI生成脚本 本质是执行一段 Python,因此在代码编排里你可以直接把生成的脚本作为 script 传入:
result = bots.magicCode( script="""def main(params): amounts = params.get("amounts") or [] total = 0 for a in amounts: total += float(str(a).replace("元", "").replace(",", "")) return {"total": total}""", inputList='[{"name":"amounts","type":"array","value":"${upstream.amounts}"}]', outKey="magicResult",)在代码编排场景下,如果你已经能直接写 Python,通常无需经过「AI 生成」这一步——直接在脚本里写业务逻辑即可。「AI生成脚本」的核心价值体现在可视化编排里的「自然语言 → 脚本」生成体验。
Q1:AI生成脚本和执行代码节点有什么区别?
Section titled “Q1:AI生成脚本和执行代码节点有什么区别?”A: 「AI生成脚本」强制使用 Python,并提供「自然语言 → 脚本」的生成能力,适合快速、一次性的逻辑;「执行代码(Python/JS)」需要你自己写代码,支持 Python 和 JavaScript,适合需要长期维护的逻辑。
Q2:生成的脚本能用哪些第三方库?
Section titled “Q2:生成的脚本能用哪些第三方库?”A: 与执行代码节点一致,仅支持平台预置的 Python 包,使用未预置的包会执行失败。
Q3:生成的脚本必须用 main 函数吗?
Section titled “Q3:生成的脚本必须用 main 函数吗?”A: 是的,脚本入口必须是 def main(params),并以字典形式返回结果。