Kaveen Kumarasinghe
c54d2cc349
|
2 years ago | |
---|---|---|
.github/workflows | 2 years ago | |
cogs | 2 years ago | |
models | 2 years ago | |
README.md | 2 years ago | |
conversation_starter_pretext.txt | 2 years ago | |
image_optimizer_pretext.txt | 2 years ago | |
main.py | 2 years ago | |
requirements.txt | 2 years ago | |
sample.env | 2 years 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!
-
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