coze-discord-proxy

coze-discord-proxy

基于Discord的Coze-Bot代理实现GPT4模型API服务

coze-discord-proxy项目提供了一种通过API访问GPT4模型的解决方案。该项目代理Discord对话Coze-Bot,实现对话、文生图、图生文和知识库检索等功能。它适配NextChat、one-api等对话面板,支持对话隔离和流式返回,并提供与OpenAI API对齐的接口。项目还支持多用户负载均衡和多机器人配置,为开发者提供灵活的AI对话服务集成选择。

DiscordCoze-BotAPIGPT4代理Github开源项目
<p align="right"> <strong>中文</strong> | <a href="./README.en.md">English</a> </p> <div align="center">

coze-discord-proxy

代理Discord对话Coze-Bot,实现以API形式请求GPT4模型,提供对话、文生图、图生文、知识库检索等功能

如果觉得有意思,别忘了点个🌟

📄<a href="https://cdp-docs.pages.dev" style="font-size: 15px;">CDP项目文档站</a>(必看教程)

🐞<a href="https://t.me/+LGKwlC_xa-E5ZDk9" style="font-size: 15px;">CDP项目-交流群</a>(交流)

📢<a href="https://t.me/+0fYkYY_zUZYzNzRl" style="font-size: 15px;">CDP项目-通知频道</a>(通知)

</div>

功能

  • 完美适配NextChat、one-api、LobeChat等对话面板。
  • 完美支持对话隔离。
  • 对话接口支持流式返回。
  • 支持创建discord分类/频道/线程。
  • 支持和openai对齐的对话接口(v1/chat/completions)(也支持dall-e-3文生图)(支持指定discord-channel)。
  • 支持和openai对齐的图生文/图改图/文件生文接口(v1/chat/completions)(按照GPT4V接口的请求格式 [ 支持url或base64 ])(支持指定discord-channel)。
  • 支持和openai对齐的dall-e-3文生图接口(v1/images/generations)。
  • 支持每日9点定时任务自动活跃机器人。
  • 支持配置多discord用户Authorization(环境变量USER_AUTHORIZATION)作请求负载均衡(目前每个discord用户调用coze-bot在24h内有次数限制,可配置多用户来实现叠加请求次数及请求负载均衡)。
  • 支持配置多coze机器人作响应负载均衡(通过PROXY_SECRET/model指定)详细请看进阶配置

接口文档:

http://<ip>:<port>/swagger/index.html

<span><img src="https://yellow-cdn.veclightyear.com/835a84d5/0e76c445-dec0-4c70-a308-031c0b52f0cd.png" width="800"/></span>

示例:

<span><img src="https://yellow-cdn.veclightyear.com/835a84d5/b709c769-cfb5-4f86-8505-a88d69ceaec8.png" width="800"/></span>

如何使用

  1. 打开discord官网,登录后点击设置-高级设置-开发者模式-打开。
  2. 创建discord服务器,右键点击此服务器选择"复制服务器ID(GUILD_ID)"并记录,在此服务器中创建默认频道,右键点击此频道选择"复制频道ID(CHANNEL_ID)"并记录。
  3. 打开discord开发者平台登录。
  4. 创建新应用-Bot即COZE-BOT,并记录该bot专属的token和id(COZE_BOT_ID),此bot为即将被coze托管的bot。
  5. 创建新应用-Bot即CDP-BOT,并记录该bot专属的token(BOT_TOKEN),此bot为监听discord消息的bot。
  6. 两个bot开通对应权限(Administrator)并邀请进创建好的discord服务器(过程不在此赘述)。
  7. 打开discord官网进入服务器,按F12打开开发者工具,在任一频道内发送一次消息,在开发者工具-Network中找到请求 https://discord.com/api/v9/channels/1206*******703/messages 从该接口header中获取Authorization(USER_AUTHORIZATION)并记录。
  8. 打开coze官网创建bot并进行个性化配置(注意Auto-Suggestion为Default/on(默认不用改))。
  9. 配置好后选择发布到discord,填写COZE-BOT的token,发布完成后在discord服务器中可看到COZE-BOT在线并可以@使用。
  10. 使用上述记录的参数开始配置环境变量部署本项目。
  11. 访问接口文档地址,即可开始调试或集成其他项目。

如何集成NextChat

填写接口地址(ip:端口/域名)及API-Key(PROXY_SECRET),其它的随便填随便选。

如果自己没有搭建NextChat面板,这里有个已经搭建好的可以使用 NextChat

<span><img src="https://yellow-cdn.veclightyear.com/835a84d5/99e9425c-9147-4276-a214-2cbc63d434f4.png" width="800"/></span>

如何集成one-api

填写BaseURL(ip:端口/域名)及密钥(PROXY_SECRET),其它的随便填随便选。

<span><img src="https://yellow-cdn.veclightyear.com/835a84d5/c32a7861-5711-4111-adb9-d76a0638a395.png" width="800"/></span>

部署

基于Docker-Compose(All In One)进行部署

docker-compose pull && docker-compose up -d

docker-compose.yml

version: '3.4' 服务: coze-discord-代理: 镜像:deanxv/coze-discord-proxy:latest 容器名称:coze-discord-proxy 重启:始终 端口: - "7077:7077" 卷: - ./data:/app/coze-discord-proxy/data 环境变量: - USER_AUTHORIZATION=MTA5OTg5N************aXUBHVI # 必须修改为我们discord用户的授权密钥(多个请以逗号分隔) - BOT_TOKEN=MTE5OT************UrUWNbG63w # 必须修改为监听消息的Bot-Token - GUILD_ID=11************96 # 必须修改为两个机器人所在的服务器ID - COZE_BOT_ID=11************97 # 必须修改为由coze托管的机器人ID - CHANNEL_ID=11************94 # [可选]默认频道-(目前版本下该参数仅用来活跃机器人) - PROXY_SECRET=123456 # [可选]接口密钥-修改此行为请求头校验的值(多个请以逗号分隔) - TZ=Asia/Shanghai ### 基于 Docker 进行部署 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 其中USER_AUTHORIZATION、BOT_TOKEN、GUILD_ID、COZE_BOT_ID、PROXY_SECRET、CHANNEL_ID需修改为自己的。 如果上述镜像无法拉取,可尝试使用GitHub的Docker镜像,将上面的deanxv/coze-discord-proxy替换为ghcr.io/deanxv/coze-discord-proxy即可。 ### 部署到第三方平台 部署到Zeabur Zeabur的服务器在国外,自动解决了网络问题,同时免费额度也足够个人使用 点击一键部署: 一键部署后USER_AUTHORIZATION、BOT_TOKEN、GUILD_ID、COZE_BOT_ID、PROXY_SECRET、CHANNEL_ID变量也需要替换! 或手动部署: 1. 首先fork一份代码。 2. 进入Zeabur,使用github登录,进入控制台。 3. 在Service -> Add Service,选择Git(第一次使用需要先授权),选择你fork的仓库。 4. Deploy会自动开始,先取消。 5. 添加环境变量 USER_AUTHORIZATION:MTA5OTg5N************uIfytxUgJfmaXUBHVI 主动发送消息的discord用户的授权密钥(多个请以逗号分隔) BOT_TOKEN:MTE5OTk************WNbG63w 监听消息的Bot-Token GUILD_ID:11************96 两个机器人所在的服务器ID COZE_BOT_ID:11************97 由coze托管的机器人ID CHANNEL_ID:11************24 # [可选]默认频道-(目前版本下该参数仅用来活跃机器人) PROXY_SECRET:123456 [可选]接口密钥-修改此行为请求头校验的值(多个请以逗号分隔)(与openai-API-KEY用法一致) 保存。 6. 选择Redeploy。 部署到Render Render提供免费额度,绑卡后可以进一步提升额度 Render可以直接部署docker镜像,不需要fork仓库:Render ## 配置 ### 环境变量 1. `USER_AUTHORIZATION=MTA5OTg5N************uIfytxUgJfmaXUBHVI` 主动发送消息的Discord用户的授权密钥(多个请用逗号分隔) 2. `BOT_TOKEN=MTE5OTk2************rUWNbG63w` 监听消息的Bot令牌 3. `GUILD_ID=11************96` 所有Bot所在的服务器ID 4. `COZE_BOT_ID=11************97` 由Coze托管的Bot ID 5. `PORT=7077` [可选]端口,默认为7077 6. `SWAGGER_ENABLE=1` [可选]是否启用Swagger接口文档[0:否;1:是](默认为1) 7. `ONLY_OPENAI_API=0` [可选]是否只暴露与OpenAI对齐的接口[0:否;1:是](默认为0) 8. `CHANNEL_ID=11************24` [可选]默认频道-(当前版本下该参数仅用于保持Bot活跃) 9. `PROXY_SECRET=123456` [可选]接口密钥-修改此行为请求头校验的值(多个请用逗号分隔)(与OpenAI API密钥用法一致),**推荐使用此环境变量** 10. `DEFAULT_CHANNEL_ENABLE=0` [可选]是否启用默认频道[0:否;1:是](默认为0)启用后每次对话都会在默认频道中,**会话隔离将失效**,**建议不使用此环境变量** 11. `ALL_DIALOG_RECORD_ENABLE=1` [可选]是否启用全量上下文[0:否;1:是](默认为1)关闭后每次对话只会发送`messages`中最后一个`role`为`user`的`content`,**建议不使用此环境变量** 12. `CHANNEL_AUTO_DEL_TIME=5` [可选]频道自动删除时间(秒)此参数为每次对话完成后自动删除频道的时间(默认为5秒),为0时则不删除,**建议不使用此环境变量** 13. `COZE_BOT_STAY_ACTIVE_ENABLE=1` [可选]是否开启每日`9`点活跃Coze-bot的定时任务[0:否;1:是](默认为1),**建议不使用此环境变量** 14. `REQUEST_OUT_TIME=60` [可选]对话接口非流响应下的请求超时时间,**建议不使用此环境变量** 15. `STREAM_REQUEST_OUT_TIME=60` [可选]对话接口流响应下的每次流返回超时时间,**建议不使用此环境变量** 16. `REQUEST_RATE_LIMIT=60` [可选]每分钟下的单IP请求速率限制,默认:60次/分钟 17. `USER_AGENT=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36` [可选]Discord用户端Agent,使用自己的可能有效防止被封禁,不设置时默认使用作者的 推荐使用此环境变量 18. `NOTIFY_TELEGRAM_BOT_TOKEN=6232***********Niz9c` [可选]作为通知TelegramBot的Token(通知事件:1.无可用`user_authorization`;2.`BOT_TOKEN`关联的BOT触发风控) 19. `NOTIFY_TELEGRAM_USER_ID=10******35` [可选]`NOTIFY_TELEGRAM_BOT_TOKEN`关联的`Telegram-Bot`推送至该变量关联的`Telegram-User`(**`NOTIFY_TELEGRAM_BOT_TOKEN`不为空时该变量也不可为空**) 20. `PROXY_URL=http://127.0.0.1:10801` [可选]代理(仅支持http) ## 进阶配置 ### 配置多机器人 1. 部署前在`docker`/`docker-compose`部署同级目录下创建`data/config/bot_config.json`文件 2. 编写该`json`文件,`bot_config.json`格式如下 ```shell [ { "proxySecret": "123", // 接口请求密钥(PROXY_SECRET)(注意:此密钥在环境变量PROXY_SECRET中存在时该Bot才可以被匹配到!) "cozeBotId": "12***************31", // Coze托管的机器人ID "model": ["gpt-3.5","gpt-3.5-16k"], // 模型名称(数组格式)(与请求参数中的model对应,如请求中的model在该json中未匹配到则会抛出异常) "channelId": "12***************56" // [可选]Discord频道ID(机器人必须在此频道所在的服务器)(当前版本下该参数仅用于保持机器人活跃) }, { "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" } ]
  1. 重启服务

当有此json配置时,会通过请求头携带的[请求密钥]和请求体中的[model]联合匹配此配置中的cozeBotId 若匹配到多个则随机选择一个。配置很灵活,可以根据自己的需求进行配置。

第三方平台(如:zeabur)部署的服务需要[配置多机器人]请参考issue#30

限制

目前Coze对每个Discord用户做了标识,在Discord中每个用户对不同模型的调用有次数限制,具体如下:

GPT-4 Turbo (128k) - 50次/天
GPT-4 (8k) - 100次/天
GPT-3.5 (16k) - 500次/天

可配置多个Discord用户Authorization(参考环境变量USER_AUTHORIZATION)实现叠加请求次数及请求负载均衡。

常见问题

问:并发量高时应如何配置? A: 首先为服务配置多个机器人,用于负载均衡bot的响应。其次,准备多个Discord账号用于请求负载,并将它们邀请到同一个服务器。获取每个账号的Authorization,用英文逗号分隔,并配置在环境变量USER_AUTHORIZATION中。这样,每次请求都会从多个Discord账号中选择一个发起对话,有效实现负载均衡。

⭐ 星标历史

星标历史图表

相关项目

GPT-Content-Audit:整合了Openai、阿里云、百度智能云、七牛云等开放平台,提供与openai请求格式一致的内容审核前置服务。

其他

开源不易,如果你参考了此项目或基于此项目进行二次开发,能否在你的项目文档中标注此项目?非常感谢!

Java版本: https://github.com/oddfar/coze-discord (目前不可用)

引用

Coze 官网:https://www.coze.com

Discord 开发者页面:https://discord.com/developers/applications

编辑推荐精选

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

下拉加载更多