如果Coze提供的官方和第三方插件不够用,可以自定义插件。另外,在项目中使用官方和第三方插件还存在插件下架、使用中出错、费用消耗等不可控因素,也有必要自定义插件。Coze中可以自定义多种类型的插件,可以封装Python代码或Javascript代码进行自定义。
使用Coze时,在个人空间中单击“资源库”菜单项,用鼠标指向右上角的“资源”按钮,在弹出的菜单中单击 “插件”选项,弹出图2-1所示的“创建插件”对话框。用该对话框创建自定义插件。
图2-4 “新建插件”对话框
在“插件名称”文本框中输入插件的名称,在“一句话介绍”文本框中输入插件的简短描述,在“插件描述”文本框中输入与插件有关的描述,单击“图标”下方的按钮,选择插件的图标文件。
图2-5 在“新建插件”对话框中选择编程语言
在“类型”部分选择插件的类型。目前Coze支持云侧插件、端插件和MCP插件等三种类型。选择第一种类型时,下面会显示一个下拉式列表框,在其中选择自定义插件的编程语言,有Node.js和Python3两个选项,如图2-5所示。
Coze插件中至少要有一个工具,具体干活的是工具。在“新建插件”对话框中填写和选择完成后,单击“确定”按钮,创建新插件。在接下来的新窗口中,单击“在IDE中创建工具”按钮,再在接下来的新窗口中单击“添加工具”按钮。此时会打开“创建工具”对话框。在该对话框中输入工具名称和工具介绍,单击“确定”按钮,创建工具。现在创建工具的整个界面如图2-6所示。
图2-6 创建工具的完整界面
通过编程来实现插件中工具的功能。因为Python广泛应用于数据分析,提供了大量可以用于数据分析和可视化的第三方包,所以使用Python进行编程来生成插件工具。Coze自动生成了下面的代码来建立整个程序的框架。注意,handler函数是必须要有的。
from runtime import Args
from typings.Tool1.Tool1 import Input, Output
"""
Each file needs to export a function named `handler`. This function is the entrance to the Tool.
Parameters:
args: parameters of the entry function.
args.input - input parameters, you can get test input value by args.input.xxx.
args.logger - logger instance used to print logs, injected by runtime.
Remember to fill in input/output in Metadata, it helps LLM to recognize and use tool.
Return:
The return data of the function, which should match the declared output parameters.
"""
def handler(args: Args[Input])->Output:
return {"message": "Hello, world!"}
单击“元数据”按钮,切换到图2-7所示的界面定义输入和输出参数。单击“编辑”按钮,然后添加参数,输入参数的名称、描述和类型等。比如添加输入参数file_link,假设是上传的Excel数据的网络存储链接。编程时获取该输入参数的值时,在handler函数中用类似下面的代码进行获取。
url = args.input.file_link
其中,args.input.引用是必须要有的。
图2-7 指定插件工具的元数据
编写Python代码时,往往需要用到一些第三方包,如pandas, OpenPyXL, xlrd, Matplotlib, Seaborn等。使用这些包之前,需要先进行安装。在图2-6所示完整界面的左下角单击“添加依赖”按钮,在弹出的对话框中输入包的名称进行搜索,然后在搜索结果中选择需要安装的包后进行安装。在代码中,使用import语句导入要使用的包。
插件工具的代码编写完成以后,需要进行测试,测试通过后才能发布使用。在图2-6所示的完整界面中,在右上角文本框中输入每个必需参数的值,然后单击“运行”按钮。如果程序运行正常,会在右下角输出正确结果;如果出错,会用红色字体输出出错信息。此时需要调试代码,直到程序能正确运行。
插件工具测试通过后,就可以发布了。单击界面右上角的“发布”按钮进行发布。发布成功的插件可以用于工作流和AI Agent,也可以在Coze商店中上架,让其他人也能使用。