简介
本文介绍如何在 Coze 上新建一个自己定义的插件,关于 Coze 智能体的使用,参看前文:
- 在Coze中上架第一个智能体
创建插件
第一步:新建插件
点击“资源库”,点击右上角的“插件”,选择“插件”。
第二步:填写插件信息
在弹出的这个窗口中,填写插件相关的信息,最底下 IDE 环境,可根据自身需要选择,我这选择 Python3。
第三步:创建工具
插件创建完成,创建工具。
相当于创建一个方法,具有某种具体用途,可以完成某种目的。
如下,编写工具详细。
第四步:实现工具
在下面这个界面中,完成工具的参数设置,代码实现和调试。
先点中间的“元数据”,定义入参和返回。
返回,编写代码,当然是大模型生成的,我用的千问,代码如下:
fromruntimeimportArgsfromtypings.get_result.get_resultimportInput,Outputimportredefcalculate_expression(expr:str)->float:""" 安全计算仅包含 +, -, *, / 的算术表达式。 要求: - 数字:整数部分 ≤ 10000,小数最多两位 - 无空格,仅含数字、.、+、-、*、/ """ifnotexpr.strip():raiseValueError("表达式为空")# 检查非法字符(只允许数字、运算符、小数点)ifnotre.fullmatch(r'[0-9+\-*/.]+',expr):raiseValueError("表达式包含非法字符")# 提取所有数字(包括负数)tokens=re.findall(r'-?\d+(?:\.\d{1,2})?',expr)ifnottokens:raiseValueError("未找到有效数字")# 验证每个数字格式fortokenintokens:try:num=float(token)ifabs(int(num))>10000:raiseValueError(f"数字{num}整数部分超过 10000")if'.'intoken:decimal_part=token.split('.')[1]iflen(decimal_part)>2:raiseValueError(f"数字{num}小数位数超过两位")exceptValueErrorase:if"could not convert"instr(e):raiseValueError(f"无效数字:{token}")else:raise# 安全计算try:result=eval(expr,{"__builtins__":{}},{})returnfloat(result)exceptZeroDivisionError:raiseValueError("除数不能为零")exceptExceptionase:raiseValueError(f"表达式语法错误:{e}")defhandler(args:Args[Input])->Output:""" 平台入口函数:接收 args.input.expr,返回计算结果或错误信息。 """expr=args.input.expr# 从输入中获取表达式字符串try:result=calculate_expression(expr)# 假设 Output 定义为 { "result": number }return{"result":result}exceptExceptionase:# 如果平台允许 error 字段,可返回;否则可能需要抛异常# 这里按常见做法:返回 error 字段(需确认 Metadata 是否包含)# 若 Metadata 只有 result,则应抛异常让平台捕获# 保守起见,我们抛出异常(平台会捕获并转为错误)raiseRuntimeError(f"计算失败:{str(e)}")在右侧进行调试。
如果需要安装一些 python 库,可以在左侧搜索安装。
发布
调试完成,点右上角的“发布”。
继续,点“发布。
制作完成