前言
最近闲来无事,一直在捣鼓AI,一直对coze应用非常感兴趣,工作流的配合,知识库的使用,各色插件的嵌入。将它们整合一下,将能得到一个非常强悍的AI Bot,但是发布的bot只能在相应的平台使用,不能接入到我们的项目中。在好奇心的驱使下,偶然发现coze 平台居然支持API服务了!!!这意味着,我们可以通过接口请求访问我们发布的bot得到bot返回的json数据,这样岂不是可以通过打造不同的bot然后再访问api接口,就可以在网页中打造一个独特的AI应用了吗?一想到这里,内心狂喜,经过测试发现,这一切完全行得通,接下来请大家跟着我的步伐打开coze的api大门!
如何获取coze的api接口
想要访问coze的api服务,我们需要获得两个关键的标识元素。
一、授权码
二、bot id
如何获取coze api的授权码
首先我们来到coze首页 : www.coze.cn/store/bot?f…
点击扣子API,点击API令牌,我们便可以得到属于我们的授权码了。
接下来就是获取bot的id了,我们来到创建bot的页面,后面的这一串数字便是bot的id
接下来就是给相应的bot授予api权限了,点击发布按钮,来到发布页面,勾选Bot As API,此时我们就可以通过发接口请求的方式来访问bot了。
如何发送接口请求来访问bot
来到coze的api文档:www.coze.cn/docs/develo…
在首页我们可以看到coze api 的相关请求限制,与相应的请求格式。
接下来我将用一种简单发送请求的案例来为大家展示coze api 的强大之处。
大家点击历史版本中的发起对话(V2),在这个文档中,大家可以看到一种最为简单的与coze创建对话的方式。
来到这个页面,我们可以详细的看到coze api 的接口地址,以及响应体与响应体应该如何设置,下面就不多赘述,接下来我将用一段js代码来为大家演示接口请求发送的方式。
发送接口请求访问bot示例
下面这段代码中演示如何通过js向coze api 发送接口请求:
// 向coze对应的bot发送接口请求
const url = 'https://api.coze.cn/open_api/v2/chat';
const headers = {
'Authorization': 'Bearer xxxx(这是用户的授权码,获取方式参考上文)',
'Content-Type': 'application/json',
'Connection': 'keep-alive',
'Accept': '*/*'
};
const data = {
"bot_id": "xxxx(这是bot id,获取方式参考上文)",
"conversation_id": "456",
"user": "user_1",
"query": "预算21万,想要一台有运动风格的适合年轻人的车",
"stream": false
};
// 发送 POST 请求
fetch(url, {
method: 'POST', // 或者 'GET'
headers: headers,
body: JSON.stringify(data), // 转换数据为 JSON 格式
cache: 'no-cache', //
credentials: 'same-origin', //
redirect: 'follow', //
referrerPolicy: 'no-referrer', //
})
.then(response => response.json()) // 解析响应为 JSON 格式
.then(data => {
console.log('Success:', data);
})
.catch((error) => {
console.error('Error:', error);
});
下面是对代码的详细解释:
- 定义请求URL:
javascript
const url = 'https://api.coze.cn/open_api/v2/chat';
这是Coze聊天机器人的API端点,用于接收和处理POST请求。
- 定义请求头(headers) :
javascript
const headers = {
'Authorization': 'Bearer xxxx(这是用户的授权码,获取方式参考上文)',
'Content-Type': 'application/json',
'Connection': 'keep-alive',
'Accept': '*/*'
};
请求头包含了以下信息:
Authorization: Bearer令牌,用于身份验证。Content-Type: 指定请求体的内容类型为JSON。Connection: 表示希望保持连接打开。Accept: 接受任何类型的内容。
- 定义请求体(body) :
javascript
const data = {
"bot_id": "xxxx(这是bot id,获取方式参考上文)",
"conversation_id": "456",
"user": "user_1",
"query": "预算21万,想要一台有运动风格的适合年轻人的车",
"stream": false
};
这是一个JSON对象,包含了发送给聊天机器人的必要信息,如机器人ID、会话ID、用户ID、查询消息以及是否启用流式响应。
- 发送POST请求:
javascript
fetch(url, {
method: 'POST',
headers: headers,
body: JSON.stringify(data),
cache: 'no-cache',
credentials: 'same-origin',
redirect: 'follow',
referrerPolicy: 'no-referrer',
})
.then(response => response.json())
.then(data => {
console.log('Success:', data);
})
.catch((error) => {
console.error('Error:', error);
});
这里使用fetch函数发送POST请求,参数包括:
method: 请求方法,这里是POST。headers: 之前定义的请求头。body: 将data对象序列化为JSON字符串。cache: 设置为no-cache,意味着不使用缓存。credentials: 设置为same-origin,表示仅在同源策略允许的情况下发送cookie或认证信息。redirect: 设置为follow,表示自动跟随重定向。referrerPolicy: 设置为no-referrer,表示不发送referrer头。
链式调用的.then()和.catch()处理请求的结果:
- 第一个
.then()将响应体转换为JSON格式。 - 第二个
.then()处理解析后的JSON数据,并将其输出到控制台。 .catch()捕获并处理任何可能发生的错误。
通过以上步骤,代码完成了向Coze聊天机器人API发送请求的过程,并处理了响应或错误。
接下来,见证奇迹的时刻到了,让我们一起来运行这段代码。
哇,很棒的勒,bot成功将信息返回回答了我们提出的问题,并且还提供了接下来推荐你向它提问的内容。
有没有被bot这一功能给震惊到!快来一起尝试吧!