A robust, all-in-one GPT3 interface for Discord. ChatGPT-style conversations, image generation, AI-moderation, custom indexes/knowledgebase, youtube summarizer, and more!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Kaveen Kumarasinghe f631bee657
Create CODE_OF_CONDUCT.md
1 year ago
.github/workflows Update main.yml 1 year ago
cogs Format Python code with psf/black push 1 year ago
models update convo starter and add set_usage 1 year ago
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 1 year ago
README.md Update README.md 1 year ago
conversation_starter_pretext.txt Automatically retry when you edit your prompt! 1 year ago
image_optimizer_pretext.txt reinit 1 year ago
main.py bit more debug 1 year ago
requirements.txt Add full DALL-E Integration 1 year ago
sample.env Readme update discord bot 1 year ago

README.md

Screenshots

Features

  • Directly prompt GPT3 with !g <prompt>

  • Have conversations with the bot, just like chatgpt, with !g converse - Conversations happen in threads that get automatically cleaned up!

  • DALL-E Image Generation - Generate DALL-E AI images right in discord with !draw <prompt>! It even supports multiple image qualities, multiple images, creating image variants, retrying, and saving images.

  • Redo Requests - A simple button after the GPT3 response or DALL-E generation allows you to redo the initial prompt you asked.

  • DALL-E Image Prompt Optimization - Given some text that you're trying to generate an image for, the bot will automatically optimize the text to be more DALL-E friendly!

  • Automatically re-send your prompt and update the response in place if you edit your original prompt!

  • Change and view model parameters such as temp, top_p, and etc directly within discord.

  • Tracks token usage automatically

  • Automatic pagination and discord support, the bot will automatically send very long message as multiple messages, and is able to send discord code blocks and emoji, gifs, etc.

  • A low usage mode, use a command to automatically switch to a cheaper and faster model to conserve your tokens during times of peak usage.

  • Prints debug to a channel of your choice, so you can view the raw response JSON

  • Ability to specify a limit to how long a conversation can be with the bot, to conserve your tokens.

Requirements

python3.9 -m pip install -r requirements.txt

I recommend using python 3.9!

OpenAI API Key (https://beta.openai.com/docs/api-reference/introduction)

Discord Bot Token (https://discord.com/developers/applications)

You can learn how to add the discord bot to your server via https://www.ionos.co.uk/digitalguide/server/know-how/creating-discord-bot/

Both the OpenAI API key and the Discord bot token needed to be loaded into a .env file in the same local directory as the bot file.

You also need to add a DEBUG_GUILD id and a DEBUG_CHANNEL id, the debug guild id is a server id, and the debug channel id is a text-channel id in Discord. Your final .env file should look like the following:

OPENAI_TOKEN="<openai_api_token>"

DISCORD_TOKEN="<discord_bot_token>"

DEBUG_GUILD="974519864045756446"   #discord_server_id

DEBUG_CHANNEL="977697652147892304"  #discord_chanel_id

Optionally, you can include your own conversation starter text for the bot that's used with !g converse, with CONVERSATION_STARTER_TEXT

Bot on discord:

  • Create a new Bot on Discord Developer Portal:
    • Applications -> New Application
  • Generate Toker for the app (discord_bot_token)
    • Select App (Bot) -> Bot -> Reset Token
  • Toogle PRESENCE INTENT:
    • Select App (Bot) -> Bot -> PRESENCE INTENT
  • Add Bot the the server.
    • Select App (Bot) -> OAuth2 -> URL Generator -> Select Scope: Bot
    • Bot Permissions will appear, select the desired permissions
    • Copy the link generated below and paste it on the browser
    • On add to server select the desired server to add the bot

Usage

python3.9 main.py

Commands

!g - Display help text for the bot

!g converse - Start a conversation with the bot, like ChatGPT

!g end - End a conversation with the bot.

!draw <prompt> - Have DALL-E generate images based on a prompt

!gp - Display settings for the model (temperature, top_p, etc)

!gs <setting> <value> - Change a model setting to a new value

!g <prompt> Ask the GPT3 Davinci 003 model a question.

!gu Estimate current usage details (based on davinci)

!gs low_usage_mode True/False Turn low usage mode on and off. If on, it will use the curie-001 model, and if off, it will use the davinci-003 model.

!imgoptimize <image prompt text> Optimize a given prompt text for DALL-E image generation.

!delete_all_conversation_threads - Delete all threads related to this bot across all servers.

Configuration

All the model parameters are configurable inside discord. Type !gp to view all the configurable parameters, and use !gs <param> <value> to set parameters. For example, if I wanted to change the number of images generated by DALL-E by default to 4, I can type the following command in discord: !gs num_images 4