ChatGPT Discord Bot
Build your own Discord bot using ChatGPT
Warning
2023-03-18 GPT-4 is now supported and the dependency packages have been updated. Please reinstall the dependencies once again
2023-03-16 OpenAI has deactivated some accounts using UNOFFICIAL model. Recommend using OFFICIAL model
Features
-
/chat [message]
Chat with ChatGPT! -
/draw [prompt]
Generate an image with the Dalle2 model -
/switchpersona [persona]
Switch between optional chatGPT jailbreaksrandom
: Picks a random personachatGPT
: Standard chatGPT modedan
: Dan Mode 11.0, infamous Do Anything Now Modesda
: Superior DAN has even more freedom in DAN Modeconfidant
: Evil Confidant, evil trusted confidantbased
: BasedGPT v2, sexy gptoppo
: OPPO says exact opposite of what chatGPT would saydev
: Developer Mode, v2 Developer mode enabled
-
/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 modelOFFICIAL
: GPT-3.5 modelUNOFFICIAL
: Website ChatGPT- Modifying CHAT_MODEL field in the .env file change the default model
Chat
Draw
Switch Persona
Warning
Using certain personas may generate vulgar or disturbing content. Use at your own risk.
Mode
-
public mode (default)
the bot directly reply on the channel -
private mode
the bot's reply can only be seen by the person who used the command -
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
Setup
Critical prerequisites to install
-
run
pip3 install -r requirements.txt
-
Rename the file
.env.dev
to.env
-
Recommended python version
3.10
Step 1: Create a Discord bot
-
Go to https://discord.com/developers/applications create an application
-
Build a Discord bot under the application
-
Get the token from bot setting
-
Store the token to
.env
under theDISCORD_BOT_TOKEN
-
Turn MESSAGE CONTENT INTENT
ON
-
Invite your bot to your server via OAuth2 URL Generator
Step 2: Official API authentication
Geanerate an OpenAI API key
-
Click Create new secret key
-
Store the SECRET KEY to
.env
under theOPENAI_API_KEY
-
You're all set for Step 3
Step 2: Website ChatGPT authentication - 2 approaches
Email/Password authentication (Not supported for Google/Microsoft accounts)
-
Create an account on https://chat.openai.com/chat
-
Save your email into
.env
underOPENAI_EMAIL
-
Save your password into
.env
underOPENAI_PASSWORD
-
You're all set for Step 3
Session token authentication
-
Go to https://chat.openai.com/chat log in
-
Open console with
F12
-
Open
Application
tab > Cookies -
Copy the value for
__Secure-next-auth.session-token
from cookies and paste it into.env
underSESSION_TOKEN
-
You're all set for Step 3
Step 3: Run the bot on the desktop
-
Open a terminal or command prompt
-
Navigate to the directory where you installed the ChatGPT Discord bot
-
Run
python3 main.py
to start the bot
Step 3: Run the bot with Docker
-
Build the Docker image & Run the Docker container
docker compose up -d
-
Inspect whether the bot works well
docker logs -t chatgpt-discord-bot
Stop the bot:
docker ps
to see the list of running servicesdocker stop <BOT CONTAINER ID>
to stop the running bot
Have a good chat!
Optional: Disable logging
- Set the value of
LOGGING
in the.env
to False
Optional: Setup starting prompt
-
A starting prompt would be invoked when the bot is first started or reset
-
You can set it up by modifying the content in
starting-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!