机器人可自定义model
支持多个机器人,添加到json列表即可,同模型(model)轮训请求
因转api,暂时上下文采用消息拼接(最长2000,discord bot 限制)
打开 discord开发者平台 。
创建bot-01,并记录bot专属的token和id(COZE_BOT_ID),此bot为被coze托管的bot。
创建bot-02,并记录bot专属的token(BOT_TOKEN),此bot为向bot-01发送与接收bot-01返回的消息。
两个bot开通对应权限(Send Messages,Read Message History等)并邀请进服务器,记录服务器ID(GUILD_ID) 。
打开 coze官网 创建自己bot。
创建好后public,配置discord-bot的token,即bot-01的token,点击完成后在discord的服务器中可看到bot-01在线并可以@使用。
配置环境变量或.env文件(环境变量优先生效),并启动本项目。
访问接口地址,接口见下文
LOG_LEVEL:info 日志等级,默认 info
SERVER_PORT:8080 服务端口,,默认8080
BOT_CONFIG:bot.json discord-bot配置文件,默认bot.json
AUTH_TOKEN:123456 请求头校验的值(前后端统一),配置此参数后,每次发起请求时请求头加上Authorization
参数,即header中添加 Authorization:Bearer 123456,默认1234567890:ABCDEFGHIJKLMNOPQRSTUVWXYZ
也可使用与程序同目录下 .env 文件配置上述字段
支持多个机器人,添加到json列表即可,同模型(model)轮训请求
[
{
"model": "gpt-3.5-turbo", // bot模型可自定义,与请求接口保持一致 可自定义
"bot_token": "MTI************", //见如何使用.3
"coze_bot_id": "120**********", //见如何使用.2
"guild_id": "103************", //见如何使用.4
"channel_id": "120*********" //在所在服务器 创建频道 记录id
},
{
"model": "dall-e-3", // bot模型可自定义,与请求接口保持一致 可自定义
"bot_token": "MTI************", //见如何使用.3
"coze_bot_id": "120**********", //见如何使用.2
"guild_id": "103************", //见如何使用.4
"channel_id": "120*********" //在所在服务器 创建频道 记录id
}
]
mkdir -p $PWD/coze-chat-proxy
注:AUTH_TOKEN自行替换;tag替换为release版本号,如:0.0.1
docker run -itd --name=coze-chat-proxy -p 8080:8080 -v $PWD/coze-chat-proxy:/data:/app/data -v $PWD/coze-chat-proxy/log:/app/log -e AUTH_TOKEN=<AUTH_TOKEN> \
registry.cn-hangzhou.aliyuncs.com/aurorax/coze-chat-proxy:<tag>
3.修改$PWD/coze-chat-proxy/data目录下bot.json并重启容器
http://<ip>:<port>/v1/chat/completions
curl --location --request POST 'http://127.0.0.1:8080/v1/chat/completions' \
--header 'Authorization: Bearer ****' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Content-Type: application/json' \
--data-raw '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "西红柿炒钢丝球怎么做?"
}
],
"stream": false,
}'
http://<ip>:<port>/v1/images/generations
curl --location --request POST 'http://127.0.0.1:8080/v1/images/generations' \
--header 'Authorization: Bearer ****' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Content-Type: application/json' \
--data-raw '{
"model": "dall-e-3",
"prompt": "A cute dog",
"n": 1,
"size": "1024x1024"
}'