跳转到内容

AI生成脚本

AI生成脚本(MagicCode) 用于让你用一句自然语言描述需求,由 AI 自动生成对应的 Python 脚本并在工作流中直接执行。它本质是一个强制使用 Python 的代码节点,适合快速实现一次性的数据转换、计算或逻辑兜底,省去手写代码的成本。

指令标识:MagicCode
指令类型:AI 智能指令
指令描述:用自然语言生成并执行 Python 脚本

工作流支持「可视化编排」和「代码编排」两种创建方式。AI生成脚本 在两种方式里都能用,核心都是执行一段 Python 脚本,区别只是脚本由 AI 生成还是你手写。

方式怎么用适合人群
可视化编排(推荐先学)拖入「AI生成脚本」节点,用自然语言描述需求,点击生成后预览并运行不熟悉代码、希望快速实现一次性逻辑的用户
代码编排(Python)直接调用 bots.magicCode(script="...", outKey="..."),或干脆手写 Python熟悉代码、需要精确控制脚本逻辑的用户

第一次使用建议先用可视化编排生成脚本跑通,再迁移到代码编排。下方「参数说明」同时给出界面字段和代码参数名,方便两种方式对应。

  • 需要做一段平台标准节点无法直接覆盖的数据处理或计算。
  • 临时实现一次性逻辑,不想为它单独手写完整代码。
  • 已有 Python 思路,但希望 AI 先帮你把骨架生成出来。

如果逻辑较重、需要长期维护,建议使用 执行代码(Python/JS) 节点手写并固化脚本。

  • 用自然语言描述需求时,尽量写清楚输入是什么、要得到什么输出。
  • 需要引用的上游数据,已经通过输入参数传入。
  • 生成的脚本只能使用平台预置的 Python 包,复杂依赖可能不可用。
  • 生成后务必先预览脚本逻辑,确认无误再运行。
AI生成脚本

下面用一个常见场景演示:把上游节点返回的金额字符串清洗成数字并求和

  1. 在工作流画布中添加 AI生成脚本 节点。
  2. 需求描述 中用自然语言写清楚需求,例如:
把输入的金额数组中每个元素去掉「元」和逗号,转成数字后求和,返回字段 total
  1. 点击 生成,系统会给出一段 Python 脚本,检查逻辑是否符合预期。
  2. 输入参数 中添加 amounts,值引用上游节点的金额数组。
  3. 输出 中定义 total,点击运行查看结果。
界面名称代码属性名类型必填默认值说明
需求描述-String-用自然语言描述要实现的逻辑,仅在可视化生成阶段使用
脚本scriptString-AI 生成或手写的脚本,入口为 def main(params)
入参inputListString-高级选项。传给脚本的动态参数,JSON 格式,脚本内通过 params.get("参数名") 获取,例如 [{"name":"param1","value":"test"}]
脚本语言languageString-高级选项。脚本编程语言,支持 JavaScriptPythonPython3
输出参数outputListString-高级选项。需要从脚本结果中提取的输出参数配置,JSON 格式,例如 [{"name":"userName","value":"admin","type":"string","required":true}]
界面名称代码属性名类型必填说明
输出outKeyString保存脚本返回结果的变量名。脚本需以字典形式返回,键名与输出配置一致

脚本的运行规范与 执行代码(Python/JS) 一致:入口函数必须是 def main(params),返回值必须是字典。

  • AI生成脚本 节点运行结束后状态为成功。
  • 运行日志中没有参数缺失、超时或执行失败等错误。
  • 如果配置了输出变量,后续节点能够读取到符合预期的结果。
  • 后续节点能够继续执行,流程没有因为该节点异常中断。
现象 / 报错原文可能原因处理建议
生成的脚本逻辑不符合预期需求描述不够清晰把输入字段、输出字段、处理规则写得更具体,再重新生成
运行报 ModuleNotFoundError使用了平台未预置的 Python 包改用预置包实现,或拆分逻辑
输出变量取不到值返回的字典键名与输出配置不一致确保脚本 return 的键名与「输出」中配置的参数名完全一致
运行超时脚本耗时过长或存在死循环精简逻辑,避免大循环和阻塞操作

代码编排以 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),并以字典形式返回结果。