ChatGPT 串接到 Discord - 团队协作好助理
2023年3月19日
ChatGPT 是由 OpenAI 开发的一个强大的语言模型,本篇文章教你如何串接 Discord Bot ,协助团队在工作上更加高效并促进沟通与协作。使 ChatGPT 发挥出最大的功效,进一步提升工作效率和团队协作能力。本篇文章可以在不写任何的代码状况下完成,当然要做客制化的话仅需微调参数即可。
专案介绍
如果在串接过程中遇到问题,可以在ChatGPT-Discord-Bot 的 Issues 中回报,我们会定期在那边回覆问题
先附上本次专案的开源代码:ChatGPT-Discord-Bot,在 Discord 里的每个频道中导入 ChatGPT Bot,只要在输入框输入 /chat 就会有一个 /chat message 的关键字自动带入,直接输入文字即可与 ChatGPT 互动,此外,这边也顺便把 DALL·E 2 模型串接完,因此可以利用/imagine prompt 就能够透过文字生成图片,如下图所示:

安装步骤
取得 Token
OpenAI Token
在 OpenAI 平台中注册/登入帐号 → 首次注册需要填写基本资讯
右上方有一个头像,点入后选择
View API keys
Get OpenAI Token Step1 and Step2 点选中间的
Create new secret key
Get OpenAI Token Step3 
Get OpenAI Token Step4
⚠️ 每只 API 有免费额度,也有其限制,详情请看 OpenAI Pricing
Discord Token
创建机器人:
进入左方
Applications点击右上方
New Application并输入 Bot 的名称 > 确认后进入新页面。
Get Discord Token Step 1 
Get OpenAI Token Step 2 点击左方
Bot点击右方
Add Bot
Get OpenAI Token Step 3 
Get OpenAI Token Step 4 Token 在上方选择
View Token或已申请过则会是Reset Token的按钮。
Get OpenAI Token Step 5 and Step 6 下方
MESSAGE CONTENT INTENT需打开按下
Save Change
Get OpenAI Token Step 7 and Step 8
设定 OAuth 2
- 点击左栏
OAuth2 - 点击左栏
URL Generator - 右栏
SCOPES选择bot、右栏下方BOT PERMISSIONS选择Administrator{' '}
Get OpenAI Token Step 9, Step 10 and Step 11 
Get OpenAI Token Step 12 - 复制最下方网址到浏览器中
- 选择欲加入的服务器

Get OpenAI Token Step 13 and Step 14) - 按下
继续>授权
- 点击左栏
专案设置
Fork Github 专案
注册/登入 GitHub
点选
Star支持开发者点选
Fork复制全部的代码到自己的仓库
Fork Github Repository Step 1 
Fork Github Repository Step 2
部署(免费空间)
进入 replit
点选
Sign Up直接用Github帐号登入并授权 -> 按下Skip跳过初始化设定进入后中间主页的部分点选
Create-> 跳出框,点选右上角Import from Github
Replit Deploy Step 1 若尚未加入 Github 仓库,则点选连结
Connect GitHub to import your private repos.-> 勾选Only select repositories-> 选择ChatGPT-Discord-Bot
Replit Deploy Step 2 
Replit Deploy Step 3 回到第四步,此时
Github URL可以选择ChatGPT-Discord-Bot专案 -> 点击Import from Github。
Replit Deploy Step 4
专案执行
环境变数设定
接续上一步
Import完成后在Replit的专案管理页面左下方Tools点击Secrets。右方按下
Got it后,即可新增环境变数,需新增:- OpenAI API Token:
- key:
OPENAI_API - value:
[由上方步骤一取得] sk-FoXXXX
- key:
- 欲选择的模型:
- key:
OPENAI_MODEL_ENGINE - value:
gpt-3.5-turbo
- key:
- ChatGPT 要让助理扮演的角色词(目前官方无释出更多的使用方法,由玩家自行测试)
- key:
SYSTEM_MESSAGE - value:
You are a helpful assistant.
- key:
- Discord Token:
- key:
DISCORD_TOKEN - value:
[由上方步骤一取得] MTA3NXXX
- key:

Replit Set Environment Variable - OpenAI API Token:
开始执行
点击上方的
Run成功后右边画面会显示
Hello. I am alive!,并将画面中上方的网址复制下来,下一步骤会用到
Replit Run ⚠️ 若一小时内没有任何请求,则程式会中断,因此需要下步骤
CronJob 定时发送请求
注册/登入 cron-job.org
进入后面板右上方选择
CREATE CRONJOB
CronJob Step 1 Title输入ChatGPT-Discord-Bot,网址输入上一步骤的网址下方则每
5 分钟打一次按下
CREATE
CronJob Step 2
指令
| 指令 | 说明 |
|---|---|
| /chat | 在输入框直接输入 /chat 会后缀 message 直接输入文字,即可调用 ChatGPT 模型。 |
| /reset | ChatGPT 会记住前十次的问答纪录,调用此指令则会清除。 |
| /imagine | 在输入框输入 /imagine 会后缀 prompt 直接输入文字,会调用 DALL·E 2 模型,即可生成图像。 |
Q&A
如何看 Log 档?
在 Replit 专案中左侧有一个
logs,在专案当中的 logger 会记录在其中,可以自行添加 logger 在其中。如何调整 DALL·E 2 输出的图片大小?
修改
/src/models/OpenAIModel里的image_size即可。