# Screenshots

# Features - **Directly prompt GPT3 with `!g `** - **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 `! 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="" DISCORD_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 ` - Have DALL-E generate images based on a prompt `!gp` - Display settings for the model (temperature, top_p, etc) `!gs ` - Change a model setting to a new value `!g ` 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 ` 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 ` 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`