A Discord BOT Powered By OpenAI's ChatGPT.
This BOT uses ChatGPT API & Firebase Firestore Database.
π₯ Use slash command /ask
to ask questions in any channel.
π Direct Message (DM) the bot to get answer / response privately (switchable).
𧡠Continue Conversation in DM or using /ask
π Use /reset-chat
to Start a new Conversation / Thread.
π₯ Uses Firestore Database for persistent chat history storage & logs.
β¨ Chalk, Figlet & Gradient-String for decoration.
π« Easy Setup !
-
DM
- Ask Anything. -
/ask
- Ask Anything. -
/help
- Get Help. -
/ping
- Check Websocket Heartbeat && Roundtrip Latency. -
/reset-chat
- Start A Fresh Chat Session/Thread.
- Git
- Node.js v20 or, Docker
- OpenAI Account
- Discord Account
- Google Account For Firebase
- Atleast 1vCPU , 0.5GB RAM & 1GB Storage for the Bot.
- Create New Application (BOT) from Discord Developer Portal and invite that bot to your Discord Server with:
Scopes:bot
&application.commands
Bot Permissions:2734284602433
Privileged Gateway Intents:PRESENCE
,SERVER MEMBERS
,MESSAGE CONTENT
- Example Bot Invite URL (Replace
BOT_CLIENT_ID
with your bot's Client ID) :
https://discord.com/api/oauth2/authorize?client_id=BOT_CLIENT_ID&permissions=2734284602433&scope=bot%20applications.commands
-
βStar
this Repo to get updates. -
Clone this repo:
git clone https://github.com/itskdhere/ChatGPT-Discord-BOT
Then navigate to the folder:
cd ChatGPT-Discord-BOT
- To setup Environment Variables, Copy & Rename the
.env.example
file to.env
and open in any Text Editor. Then, fill the credentials properly by following this instruction:
Expand / Collapse Instruction
-
DISCORD_CLIENT_ID
- Client ID of the bot from OAuth2 section. -
DISCORD_BOT_TOKEN
- Token of the bot from Bot section. -
DIRECT_MESSAGES
- Toggle Direct Messages. Values:true
orfalse
-
DM_WHITELIST_ID=[ "id_1" , "id_2" ]
- Set Discord user IDs of users only who can use bot from dm. You can add as many as you want in proper format. -
OPENAI_API_KEY
- Get OpenAI API Key from here. -
HTTP_SERVER
- HTTP Server (Optional). Values:true
orfalse
-
PORT
- Port for HTTP Server. Default:7860
. If you change the port, make sure to change it in the Dockerfile as well.
-
DISCORD_MAX_RESPONSE_LENGTH
- Max 2000 , recomended 1900. -
API_ENDPOINT
- Setdefault
for api.openai.com endpoint. But you can set 3rd party equivalent endpoint too. -
DEBUG
- Toggle Debug Messages. Values:true
orfalse
-
UWU
- Toggle Figlet & Gradient-String decoration. Values:true
orfalse
-
MODEL
- Name of the Model you want to use. Like,text-davinci-003
,gpt-3.5-turbo
,gpt-4
etc. -
SYSTEM_MESSAGE
- This is the Initial Prompt that is sent to the Model. You can change it to anything you want to change the bot's behaviour as your requirements. Knowledge Cutoff and Current Date is always sent.
See .env.example file for more details
- Setup Firebase Firestore Database by following this instruction:
Expand / Collapse Instruction
-
Goto Firebase Console: console.firebase.google.com (No Card Required)
-
Click on
Create a project
orAdd project
. Give it a name and clickContinue
-
Disable Google Analytics & Click
Create Project
-
From the side-bar goto
Build
& thenFirestore Database
. -
Click
Create Database
-
Select
Start in production mode
& clickNext
-
Select a Firestore location nearest to your Server / VPS. This'll also set the Default GCP Resource Location & you can't change it later.
Then clickEnable
-
Now goto
Project settings
&Service accounts
. -
Under
Firebase Admin SDK
selectNode.js
. Then clickGenerate new private key
and then clickGenerate key
-
Important: Rename the downloaded json file to
firebaseServiceAccountKey.json
Any other name will not work here. Then put the json file in your bots directory.
Copy FileName:
firebaseServiceAccountKey.json
β¨ Tip: check out these images here
docker build -t itskdhere/chatgpt:3.2.4 .
docker run -d -p 7860:7860 --name chatgpt itskdhere/chatgpt:3.2.4
- Install all dependencies:
npm install
- Start the BOT:
npm run start
Or, During Development:
npm run dev
Or, In Production with PM2:
npm install pm2 -g
npm run prod
π License: MIT
π ChatGPT API: transitive-bullshit/chatgpt-api
π Database: Firestore
π BaaS: Firebase
β IaaS: Google Cloud Platform
--- π ---