一、coze插件
插件算是 Coze Bot 中很常用工具,看着虽然不起眼,但是在 Bot 中也起着举足轻重的位置,Coze 插件简单来说就是一组根据需求获取外部数据的工具。
目前 Coze 的插件商店中提供官方和非官方两种,其实大多数应用场景中我们运用商店中的插件就已经能够满足,但对于个性化数据的获取却有一些麻烦,这就需要我们自己来自定义插件了。
自定义插件有两个类型:
1、基于已有服务的插件,意思是在已经发布了的插件中进行调试,常用于核心插件提供的数据内容不变,但输出的字段和格式有调整。
2、在Coze IDE中创建,这个选项意思是新创建一个插件,在Coze提供的IDE中进行编辑。
二、创建插件
第一种 - 基于已有服务的插件
1、这里我们以OCR功能为例,本地开发OCR功能:
这里具体代码以及模型选用,请转至我的另一篇文章
好啦~ 这里我们已有发布云服务器后的接口地址
2、接下来 让我们一起配置coze
(1)令牌的创建
- 扣子
- 授权方式-我这里是不需要授权
(2)因为插件是不能工作的,所以我们要【创建工具】
点击【确认】后,我们就进入到下面这个页面,点击【创建工具】
(3)注意:
【工具名称】-- 英文名称,且后面会直接加入到请求URL中
【工具描述】-- 如果有到模型,是给模型的prompt,要写详细
(4)接下来就可以【编辑工具】
填写我们接口需要的入参、以及传参的形式(相当于接口文档)
(5)编辑好后,我们就可以试运行了,只运行通过后才可以点击发布哦~
ENDING ~ ~
第二种 - 在Coze IDE中创建
(1)和上面一样,创建完插件以后还需要创建工具
(2)编写插件代码
完成工具构建后,我们就可以进行插件代码编写了:
代码详情:
import os
from openai import OpenAI
from typing import TypedDict
import json # 添加导入json模块
class Input(TypedDict):
api_key: str
image_url: str
class Output(TypedDict):
text: str
error_message: str
def handler(args) -> Output:
try:
# 从输入参数中获取 API 密钥和图像 URL
api_key = args.input.api_key
image_url = args.input.image_url
# 创建 OpenAI 客户端实例
client = OpenAI(
api_key=api_key, # 使用传入的 API 密钥
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1", # 指定 Base URL
)
# 调用 qwen-vl-plus 模型进行图像识别
completion = client.chat.completions.create(
model="qwen-vl-plus", # 模型名称
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "这是什么"}, # 提问,问图像内容
{"type": "image_url", "image_url": {"url": image_url}} # 传入图像 URL
]
}]
)
# 打印返回的内容,检查其结构
result = completion.model_dump_json()
print("Model response:", result)
# 将返回的字符串转换为字典
result_dict = json.loads(result)
# 获取 content 内容
text = result_dict.get("choices", [{}])[0].get("message", {}).get("content", "无法获取识别结果")
return {"content": text}
except Exception as e:
return {"error_message": str(e)} # 如果发生错误,返回错误信息
上述代码调用了阿里云百炼平台的 qwen-vl-plus
模型,识别传入图片的内容,并返回识别到的文字说明。
总的来说做了以下几件事:
- 从输入参数中提取 API 密钥和图像 URL;
- 使用这些参数创建 OpenAI 客户端,指定使用阿里云的兼容 API 地址;
- 调用
qwen-vl-plus
图像识别模型,请求包含一段文本“这是什么”和用户提供的图像; - 将模型返回的 JSON 字符串解析成 Python 字典;
- 从返回结果中提取模型的回答内容(即
message.content
)作为识别文本; - 如果一切正常,返回识别出的内容;如发生错误,则返回错误信息。
(3)编写完代码需要设置一下元数据信息(输入的参数信息):
置完元数据,在测试代码中输入测试数据就能进行插件测试了:
(4)插件发布
当我们测试了插件没问题后就能对插件进行发布了,点击右上角发布按钮就能对插件进行发布操作,发布后的插件可以在本空间内使用:
如果要让别人可以使用你的插件,可以在插件商店上架你的插件,操作很简单,就不演示了
如果本文对你有帮助,请动动小手点点关注哦~