字
字节笔记本
2026年2月22日
coze-discord-proxy:将 Discord Coze-Bot 代理为 OpenAI API 的开源工具
本文介绍 coze-discord-proxy,一个将 Discord 对话 Coze-Bot 代理为 OpenAI API 格式的开源项目。该项目允许开发者通过标准 API 接口调用 GPT-4 模型,提供对话、文生图、图生文、知识库检索等完整功能,完美兼容 NextChat、One-API、LobeChat 等主流对话面板。
项目简介
coze-discord-proxy 是由 deanxv 开发维护的开源项目,截至目前已在 GitHub 获得 3.8k+ stars,主要使用 Go 语言(99.2%)编写。该项目通过代理 Discord 与 Coze-Bot 的对话,实现了与 OpenAI API 格式对齐的接口,让开发者可以免费或低成本地使用 GPT-4 等强大的 AI 模型。
核心特性
- 完美适配主流对话面板:支持 NextChat、One-API、LobeChat 等流行对话界面
- 对话隔离:支持多用户对话隔离,确保隐私安全
- 流式响应:对话接口支持流式返回,体验与官方 API 一致
- Discord 频道管理:支持创建 Discord 分类/频道/线程
- OpenAI 兼容接口:支持
/v1/chat/completions对话接口,兼容 DALL-E-3 文生图 - 多模态支持:支持图生文、图改图、文件生文(GPT-4V 格式)
- 文生图接口:支持
/v1/images/generationsDALL-E-3 接口 - 定时活跃:支持每日 9 点定时任务自动活跃机器人
- 负载均衡:支持配置多 Discord 用户和多 Coze 机器人实现请求负载均衡
技术栈
- Go 语言 - 后端服务核心(99.2%)
- Docker - 容器化部署支持(0.8%)
- Discord API - 消息收发与频道管理
- Coze API - AI 模型调用
- Swagger - API 文档自动生成
前置要求
在开始部署前,你需要准备以下资源:
- Discord 账号 - 用于创建服务器和 Bot
- Coze 账号 - 用于创建和配置 AI Bot
- 服务器/云主机 - 用于部署代理服务(或使用 Zeabur/Render 等第三方平台)
安装指南
步骤 1:创建 Discord 服务器
- 打开 Discord 官网 并登录
- 点击设置 → 高级设置 → 开发者模式 → 打开
- 创建 Discord 服务器
- 右键点击服务器,选择「复制服务器 ID」(即
GUILD_ID) - 在服务器中创建默认频道,右键点击频道选择「复制频道 ID」(即
CHANNEL_ID)
步骤 2:创建 Discord Bot
- 打开 Discord 开发者平台
- 创建新应用,命名为
COZE-BOT:- 记录该 Bot 的
token和id(即COZE_BOT_ID) - 此 Bot 将被 Coze 托管
- 记录该 Bot 的
- 创建新应用,命名为
CDP-BOT:- 记录该 Bot 的
token(即BOT_TOKEN) - 此 Bot 用于监听 Discord 消息
- 记录该 Bot 的
- 为两个 Bot 开通
Administrator权限并邀请进创建好的 Discord 服务器
步骤 3:获取用户授权
- 在 Discord 官网进入服务器
- 按 F12 打开开发者工具
- 在任一频道内发送一次消息
- 在开发者工具 → Network 中找到请求
https://discord.com/api/v9/channels/{channel_id}/messages - 从该接口 header 中获取
Authorization(即USER_AUTHORIZATION)
步骤 4:配置 Coze Bot
- 打开 Coze 官网 创建 Bot
- 进行个性化配置(注意
Auto-Suggestion保持为Default/on) - 配置好后选择「发布到 Discord」
- 填写
COZE-BOT的token - 发布完成后在 Discord 服务器中可看到
COZE-BOT在线并可以 @ 使用
部署方式
方式一:Docker Compose(推荐)
创建 docker-compose.yml 文件:
yaml
version: '3.4'
services:
coze-discord-proxy:
image: deanxv/coze-discord-proxy:latest
container_name: coze-discord-proxy
restart: always
ports:
- "7077:7077"
volumes:
- ./data:/app/coze-discord-proxy/data
environment:
- USER_AUTHORIZATION=MTA5OTg5N************aXUBHVI # 必须修改
- BOT_TOKEN=MTE5OT************UrUWNbG63w # 必须修改
- GUILD_ID=11************96 # 必须修改
- COZE_BOT_ID=11************97 # 必须修改
- CHANNEL_ID=11************94 # [可选]
- PROXY_SECRET=123456 # [可选]接口密钥
- TZ=Asia/Shanghai启动服务:
bash
docker-compose pull && docker-compose up -d方式二:Docker 命令
bash
docker run --name coze-discord-proxy -d --restart always \
-p 7077:7077 \
-v $(pwd)/data:/app/coze-discord-proxy/data \
-e USER_AUTHORIZATION="MTA5OTg5N************uIfytxUgJfmaXUBHVI" \
-e BOT_TOKEN="MTE5OTk2************rUWNbG63w" \
-e GUILD_ID="11************96" \
-e COZE_BOT_ID="11************97" \
-e PROXY_SECRET="123456" \
-e CHANNEL_ID="11************24" \
-e TZ=Asia/Shanghai \
deanxv/coze-discord-proxy方式三:第三方平台
- Zeabur - 一键部署到 Zeabur 平台
- Render - 一键部署到 Render 平台
环境变量配置
| 变量名 | 必填 | 说明 |
|---|---|---|
USER_AUTHORIZATION | 是 | Discord 用户授权密钥(多个用逗号分隔) |
BOT_TOKEN | 是 | 监听消息的 Bot Token |
GUILD_ID | 是 | 所有 Bot 所在的服务器 ID |
COZE_BOT_ID | 是 | 由 Coze 托管的 Bot ID |
CHANNEL_ID | 否 | 默认频道 ID(用于活跃机器人) |
PROXY_SECRET | 否 | 接口密钥(与 OpenAI API-KEY 用法一致) |
PORT | 否 | 端口,默认 7077 |
SWAGGER_ENABLE | 否 | 是否启用 Swagger 文档,默认 1 |
ONLY_OPENAI_API | 否 | 是否只暴露 OpenAI 对齐接口,默认 0 |
REQUEST_RATE_LIMIT | 否 | 每分钟单 IP 请求限制,默认 60 |
使用示例
集成 NextChat
- 打开 NextChat 设置
- 接口地址填写:
http://<ip>:<port>或你的域名 - API-Key 填写:
PROXY_SECRET的值 - 其他选项随意配置
集成 One-API
- 在 One-API 中添加渠道
- BaseURL 填写:
http://<ip>:<port>或你的域名 - 密钥填写:
PROXY_SECRET的值 - 模型选择:gpt-4、gpt-4-16k、dall-e-3 等
API 调用示例
bash
curl -X POST "http://localhost:7077/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_PROXY_SECRET" \
-d '{
"model": "gpt-4",
"messages": [{"role": "user", "content": "你好"}],
"stream": true
}'进阶配置:多机器人负载均衡
创建 data/config/bot_config.json 文件:
json
[
{
"proxySecret": "123",
"cozeBotId": "12***************31",
"model": ["gpt-3.5", "gpt-3.5-16k"],
"channelId": "12***************56"
},
{
"proxySecret": "456",
"cozeBotId": "12***************64",
"model": ["gpt-4", "gpt-4-16k"],
"channelId": "12***************78"
},
{
"proxySecret": "789",
"cozeBotId": "12***************12",
"model": ["dall-e-3"],
"channelId": "12***************24"
}
]配置说明:
- 通过请求头携带的
PROXY_SECRET+ 请求体中的model联合匹配 - 若匹配到多个则随机选择,实现负载均衡
- 灵活配置,可根据需求自定义
接口文档
部署完成后,访问以下地址查看 Swagger 接口文档:
http://<ip>:<port>/swagger/index.html
支持的接口:
POST /v1/chat/completions- 对话接口(支持流式)POST /v1/images/generations- DALL-E-3 文生图GET /v1/models- 获取可用模型列表
限制说明
- Coze 订阅限制:每个 Discord 用户调用 Coze-Bot 在 24 小时内有次数限制
- 解决方案:
- 配置多 Discord 用户(
USER_AUTHORIZATION) - 配置多 Coze 机器人(
bot_config.json) - 实现请求次数叠加和负载均衡
- 配置多 Discord 用户(
详细订阅限制请参考 Coze 官方文档。
高并发配置建议
当并发量较高时,建议按以下方式配置:
- 配置多机器人:创建多个 Coze Bot 实现响应负载
- 准备多个 Discord 账号:邀请进同一个服务器,获取每个账号的
Authorization - 配置负载均衡:将多个
Authorization用英文逗号分隔配置在USER_AUTHORIZATION中 - 效果:每次请求都会从多个 Discord 账号中随机选择一个发起对话
相关项目
- GPT-Content-Audit - 聚合 OpenAI、阿里云、百度智能云等内容审核服务
- Coze-Discord - Java 版本实现(目前不可用)
项目链接
- GitHub 仓库:https://github.com/deanxv/coze-discord-proxy
- 官方文档:https://cdp-docs.pages.dev
- Telegram 交流群:https://t.me/+LGKwlC_xa-E5ZDk9
- Telegram 通知频道:https://t.me/+0fYkYY_zUZYzNzRl
许可证
本项目采用 GPL-3.0 开源许可证。
开源不易,若你参考此项目或基于此项目二开,请在项目文档中标识此项目。谢谢!
分享: