Coze API 开发新尝试,发送接口请求访问bot打造独一无二的AI应用,真的很酷的勒!!!

2,708 阅读5分钟

前言

最近闲来无事,一直在捣鼓AI,一直对coze应用非常感兴趣,工作流的配合,知识库的使用,各色插件的嵌入。将它们整合一下,将能得到一个非常强悍的AI Bot,但是发布的bot只能在相应的平台使用,不能接入到我们的项目中。在好奇心的驱使下,偶然发现coze 平台居然支持API服务了!!!这意味着,我们可以通过接口请求访问我们发布的bot得到bot返回的json数据,这样岂不是可以通过打造不同的bot然后再访问api接口,就可以在网页中打造一个独特的AI应用了吗?一想到这里,内心狂喜,经过测试发现,这一切完全行得通,接下来请大家跟着我的步伐打开coze的api大门!

image.png

如何获取coze的api接口

想要访问coze的api服务,我们需要获得两个关键的标识元素。

一、授权码

二、bot id

如何获取coze api的授权码

首先我们来到coze首页 : www.coze.cn/store/bot?f…

image.png

点击扣子API,点击API令牌,我们便可以得到属于我们的授权码了。

image.png

接下来就是获取bot的id了,我们来到创建bot的页面,后面的这一串数字便是bot的id

image.png

接下来就是给相应的bot授予api权限了,点击发布按钮,来到发布页面,勾选Bot As API,此时我们就可以通过发接口请求的方式来访问bot了。

image.png

如何发送接口请求来访问bot

来到coze的api文档:www.coze.cn/docs/develo…

image.png

在首页我们可以看到coze api 的相关请求限制,与相应的请求格式。

接下来我将用一种简单发送请求的案例来为大家展示coze api 的强大之处。

大家点击历史版本中的发起对话(V2),在这个文档中,大家可以看到一种最为简单的与coze创建对话的方式。

image.png

来到这个页面,我们可以详细的看到coze api 的接口地址,以及响应体与响应体应该如何设置,下面就不多赘述,接下来我将用一段js代码来为大家演示接口请求发送的方式。

image.png

发送接口请求访问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);
    });

下面是对代码的详细解释:

  1. 定义请求URL:
javascript
   const url = 'https://api.coze.cn/open_api/v2/chat';

这是Coze聊天机器人的API端点,用于接收和处理POST请求。

  1. 定义请求头(headers) :
javascript
   const headers = {
       'Authorization': 'Bearer xxxx(这是用户的授权码,获取方式参考上文)',
       'Content-Type': 'application/json',
       'Connection': 'keep-alive',
       'Accept': '*/*'
   };

请求头包含了以下信息:

  • Authorization: Bearer令牌,用于身份验证。
  • Content-Type: 指定请求体的内容类型为JSON。
  • Connection: 表示希望保持连接打开。
  • Accept: 接受任何类型的内容。
  1. 定义请求体(body) :
javascript
   const data = {
       "bot_id": "xxxx(这是bot id,获取方式参考上文)",
       "conversation_id": "456",
       "user": "user_1",
       "query": "预算21万,想要一台有运动风格的适合年轻人的车",
       "stream": false
   };

这是一个JSON对象,包含了发送给聊天机器人的必要信息,如机器人ID、会话ID、用户ID、查询消息以及是否启用流式响应。

  1. 发送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发送请求的过程,并处理了响应或错误。

接下来,见证奇迹的时刻到了,让我们一起来运行这段代码。

image.png

image.png

哇,很棒的勒,bot成功将信息返回回答了我们提出的问题,并且还提供了接下来推荐你向它提问的内容。

有没有被bot这一功能给震惊到!快来一起尝试吧!