Skip to content

Latest commit

 

History

History
164 lines (106 loc) · 5.39 KB

README.md

File metadata and controls

164 lines (106 loc) · 5.39 KB

ChatGPT Discord Bot

Build your own Discord bot using ChatGPT


Important

Major Update (2024/03):

Chat

image

Setup

Prerequisites

  • Python 3.9 or later
  • Rename the file .env.example to .env
  • Running pip3 install -r requirements.txt to install the required dependencies
  • Google Chrome for Image Generation

Step 1: Create a Discord bot

  1. Go to https://discord.com/developers/applications create an application

  2. Build a Discord bot under the application

  3. Get the token from bot setting

    image

  4. Store the token to .env under the DISCORD_BOT_TOKEN

    image
  5. Turn MESSAGE CONTENT INTENT ON

    image

  6. Invite your bot to your server via OAuth2 URL Generator

    image

Step 2: Run the bot on the desktop

  1. Open a terminal or command prompt

  2. Navigate to the directory where you installed the ChatGPT Discord bot

  3. Run python3 main.py or python main.py to run the bot


Step 2: Run the bot with Docker

  1. Build the Docker image & run the Docker container with docker compose up -d

  2. Inspect whether the bot works well docker logs -t chatgpt-discord-bot

    Stop the bot:

    • docker ps to see the list of running services
    • docker stop <BOT CONTAINER ID> to stop the running bot

Have a good chat!


Optional: Configuring OpenAI API

  1. Obtain your API key by visiting https://platform.openai.com/api-keys
  2. Paste the API key under OPENAI_KEY in .env
  3. Set OPENAI_ENABLED to True in .env

Note

GPT-4 API is subject to certain restrictions.

Details https://help.openai.com/en/articles/7102672-how-can-i-access-gpt-4

Image Generation

image

Microsoft Bing Image Generation

  1. Go to https://www.bing.com/chat and log in

  2. Open console with F12

  3. Open Application tab > Cookies

  4. Copy the value for _U from cookies and paste it into .env under BING_COOKIE

Google Gemini Image Generation

  1. Go to https://gemini.google.com/app and log in

  2. Open console with F12

  3. Open Application tab > Cookies

  4. Copy the value for __Secure-1PSID from cookies and paste it into .env under GOOGLE_PSID

Optional: Setup system prompt

  • A system prompt would be invoked when the bot is first started or reset

  • You can set it up by modifying the content in system_prompt.txt

  • All the text in the file will be fired as a prompt to the bot

  • Get the first message from ChatGPT in your discord channel!

  • Go Discord setting turn developer mode on

    1. Right-click the channel you want to recieve the message, Copy ID

      channel-id

    2. paste it into .env under DISCORD_CHANNEL_ID

Optional: Disable logging

  • Set the value of LOGGING in the .env to False

中文設置教學


Commands

  • /chat [message] Chat with ChatGPT/Gemini

  • /draw [prompt] Generate an image with Gemini/OpenAI/Bing

  • /switchpersona [persona] Switch between optional chatGPT jailbreaks

    • random: Picks a random persona
    • standard: Standard chatGPT mode
    • dan: DAN 13.5 (Latest Working ChatGPT Jailbreak prompt)
    • Smart mode: AIM (Always Intelligent and Machiavellian)
    • Developer Mode: software developer who specializes in the AI's area
  • /private ChatGPT switch to private mode

  • /public ChatGPT switch to public mode

  • /replyall ChatGPT switch between replyAll mode and default mode

  • /reset Clear ChatGPT conversation history

  • /chat-model Switch different chat model

    • gpt-4: GPT-4 model
    • Gemini: Google Gemini Model

Special Features

Switch Persona

Warning

Certain personas may generate vulgar or disturbing content. Use at your own risk.

image

Mode

  • public mode (default) the bot directly reply on the channel

    image

  • private mode the bot's reply can only be seen by the person who used the command

    image

  • replyall mode the bot will reply to all messages in the channel without using slash commands (/chat will also be unavailable)

    Warning The bot will easily be triggered in replyall mode, which could cause program failures