/chatGPT-discord-bot

Primary LanguagePythonGNU General Public License v2.0GPL-2.0

chatGPT-discord-bot

This is a project that provides you to build your own Discord bot using ChatGPT

⭐️ A star would be highly appreciated

Notice

OpenAI added Cloudflare protections to their API, here are some differences in using it on server and desktop environment

Desktop (default)

In the requirments.txt

revChatGPT==0.0.a42

Server & Docker

The server and client must use the same IP address. Use your server as a self-hosted VPN if necessary

In the requirments.txt

revChatGPT==0.0.38.8

Features

  • /chat [message] Chat with ChatGPT!
  • /private ChatGPT switch to private mode
  • /public ChatGPT switch to public mode
  • /reset ChatGPT conversation history will be erased

Chat

image

Mode

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

    image

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

    image

Setup

Install

pip install -r requirements.txt

dependencies: Reverse Engineered ChatGPT by OpenAI here and discord.py

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 config.json 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: Session token authentication

Go to https://chat.openai.com/chat log in

  1. Open console with F12

  2. Open Application tab > Cookies

    image

  3. Copy the value for __Secure-next-auth.session-token from cookies and paste it into config.json under session_token

Step 3: Cloudflare token authentication (Server & Docker only)

  1. Find your cf_clearance from cookies and paste it into config.json under cf_clearance

    Warning

    Cloudflare cf_clearance have a 2-hour expiration, so you will need to manually log in and retrieve it periodically for now

    Currently solving this issue

  2. Get your user-agent from network and paste it into config.json under user-agent

    Network > Headers > Request Headers > User-Agent

    image

  3. It should be look like this

    image

Step 4: Run the bot

  1. Open a terminal or command prompt
  2. Navigate to the directory where you installed the ChatGPT Discord bot
  3. Run python3 main.py to start the bot

Step 4: Run the bot with docker

  1. Build the Docker image docker build -t chatgpt-discord-bot --platform linux/amd64 .

  2. Run the Docker container docker run --platform linux/amd64 -d 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

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

Have A Good Chat !