猴哥的第 32 期分享,欢迎追看
前不久,OpenAI 宣布终止对中国提供 API 服务,国内开发者想访问 GPT 实在是太难了。
于是猴哥立马输出了一篇教程,推荐大家用国内的 SiliconCloud,免费用各大国产大模型,见:国产大模型All In One,API免费用,开发者的福音
有小伙伴说:某些场景下,没有 GPT 还真不行~
今天就来分享一个不会被封,还能免费用GPT等各大厂商 LLM 的 API 制作方法。
方法很简单,分为两个部分:
- Coze Bot 发布
- Coze2OpenAI
话不多说,赶紧实操。
- Coze Bot 发布 ==============
1.1 什么是 Coze
Coze 是由抖音母公司-字节跳动推出的 AI 聊天机器人开发平台。Coze 和 扣子 分别对应国际版和国内版。
国内版 扣子 :https://www.coze.cn/ (国内直连)
国际版 Coze :https://www.coze.com/ (需要魔法)
二者最大的区别在于支持的底层大模型不一样:
- 国内版使用的是国内厂商开发的大模型,如 Kimi/Qwen;
- 国际版支持 GPT-4o/GPT-4 等模型。
这就给了我们白嫖 GPT-4/Kimi 的机会~
下面,我们一起看下:如何把 Coze 打造成一个可供调用的 API。
注意:国内版和国际版的使用方法和流程基本是一致的,下面以国内版为例进行介绍。
1.2 制作并发布 Bot
第一步,打开https://www.coze.cn/ ,注册账号后,点击左上角的创建 Bot。
第二步,模型设置 这里,可以选择 Kimi 支持 128k 输入的大模型,其他地方可以不用动,直接点击右上角的发布。(注:如果是国际版的,模型设置 可以选择 GPT4 )
最后,如下图所示,勾选上 “Bot as API” ,然后再点击右上角的 '发布'。
稍等片刻,等待发布成功。
1.3 获取 API
回到 Coze 首页,点击左下角的 “Coze API”。
在 “API 令牌” 页面添加一个新令牌,并保存下来。
这时你就有了一个可以免费调用的 LLM API。
接下来,一起来测试了看看。
1.4 API 测试
API 接口文档:
国内版:https://www.coze.cn/docs/developer\_guides/coze\_api\_overview
国际版:https://www.coze.com/docs/developer\_guides/chat?\_lang=zh
一个 API 请求,需要准备两个内容:
- Personal_Access_Token:也就是你刚刚保存的 API 令牌
- Bot_Id:进入你发布的 Bot 页面,URL 中 bot 参数后的数字就是 Bot ID。例如https://www.coze.cn/space/73428668341/bot/123,Bot ID 就是 123。
编写如下 python 代码进行测试:
  
import requests  
  
# 替换以下变量的值为你的实际值  
personal_access_token = '你的Personal\_Access\_Token'  
bot_id = '你的Bot\_Id'  
conversation_id = '123'  
user = 'CustomizedString123'  
query = '你是谁'  
  
url = 'https://api.coze.cn/open\_api/v2/chat'  
  
headers = {  
    'Authorization': f'Bearer {personal\_access\_token}',  
    'Content-Type': 'application/json',  
    'Accept': '*/*',  
    'Host': 'api.coze.cn',  
    'Connection': 'keep-alive'  
}  
  
data = {  
    "conversation\_id": conversation_id,  
    "bot\_id": bot_id,  
    "user": user,  
    "query": query,  
    "stream": False  
}  
  
response = requests.post(url, headers=headers, json=data)  
  
print(response.text)  
正常返回,测试成功:
1.5 使用限制
国内版:当前扣子 API 免费供开发者使用,每个空间的 API 请求限额如下:
- QPS (每秒发送的请求数):2
- QPM (每分钟发送的请求数):60
- QPD (每天发送的请求数):3000
国际版:每个注册用户每天100次调用
目前来看,国内版还是相对友好一些。
- Coze2OpenAI ==============
细心的小伙伴已经发现了,Coze 提供的 API 不兼容 OpenAI 格式。
如果要适配应用中 OpenAI 的 API 格式,怎么搞?
GitHub 上早已有大佬搞定了!
下面介绍两种部署方式:
2.1 部署到自己的服务器
上一篇,我们已经薅了一台拥有公网 IP 的腾讯云服务器:手把手带你薅一台云服务器。
所以,首先带大家动手把项目部署到这台腾讯云服务器上。
2.1.1 项目准备
第一步,先打开终端,把项目代码 clone 下来:
  
git clone https://github.com/fatwang2/coze2openai  
第二步,复制一份环境变量的配置文件:
  
cp .env.template .env  
第三步,在 .env 文件中修改环境变量:
  
PORT=3002  
BOT_ID="your\_bot\_id"  
BOT_CONFIG={"model\_name\_1": "bot\_id\_1", "model\_name\_2": "bot\_id\_2", "model\_name\_3": "bot\_id\_3"}  
COZE_API_BASE=api.coze.cn  
其中:
- PORT 是服务启动后的端口号,如果端口已被占用,记得换用其他端口号
- BOT_ID 是默认采用的机器人的ID,也就是刚才 API 请求中的 Bot_ID
- BOT_CONFIG 非必填 ,如果你有多个机器人,用于区分不同的机器人,实现切换模型来调用不同的机器人。如果调用不在配置文件的模型,则走默认的 BOT_ID
- COZE_API_BASE 根据国内版和国际版,选择 coze.cn 或者 coze.ccm
2.1.2 安装依赖
因为该项目是一个JavaScript项目,所以需要服务器安装好 Node.js。
基本概念科普:Node.js 是一个 JavaScript 运行时环境;npm 是 Node.js 的包管理工具,方便管理Node.js项目中的依赖项;pnpm 也是包管理器,和 npm 类似。
查看是否安装 Node.js:打开终端,输入:
  
node -v  
如果没有返回版本号,则需要自己安装:
方式一:源码安装(容易失败)
首先,访问 Node.js 官网。下载适用于你Linux发行版的最新源码包。
  
wget https://nodejs.org/dist/v20.15.0/node-v20.15.0.tar.gz  
cd node-v20.15.0  
# 配置环境  
./configure  
# 编译并安装  
sudo make  
sudo make install  
如果编译失败,直接采用下面的方式二:选择阿里云上已经编译好的安装包,无需编译安装。
方式二:
首先,访问镜像网站,然后找到对应版本的 node 包并下载。
  
wget https://registry.npmmirror.com/-/binary/node/latest-v20.x/node-v20.15.0-linux-x64.tar.gz  
# 解压  
tar -xf node-v20.15.0-linux-x64.tar.gz  
cd node-v20.15.0-linux-x64/  
./bin/node -v # 输出node 版本  
可以发现解压文件的 bin 目录下,包含了 node、npm 等命令,因此可以将整个目录放到环境变量中:
  
export PATH=$PATH:/home/lighthouse/node-v20.15.0-linux-x64/bin/  
再执行:node -v 就 OK 了。
当然为了一劳永逸解决问题,最好是放到系统全局配置中,命令如下:
  
echo "export PATH=$PATH:/home/lighthouse/node-v20.15.0-linux-x64/bin/" >> ~/.bashrc  
# 让更改立即生效  
source ~/.bashrc  
node.js 安装好之后,我们再来安装 pnpm:
  
npm install -g pnpm  
上述没问题后,安装本项目的依赖项:
  
cd ../coze2openai/  
pnpm install  
2.1.3 启动服务
最后,一键运行项目:
  
pnpm start  
终端输出下面这个 url, 说明服务启动成功:
当然,也可以采用 nohup 将命令放到后台运行,并将输出重定向到 nohup.out 文件中。
  
nohup pnpm start &  
浏览器中访问腾讯云服务器的控制台,在防火墙中把3002端口打开,然后找到你的公网 IP,替换上面的 localhost,也是可以访问的。
返回如下界面,说明成功搞定!
2.1.4 测试服务
接下来我们编写代码,来测试一下刚启动的 OpenAI API:
  
from openai import OpenAI  
  
model_dict = {  
    'coze': {  
        'api\_key': 'pat\_xxx',  
        'base\_url': 'http://101.33.210.166:3002/v1',  
        'model\_name': 'coze-1'  
    },  
}  
  
class LLM_API:  
    def __init__(self, api_key, base_url, model):  
        self.client =  OpenAI(  
            api_key=api_key,  
            base_url=base_url,  
        )  
        self.model = model  
      
    def __call__(self, messages, temperature=0.7):  
        completion = self.client.chat.completions.create(  
            model=self.model,  
            messages=messages,  
            temperature=temperature,  
        )  
        return completion.choices[-1].message.content  
  
if __name__ == '\_\_main\_\_':  
    model = 'coze'  
    llm = LLM_API(model_dict[model]['api\_key'], model_dict[model]['base\_url'], model_dict[model]['model\_name'])  
    user_question = "你是谁"  
    messages = [{"role": "user", "content": user_question},]  
    print(llm(messages))  
上述代码中:
- 'api_key' 就是你之前保存的 API 令牌,以 pat_ 开头
- 'base_url' 的拼接方式为:'http://your\_ip:port/v1'
2.2 部署到 Zeabur
如果你没有云服务器,或者嫌自己部署太麻烦,可以考虑采用 Zeabur 部署试试。
2.2.1 什么是 Zeabur
Zeabur 是一个国内团队开发的,可以帮助您部署服务的平台,和 Vercel、Railway、Netlify、Render 类似,不过国内使用更加方便,每个月有 5 元的免费额度,用完即停止服务。
2.2.2 项目部署
首先进入项目模板页:https://zeabur.com/templates/BZ515Z
点击 Deploy,选择区域后,确认进入部署页面:
然后,拉到下方'环境变量'部分,根据 2.1.1 部分的环境变量配置,逐一添加进来,然后点击 “重新部署”:
最后,在下方‘网络’部分,创建一个自定义域名:
这样,你就可以通过这个域名访问你的OpenAI API 服务了。
举个例子,我自定义的域名是:https://coze2openaitest.zeabur.app/
看到上述页面,说明已经部署成功,接下来我们测试一下 API。
2.2.3 服务测试
依然采用 2.1.4 部分的代码,唯一的区别就是把代码中的 'base_url' 改成上面的域名。(注意要用 https 而非 http)
  
'base\_url': 'https://coze2openaitest.zeabur.app/v1',  
至此,我们一起走完了 “部署一个 OpenAI API 服务” 的完整流程。底层采用 Coze 提供的各类大模型(包括GPT/Kimi等),后端采用 coze2openai 开源项目提供的封装。
最后提供两种部署方式,方便大家按需取用!
祝大家借助这些免费的 API 玩转大模型,开发出更多 AI 创意应用。
如果本文对你有帮助,欢迎点赞收藏 备用!
