ChatGPT 串接到 Discord - 团队协作好助理

2023年3月19日

ChatGPT 教學專書
不僅教你 ChatGPT 指令,更帶你實作出創新應用!前往了解

ChatGPT 是由 OpenAI 开发的一个强大的语言模型,本篇文章教你如何串接 Discord Bot ,协助团队在工作上更加高效并促进沟通与协作。使 ChatGPT 发挥出最大的功效,进一步提升工作效率和团队协作能力。本篇文章可以在不写任何的代码状况下完成,当然要做客制化的话仅需微调参数即可。

专案介绍

如果在串接过程中遇到问题,可以在ChatGPT-Discord-Bot 的 Issues 中回报,我们会定期在那边回覆问题

先附上本次专案的开源代码:ChatGPT-Discord-Bot,在 Discord 里的每个频道中导入 ChatGPT Bot,只要在输入框输入  /chat  就会有一个  /chat message  的关键字自动带入,直接输入文字即可与 ChatGPT 互动,此外,这边也顺便把 DALL·E 2 模型串接完,因此可以利用/imagine prompt 就能够透过文字生成图片,如下图所示:

ChatGPT DALL·E2 Demo
ChatGPT DALL·E2 Demo

安装步骤

取得 Token

  1. OpenAI Token

    1. OpenAI 平台中注册/登入帐号 → 首次注册需要填写基本资讯

    2. 右上方有一个头像,点入后选择  View API keys

      Get OpenAI Token Step1 and Step2
      Get OpenAI Token Step1 and Step2
    3. 点选中间的  Create new secret key

      Get OpenAI Token Step3
      Get OpenAI Token Step3
      Get OpenAI Token Step4
      Get OpenAI Token Step4

    ⚠️ 每只 API 有免费额度,也有其限制,详情请看  OpenAI Pricing

  2. Discord Token

    1. 登入  Discord Developer

    2. 创建机器人:

      • 进入左方  Applications

      • 点击右上方  New Application  并输入 Bot 的名称 > 确认后进入新页面。

        Get Discord Token Step 1
        Get Discord Token Step 1
        Get OpenAI Token Step 2
        Get OpenAI Token Step 2
      • 点击左方  Bot

      • 点击右方  Add Bot

        Get OpenAI Token Step 3
        Get OpenAI Token Step 3
        Get OpenAI Token Step 4
        Get OpenAI Token Step 4
      • Token 在上方选择  View Token  或已申请过则会是  Reset Token  的按钮。

        Get OpenAI Token Step 5 and Step 6
        Get OpenAI Token Step 5 and Step 6
      • 下方  MESSAGE CONTENT INTENT  需打开

      • 按下  Save Change

        Get OpenAI Token Step 7 and Step 8
        Get OpenAI Token Step 7 and Step 8
    3. 设定 OAuth 2

      • 点击左栏  OAuth2
      • 点击左栏  URL Generator
      • 右栏  SCOPES  选择  bot、右栏下方  BOT PERMISSIONS  选择  Administrator {' '}
        Get OpenAI Token Step 9, Step 10 and Step 11
        Get OpenAI Token Step 9, Step 10 and Step 11
        Get OpenAI Token Step 12
        Get OpenAI Token Step 12
      • 复制最下方网址到浏览器中
      • 选择欲加入的服务器
        Get OpenAI Token Step 13 and Step 14
        Get OpenAI Token Step 13 and Step 14)
      • 按下  继续 > 授权

专案设置

  1. Fork Github 专案

    1. 注册/登入  GitHub

    2. 进入ChatGPT-Discord-Bot

    3. 点选  Star  支持开发者

    4. 点选  Fork  复制全部的代码到自己的仓库

      Fork Github Repository Step 1
      Fork Github Repository Step 1
      Fork Github Repository Step 2
      Fork Github Repository Step 2
  2. 部署(免费空间)

    1. 进入  replit

    2. 点选  Sign Up  直接用  Github  帐号登入并授权 -> 按下  Skip  跳过初始化设定

    3. 进入后中间主页的部分点选  Create -> 跳出框,点选右上角  Import from Github

      Replit Deploy Step 1
      Replit Deploy Step 1
    4. 若尚未加入 Github 仓库,则点选连结  Connect GitHub to import your private repos. -> 勾选  Only select repositories -> 选择  ChatGPT-Discord-Bot

      Replit Deploy Step 2
      Replit Deploy Step 2
      Replit Deploy Step 3
      Replit Deploy Step 3
    5. 回到第四步,此时  Github URL  可以选择  ChatGPT-Discord-Bot  专案 -> 点击  Import from Github

      Replit Deploy Step 4
      Replit Deploy Step 4

专案执行

  1. 环境变数设定

    1. 接续上一步  Import  完成后在  Replit  的专案管理页面左下方  Tools  点击  Secrets

    2. 右方按下  Got it  后,即可新增环境变数,需新增:

      • OpenAI API Token:
        • key: OPENAI_API
        • value: [由上方步骤一取得] sk-FoXXXX
      • 欲选择的模型:
        • key: OPENAI_MODEL_ENGINE
        • value: gpt-3.5-turbo
      • ChatGPT 要让助理扮演的角色词(目前官方无释出更多的使用方法,由玩家自行测试)
        • key: SYSTEM_MESSAGE
        • value: You are a helpful assistant.
      • Discord Token:
        • key: DISCORD_TOKEN
        • value: [由上方步骤一取得] MTA3NXXX
      Replit Set Environment Variable
      Replit Set Environment Variable
  2. 开始执行

    1. 点击上方的  Run

    2. 成功后右边画面会显示  Hello. I am alive!,并将画面中上方的网址复制下来,下一步骤会用到

      Replit Run
      Replit Run

      ⚠️ 若一小时内没有任何请求,则程式会中断,因此需要下步骤

  3. CronJob 定时发送请求

    1. 注册/登入  cron-job.org

    2. 进入后面板右上方选择  CREATE CRONJOB

      CronJob Step 1
      CronJob Step 1
    3. Title  输入  ChatGPT-Discord-Bot,网址输入上一步骤的网址

    4. 下方则每  5 分钟  打一次

    5. 按下  CREATE

      CronJob Step 2
      CronJob Step 2

指令

指令说明
/chat在输入框直接输入  /chat  会后缀  message  直接输入文字,即可调用 ChatGPT 模型。
/resetChatGPT 会记住前十次的问答纪录,调用此指令则会清除。
/imagine在输入框输入  /imagine  会后缀  prompt  直接输入文字,会调用 DALL·E 2 模型,即可生成图像。

Q&A

  1. 如何看 Log 档?

    在 Replit 专案中左侧有一个 logs ,在专案当中的 logger 会记录在其中,可以自行添加 logger 在其中。

  2. 如何调整 DALL·E 2 输出的图片大小?

    修改 /src/models/OpenAIModel 里的 image_size 即可。

🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們