受限于都懂的政策,国内版扣子GPT4、DallE3等欠奉,效果很难令人满意。海外版coze迭代后支持了GPT-4 Turbo 128k,长文本生成、pdf相关应用等理论上都可以支持,但是在可访问性、使用习惯上还需要DIY,好在海外版发布后第一时间就有相应的开源应用诞生、发布。本文就详细介绍先通过Discord coze proxy代理应用创建dicord中的coze机器人,再通过render部署应用转换API,最后通过本地安装NextChat访问coze机器人,免费使用GPT-4和DallE等系列模型的方法和过程。
划重点:无需VPS、无需中转代理、访问无需魔法,对应视频可见「本人youtube频道」AIGC列表下的「教程」。
1.准备工作
要实现在国内本地访问海外版coze的目标,需要具备三个账号:一个海外版 coze 账号、一个 discord 账号、一个 render 账号,同时,国内除 render 可以直接稳定访问外,discord、海外版 coze 以及容器镜像源(docker或github)的访问都需要至少一个代理。借助 discord 本地使用海外版 coze 分为四个步骤,分别是:
- 创建、配置 discord 应用/机器人并记录参数
- 创建、发布 coze 机器人至 discord
- Render 上安装、部署 discord coze proxy 开源应用提供 API 接口
- 本地安装并使用 NextChat(ChatGPTNextWeb)或其他非官方 AI 应用调用 render 上的 API 接口
本文使用到的平台和开源应用包括:
整个过程中,render平台国内可以直接访问,NextChat客户端可在这里直接下载桌面端(「Windows cn」、「Windows en」 「Debian/Ubuntu」、「MacOS」),但 discord、coze 的访问必须借助梯子。这里特别安利一下一直使用的⚡高速VPN⚡,国内可用、官网可访问且有免费层级计划(每月10GB流量),点击下方?注册、下载。具体使用方法可见博文「国内可用、提供免费计划的VPN」和「PrivadoVPN的协议选择」。
2.创建、配置Discord应用/机器人
2.1 打开开发者模式、创建服务器
Discord 注册环节略过,登录 discord后,在 discord 及 discord 开发平台分别创建服务器和2个机器人,过程很简单,重点是记录服务器、频道和机器人的各项标识和参数备用。discord 中,点击界面左下方的代表用户设置的齿轮图标,调出用户设置对话框,选择『高级设置』,打开『开发者模式』。
接下来创建服务器,左侧导航栏点选加号图标,在弹出的『创建您的服务器』对话框中选择『亲自创建』。
之后可以结合服务器开放程度需要进行选择,这里实例选择了『仅供我和我的朋友使用』。
接下来自定义服务器,定义并输入服务器名称,是需要可上传服务器 logo,然后点击『创建』就完成了服务器创建工作,右键点击左侧新出现的服务器图标,可以查看服务器 ID。
2.2 创建、配置discord机器人并记录参数
前往「discord开发者平台」创建 discord 应用(discord bot)并进行配置和参数记录。
创建并配置第一个discord机器人
文中采用 bot1 指代第一个 discord 机器人。给 bot1 应用起个名字,勾选同意开发者政策复选框,点击『Create/创建』。
创建第一个机器人 bot1 后,在应用概述页面拷贝 bot1 的 ID 备用,即『Application ID』。下方的公钥 Public Key 本用例无需拷贝。
点击左侧导航栏中的『Bot』,点击『Reset Token』生成一个Token并拷贝。这里USERNAME处显示的机器人名称和左上角的机器人名称,因为要创建两个机器人,不要混淆。
弹出对话框中选择『Yes,do it!』生成 token,之后就会出现『Copy』按钮,拷贝 token 备用。
token重置并拷贝后,我们还需要为bot1赋予权限,下拉后打开如下图三项,分别是『PRESENCE INTENT』、『SERVER MEMBERS INTENT』、『MESSAGE CONTENT INTENT』,再点击『Save Charges』保存权限状态更改。
创建并配置第二个discord机器人
回退至discord开发者平台」应用概述页面,创建第二个 discord 机器人,这里使用 bot2 指代。
bot2 机器人创建及 Applicatin ID、Token 获取方法和过程同 bot1。bot 不需要进行额外的权限配置。
2.3 将bot1、bot2机器人邀请发布至刚刚创建的服务器
两个机器人创建后,可开发者平台进行切换选择。这里切换至第一个机器人 bot1,左侧点选『OAuth2』。
点击『URL Gernerator』后,勾选 bot,下方会弹出机器人发布至服务器中可获得的权限。
在下方勾选如图的权限项,分别是 Manage Channels、Read Messages/View Channels、Send Messages、Send Messages in threads、Manage Messages、Read Message History 等6项,每勾选一项,下方发布 URL 的 permission 字段都会发生变化,discord是以整数值对应相应权限的。
点击『Copy』按钮,将 URL 拷贝后,在新窗口或新标签页粘贴跳转,在打开的邀请发布页『添加至服务器』处,注意选择正确的计划发布的目标服务器,然后点击『继续』,授权保持各项勾选状态(就是之前在配置bot1时勾选的 6 项权限),点击『授权』。
后续可能需要进行人机验证,通过人机验证后,即完成了 bot1 的发布。discord 自动跳转至 server 界面,下方会显示机器人“跳进了服务器”的提示。同时,每个服务器默认会有一个文字频道和语音频道。
bot2 的发布同 bot1,区别在于仅需配置 Send Messages、Read Message History 权限,然后『Copy』发布 URL 即可。
bot1、bot2 邀请发布完成后,discord 中会有所提示。
2.4 完成discord机器人配置
最后,拷贝服务器 ID 和默认频道(文字频道 #常规)ID。
至此,discord 中的 bot 创建、发布和参数记录完成。重点包括:
- bot1 作为 coze 托管的机器人,bot2 扮演“网关”角色,外部程序调用 bot2,主动发起聊天
- 需要拷贝 bot1 的 Application ID、Token,bot2的Token、服务器的 ID 和默认频道(文字频道 #常规)ID
- 对bot1的授权和对 bot2 的授权不同,bot2 仅需授权发送、接收消息
3.创建coze机器人并发布至discord
在 coze 中创建并发布机器人的方法和详细过程请见「Coze:白嫖GPT4/GPT4V、DallE3创建、测试、发布专属机器人」,仅需注意两点:
- 区别于视频演示内容,可不添加任何提示词和开场白
- 模型当前可选择 GPT4 Turbo(128k),插件建议选择 GPT4V、DALLE 3、Google Web Search
发布coze机器人至discord需绑定bot1,也即填写bot1的Token。
点击『Save』保存后,勾选 discord,再点击右上角的『Publish』就完成了coze机器人发布并绑定(托管)discord bot1的工作。
回到discord,就可以@bot1进行测试了,这里“@”的应为 coze 机器人的名称,输入@在弹出菜单中选择即可。
4.在Render上部署coze-discord-proxy
可点击「此处」注册render。除了0.1c CPU和 512m 内存,Render 的 Free 计划提供每个月总计 750 小时的实例(包括web servive)运行时间,也就是说只有1个实例的话,是可以长期不间断运行的。出口流量上,Freee计划是每月100GB,如果绑卡还可以额外增加,单纯个人自用的 ChatGPT,100GB/M 是足够的,虽然有休眠限制,但可以非常简单地通过定期发起连接请求解决。因此,推荐在桌面端安装第三方ChatGPT客户端而非在VPS或Serverless方式部署ChatGPT客户端。
有关 render 的注册使用可参考往期博文「在Render上部署LibreChat」,本文不展开。注意以下两方面:
- render 无需 fork repo,可以直接导入镜像,输入镜像名称deanxv/coze-discord-proxy,render 会自动搜索 docker 官方源并拉取导入。
- 在创建web service的最后一步,点击『Add Environment Variable』逐项添加环境变量,分别为:
- BOT_TOKEN(discord bot2的token)
- GUILD_ID(服务器ID)
- COZE_BOT_ID(discord bot1的ID)
- CHANNEL_ID(频道ID)
- PROXY_SECRET(对应于NextChat的OpenAI API Key,可手动编写)
- TZ(时区 Asia/Shanghai)
点击『Create Web Service』之后,部署过程很快,部署完成 render log 中即有 live 提示。xxxx.onrender.com就是web service的域名,也是客户端调用OpenAI API时的BASE_URL。
5.本地客户端(NextChat)使用
这里我们安装、使用NextChat(ChatGPTNextWeb)的Windows客户端即可,多人共享需要在远程部署非官方 ChatGPT 应用。对应操作系统 X64 架构安装包,可在此分别下载「Windows cn」、「Windows en」 「Debian/Ubuntu」、「MacOS」。
安装 NextChat 后,仅需填写接口地址、API Key 两项内容。
- 接口地址为 render为web service分配的域名(https://xxxx.onrender.com),不要添加端口号
- API Key 即为 web service 的环境变量 PROXY_SECRET,NextChat 中 API Key 默认不可为空,这也是在使用 NextChat 时需要在 render web service 环境变量中添加 PROXY_SECRET 可选参数的原因
前面的所有配置完成后,就可以开始每月怒省20刀,免费使用 GPT4 Turbo(128k)之旅了,无需 VPS、无需中转代理、无需魔法,而且无需考虑render的休眠机制,coze-discord-proxy的作者增加定时任务,会保持render上web service的激活状态。如果开源项目 coze-discord-proxy 和 nextchat 不错,别忘了 github 上给作者点颗星星。
需要注意的是,字节 coze 貌似对速率有所限制,所以不建议短时间高频次调用,确有生产任务可以进行适当分解为若干子任务。
文章评论
老大你好,怎么联系你,想跟你做朋友
@小东 页脚tg x mail...
您好!我最近注意到了一个问题,无论是在哪个平台部署这项API服务,需要填入一个新的环境变量:USER_AUTHORIZATION。它的值为主动发送消息的discord用户的授权密钥。如果没有这个变量项目无法执行
@红石 是的,感谢你的提示!确实如此,前两天私信我回复了几位朋友,新版本增加了这个环境变量,具体哪个版本开始不清楚了,本以为大家会去项目repo查看readme文档的,应该是都没看。这个也就不用单独发教程了,环境变量(readme的docker部署或docker composer部署)按对应版本的在render中填写提交就行。刚看了下,最新4.1.7,还在快速迭代。另有两点说明:
1.油管上有不明白为什么走render,标题就是“本地”,并不是所有人都喜欢或者都能够使用discord,能yongdiscord还不如直接在coze中用,至少我本人不太喜欢用discord
2.字节的coze还有其他几款产品目前都没在欧美市场上线,有人报告不在服务区,不用说,想当然用了欧美节点。无论是coze还是openai等,还是coze-discord-proxy这个项目,要自己去看readme或相关文档,我对伸手党、二极管一律置之不理