在Coze上新建一个插件

简介

本文介绍如何在 Coze 上新建一个自己定义的插件,关于 Coze 智能体的使用,参看前文:

创建插件

第一步:新建插件

点击"资源库",点击右上角的"插件",选择"插件"。

第二步:填写插件信息

在弹出的这个窗口中,填写插件相关的信息,最底下 IDE 环境,可根据自身需要选择,我这选择 Python3。

第三步:创建工具

插件创建完成,创建工具。

相当于创建一个方法,具有某种具体用途,可以完成某种目的。

如下,编写工具详细。

第四步:实现工具

在下面这个界面中,完成工具的参数设置,代码实现和调试。

先点中间的"元数据",定义入参和返回。

返回,编写代码,当然是大模型生成的,我用的千问,代码如下:

python 复制代码
from runtime import Args
from typings.get_result.get_result import Input, Output
import re

def calculate_expression(expr: str) -> float:
    """
    安全计算仅包含 +, -, *, / 的算术表达式。
    要求:
        - 数字:整数部分 ≤ 10000,小数最多两位
        - 无空格,仅含数字、.、+、-、*、/
    """
    if not expr.strip():
        raise ValueError("表达式为空")
    
    # 检查非法字符(只允许数字、运算符、小数点)
    if not re.fullmatch(r'[0-9+\-*/.]+', expr):
        raise ValueError("表达式包含非法字符")
    
    # 提取所有数字(包括负数)
    tokens = re.findall(r'-?\d+(?:\.\d{1,2})?', expr)
    if not tokens:
        raise ValueError("未找到有效数字")
    
    # 验证每个数字格式
    for token in tokens:
        try:
            num = float(token)
            if abs(int(num)) > 10000:
                raise ValueError(f"数字 {num} 整数部分超过 10000")
            if '.' in token:
                decimal_part = token.split('.')[1]
                if len(decimal_part) > 2:
                    raise ValueError(f"数字 {num} 小数位数超过两位")
        except ValueError as e:
            if "could not convert" in str(e):
                raise ValueError(f"无效数字: {token}")
            else:
                raise
    
    # 安全计算
    try:
        result = eval(expr, {"__builtins__": {}}, {})
        return float(result)
    except ZeroDivisionError:
        raise ValueError("除数不能为零")
    except Exception as e:
        raise ValueError(f"表达式语法错误: {e}")


def handler(args: Args[Input]) -> Output:
    """
    平台入口函数:接收 args.input.expr,返回计算结果或错误信息。
    """
    expr = args.input.expr  # 从输入中获取表达式字符串
    
    try:
        result = calculate_expression(expr)
        # 假设 Output 定义为 { "result": number }
        return {"result": result}
    except Exception as e:
        # 如果平台允许 error 字段,可返回;否则可能需要抛异常
        # 这里按常见做法:返回 error 字段(需确认 Metadata 是否包含)
        # 若 Metadata 只有 result,则应抛异常让平台捕获
        # 保守起见,我们抛出异常(平台会捕获并转为错误)
        raise RuntimeError(f"计算失败: {str(e)}")

在右侧进行调试。

如果需要安装一些 python 库,可以在左侧搜索安装。

发布

调试完成,点右上角的"发布"。

继续,点"发布。

制作完成

相关推荐
政安晨2 小时前
政安晨【零基础玩转开源AI项目】- AutoGPT:全球首个自主AI Agent从入门到实战(致敬OpenClaw的小回顾)
人工智能·ai·autogpt·全球首个agent框架·致敬openclaw之作·参考价值·ai开源agent框架
冷雨夜中漫步8 小时前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
郝学胜-神的一滴8 小时前
深入解析Python字典的继承关系:从abc模块看设计之美
网络·数据结构·python·程序人生
百锦再9 小时前
Reactive编程入门:Project Reactor 深度指南
前端·javascript·python·react.js·django·前端框架·reactjs
m0_7369191010 小时前
C++代码风格检查工具
开发语言·c++·算法
喵手10 小时前
Python爬虫实战:旅游数据采集实战 - 携程&去哪儿酒店机票价格监控完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集结果csv导出·旅游数据采集·携程/去哪儿酒店机票价格监控
2501_9449347310 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
helloworldandy10 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
黎雁·泠崖11 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
念风零壹11 小时前
AI 时代的前端技术:从系统编程到 JavaScript/TypeScript
前端·ai