在使用扣子的时候我们需要调用各种插件,在普通的任务中我们可以直接在【工作流】中调用各类【插件】,实际上这些不同的插件有些是coze官方设计的,另一些则是其他的工作团队设计并获得官方认可的。

然而,实际的工作中,我们可能需要为特定的公司开发智能体,用于调用外部的其他应用的API,这些外部的API接口不在插件商店内需要自己添加,下面我们以通过针对OpenWeather网站API的实例来完成将外部API包装为插件并调用的过程【https://openweathermap.org/】
首先需要用户注册并且获取API的密钥,需要注意的是,在用电子邮箱注册后会直接显示API密钥但是该密钥直接调用会返回404,通过提醒可以发现,你需要登录电子邮箱确认使用后才可以真正的激活API key。同时如果你需要多个API可以点击下方的【Generate】获得多个API


接下来需要学习和了解API中类似于flask equests等的不同需求的请求方式部分内容如下

主要的调用方法如下所示
(1)https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid={API key}
【lat/lon】经纬度,通过经纬度获取所在地区的天气
(2)https://api.openweathermap.org/data/2.5/weather?q={city name}&appid={API key}
【q】所在城市名称(必须使用英文),通过城市查询天气
(3)

还有一个参数可以控制返回的语言,【lang】。实际上在扣子的【封装插件】过程中允许一个插件下有不同的方法(与官方插件类似)这可能意味着我们可以同时使用两种方法传参。这里我们将使用两种方法(1)传入城市名称和API获取天气(2)传入经纬度和API获取天气
在进行具体的扣子封装之前我们先看一下直接在浏览器输入相关指令是否会看会JSON格式的正确值,这一步的作用主要是看之前的邮箱确认注册登录和API密钥是否正常运行。

如果看到了具体的天气信息以JSON格式返回说明之前的操作正确API key有效。
进入【资源库】点击右上角得到【新建】选择【新建插件】,根据要求填写自己满意的插件名称,这里我写的是【OpenWeather简单天气】,插件描述为【天气获取】。接下来一步是选择【云侧插件-基于已有服务创建】这个选项表示,该插件不在coze内部但其官方提供了API服务。

当然我们也可以选择按照官方提示的信息要求点击右上角的【导入】直接导入插件。这里我们继续使用较为普遍的方式,填写URL路径【https://api.openweathermap.org/data/2.5/weather】通过基础的flask学习,通常情况下网页中?后面的是我们传入的参数,前面的则是固定的URL路径
![]()
依照这个思路我们需要配置的参数为
在配置输出参数方面,扣子贴心的为我们设置了自动解析功能。你只需要按照之前HTTP中输入的那样传入参数值就可以解析出来输出参数,lat=44.34,lon=10.99,appid={你自己的API密钥}。输入参数后点击自动解析,会提示你是否将这个实践过程作为【运行示例】这样别人如果使用你的插件,或者下次你自己使用的时候会方便许多。接下来点击保存或者确定,你可以在插件界面看到【调试状态】栏如果显示通过,那么恭喜你,你的插件可以被调用到【工作流】中了。

一个插件必须至少包含一个工具,实际上扣子允许一个插件携带多个工具,在我们调用官方插件的过程中点击插件就可以看到不同的工具方法。在上述实例中,我们输入了经纬度和API密钥查询天气,但通过前文描述,我们也可以通过直接输入城市来查询天气,因此我们尝试为【插件】新增工具

在插件中点击右侧的【创建工具】,接下来你会需要输入【工具名称】和描述,请注意你的【工具名称】填写后,扣子会自动的帮你填写入http指令的斜杠后,就是输入到
【https://api.openweathermap.org/data/2.5/weather】之后,如果你的需求是工具名称和后缀不同!你需要修改下面的【工具路径URL】。接下来我们配置参数
然后与添加第一个插件工具时一样采用【自动解析】的方式让扣子帮你配置【输出参数】你需要的只是选择输出的内容。如果【调试状态】栏显示通过,表明目前你成功的为【插件】一共添加了两个【工具】。
插件只有在【工作流】中被成功的调用才能真正的表明其实用性。返回资源库点击右上角【+资源】新建工作流。调用“通过城市名称查询天气”的工具,构建简单的工作流进行试运行,输入城市名【New York】请确保你输入的城市名正确可靠大小写规范并输入你的appid
扣子 Coze 教程
如果看到工作流成功返回了需要的天气输出变量,这整个实践过程成功了

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/260605.html原文链接:https://javaforall.net
