菜鸟AI - 让提示词生成更简单! 全站导航 全站导航
AI工具安装 新手教程 进阶教程 辅助资源 AI提示词 热点资讯 技术资讯 产业资讯 内容生成 模型技术 AI信息库

已有账号?

首页 > 资讯 > 扣子自定义插件开发实战:JavaScript与Python指南
其他资讯 综合资讯

扣子自定义插件开发实战:JavaScript与Python指南

2026-06-09
阅读 0
热度 0
作者 菜鸟AI编辑部
摘要

摘要

扣子自定义插件开发环境必须为Python3 9,脚本强制包含main()函数作为入口,通过get_input()和s

核心约束如下:插件代码须在 Python 3.9 环境下运行,结构上强制包含 main() 函数,通过 get_input()set_output() 完成数据传递;仅标准库及 requests 可用,文件操作与第三方包均禁止;若涉及 HTTP 请求,必须先启用插件开关,且超时时间不得超过 5 秒。

如果你正在扣子(Coze)平台开发自定义插件——需要调用外部 API、处理用户输入或执行计算逻辑,却卡在代码编写阶段:不确定选 JavaScript 还是 Python、代码如何组织、必须实现的接口以及哪些限制需要规避,下面将整个流程彻底拆解。

运行环境配置与语言选择

进入插件编辑页,点击「添加工具」,在右侧面板的语言下拉菜单中必须选中 Python 3.9。若误选 JavaScript 或留空,默认会启用 JS 环境,此时编写的 Python 语法将直接报错。

Python 3.9 是当前唯一支持的版本。标准库及 requests(需提前开启 HTTP 插件)已预装,numpy、pandas 等第三方包一概不支持,文件读写操作同样不允许。

JavaScript 节点适用于轻量级逻辑——字符串处理、正则提取、条件判断等;而涉及 HTTP 请求、随机数生成、JSON 解析这类需要稳定 IO 控制的场景,应优先选用 Python。

Python 插件核心架构:三大必备要素

所有 Python 代码必须严格包含且只能包含以下三项:

① 声明 main() 函数;

② 通过 get_input('字段名') 获取上游数据,字段名须与前序节点输出字段完全一致;

③ 使用 set_output('字段名', 值) 返回结果,字段名需提前在元数据中声明为输出参数。

若遗漏 main() 函数定义,或未显式调用 main(),脚本将静默失败——平台不报错,但输出为空。此外,print() 语句不可见于日志,调试需依赖 set_output() 临时打点。

方案一:纯本地逻辑处理(无需网络请求)

直接在代码框内编写标准库逻辑,例如手机号清洗:

import re

def main():

input_text = get_input('text')

cleaned = re.sub(r'[^0-9]', '', input_text)

set_output('phone', cleaned)

main()

操作很简单,将上述代码直接粘贴即可。注意 re.sub 正则中 [^0-9] 表示“非数字字符”,相比 \D 更为稳健,可避免 Unicode 数字的干扰。

方案二:发起 HTTP 请求(需预先开启插件)

第一步:回到工作流画布顶部,依次点击「设置」→「插件」,开启「HTTP Request」后保存。

第二步:在代码节点内调用 requests(已预装):

import requests

def main():

url = get_input('api_url')

res = requests.get(url, timeout=5)

set_output('status', res.status_code)

set_output('body', res.text[:200])

main()

timeout 值必须 ≤5 秒,否则平台将强制终止;响应体务必截取前 200 字符,超长会导致输出校验失败。

方案三:JSON 响应解析与字段提取

当 API 返回 JSON 时,无需手动 json.loads(res.text)——平台已自动完成反序列化,直接调用 res.json() 即可:

import requests

def main():

url = get_input('api_url')

res = requests.get(url, timeout=5)

data = res.json()

set_output('title', data[0]['title'] if isinstance(data, list) and data else 'No title')

main()

这一行 isinstance(data, list) and data 的判断至关重要:可防止 API 返回单个对象或空数组时 data[0] 引发 IndexError 导致整个节点崩溃。处理 JSON 返回时添加此类防御性检查,即能稳健运行绝大多数接口。

来源:互联网

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

同类文章推荐

相关文章推荐

更多