本文档主要描述在 coze 里面把开放平台的接口创建为插件,供别人调用。本系列调用的接口,都是调用快商通 AI 开放平台的接口
注意:如果是团队需要的,建议直接在团队空间里面创建这些,不然在个人空间创建得很爽,后面得一个个重新在团队空间创建,这两个空间不能复制或移动。
我们都知道大部分的开放平台调接口的流程,都是先调鉴权接口,再调要调用的接口。跟现在的大模型的一些接口直接使用 API-KEY 的这种形式可能有些不一样,不过没关系,其实都是调用接口。
下面我们就以,语音伪造检测接口为例,因为最近 AIGC 很火爆很多人会去使用合成语音或者克隆语音,来做一些非法的事情,那我们来试看看怎么创建这个语音伪造检测到我们的 coze 里面。
1. 创建插件
首先进到个人空间 -> 插件 -> 点击右上角【创建插件】,就会看到如下弹窗。
插件名称跟插件描述,就看自己定义了。
插件工具创建方式,选择基于已有服务创建。因为我们讲的是开放平台,所以 URL 就用开放平台的接口 host 就行。
注意,这个 URL 不是接口完整的请求路径,这个 URL 是会当做请求时候的路径前缀,所以尽量确定好再填写,避免后面要改,不要写太死。
快商通 AI 开放平台的接口参数可以到文档中心查看。
我们可以先看下我们要加入的几个插件接口:
- 鉴权接口:https://aihc.shengwenyun.com/aihc/auth
- 语音转文本: https://aihc.shengwenyun.com/aihc/v1/asr/audio-text/async
- 语音伪造分析:https://aihc.shengwenyun.com/aihc/v1/kvpst/speech-deep-fake
- 声纹验证1:1:https://aihc.shengwenyun.com/aihc/v1/vpr/verify
- 人声分割:https://aihc.shengwenyun.com/aihc/v1/speaker/ksd
可以看到相同的前缀是 https://aihc.shengwenyun.com/aihc,其实 auth 应该也设计成 v1 的,但是不懂为什么这么设计。不过,在之后如果要升级成 v2 的时候,也好再加接口就是了。所以我们要写入的 URL 就是 https://aihc.shengwenyun.com/aihc,另外这个 URL 最后不用跟上 /
。
注意,这里的 URL 必须是 https 的。
按照现在很多大模型调用方式,授权方式这边直接填一个 service,然后传入 API-KEY 就行,但是开放平台目前的设计就只能是调用鉴权接口获取鉴权来赋值,因此不能直接在这边选择授权方式。Header 列表,也不能直接加 Authorization,因为必须赋值,但对于需要动态获取鉴权的开放接口来说,也是不可以的。
2. 创建工具
插件只是一个对外的称呼,插件里面有什么能力,是称为工具
。
创建工具不一定是手动创建,也可以是通过 swagger 或者 openApi 的 json 导入,不过这一步我一直没通过,不知道是不是哪里格式有问题,在 Dify 是可以用的。
创建工具其实就跟写接口文档是一样的,平台分为四步:
2.1. 填写基本信息
- 工具名称只允许用英文,数字和下划线。
- 工具描述就是这个接口是干嘛的。
- 工具路径可以看到我们刚才填写的 URL 当成了前缀,后面的就是具体的路径,比如我们上面语音伪造检测接口的具体路径,就是
/v1/kvpst/speech-deep-fake
。 - 请求方式就是按照 RESTFUL API 的请求方式规范。
点击保存并继续
2.2. 配置输入参数
配置输入参数,就是填传参,请求参数可以到文档中心对应文档内的【请求参数】查看。
这里参数传入方式只有:Body,Header,Query,Path。其实就是 Get 传参和用 json body 传参的方式。
我们前面说的鉴权就只能在接口里面添加,并且在 Header 里面传参,如下图。
因为要在后续的工作流,bot 中使用,所以我们用 file_url 来传语音,其他接口的语音传参方式也是选择这个。如果是我们自己代码开发,可以用其提供的其他传参方式,比如form-data,base64。在这个平台上,用下来最方便的还是用可访问的地址。
以语音伪造检测接口为例,里面除了 file_url 还有提供别的上传方式,那我们只需要用我们需要用到的可以。
注意,如果其他接口需要传图片,文件,语音,视频,这种最好还是设计成可以用可访问地址来传参。
点击保存并继续
2.3. 配置输出参数
配置完输入,就要配置输出,输出参数可以到文档中心对应文档内的【响应结果】查看。
配置输出接口就是按照开放平台的返回值来配置就行,这边可以用自动解析
也就是直接调接口,然后 coze 会自动去赋值输出的参数。
当然,如果不需要的一些返回参数也不填,只保留自己需要的就好。
注意,返回值只允许一维数组,如果是多维数组,只能该接口返回二维数组序列化后的结果,也不能返回流。
2.4. 调试与校验
配置好了,coze 要求必须测试通过才行。有开发过接口的同学,是不是之前给前端或者给其他人,都是接口文档写好,或者什么地方写好,不测试就提供出去了,然后有问题了再排查。coze 不允许,必须要测试通过了才能算创建完成。建议,在测试的时候勾选,保存调试结果为工具使用用例。
测试通过后,就表示这个工具创建好了。
注意,这边的调试成功的定义是,接口能通。即使你返回的 code 不为 0,也能调试通过。
3. 发布
创建好的工具就会如下图。
信息收集声明根据实际情况填写即可。
发布之后,不是别人就能看到你的插件了,还有下一步,上架。
我之前也以为到这一步发布之后,别人就能用了。
4. 上架
上架插件就选择我们刚才创建的插件,输入描述以及对应分类。注意,现在上架插件要求更加严格,必须要有运行示例才允许上架。其实就是要把刚才 2.4 里面的调试再跑一遍。上架提交申请后,会有人审核,一般 5-10 min。上架之后,就可以在插件商店里面找到刚刚上架的插件了。
如果有改动,需要重新发布,提交更新,再经过审核之后,才会生效。
总结
其实跟我们平时在 postman 或者 yapi 上面创建接口用例是一样的,只不过更加严谨和繁琐一点,其实这一点跟 dify 是有点反过来的,区别可见【Coze使用开放平台接口-【7】Dify 比较篇】。如果有某个更新,即使是一个描述的改动,都需要重新发布,提交更新,等待审核,最后才能更新成功。所以这个 coze 是繁琐的,但也是严谨的。也正是在这个环节的严谨和繁琐,在后续的创建工作流环节调用插件的时候,就会显得格外轻松。
如果平时就是对接口严谨,凡事修改之后都有用例做测试的同学,coze 创建插件应该是没有任何影响的。
下一篇我们开始创建工作流,来运用我们创建好的插件,Coze使用开放平台接口-【2】创建工作流-语音伪造检测工作流。