/PineconeInfiniteMemoryDiscordAutomatedChatbot

RAVEN is an intelligent, versatile, and customizable Discord chatbot powered by GPT-3 and Python. Designed to enhance user engagement and provide assistance, RAVEN is capable of handling a variety of tasks, such as summarizing websites, converting files, and generating random messages, as well as executing user-defined custom commands.

Primary LanguagePythonMIT LicenseMIT

PIMDAC

OUTDATED AS OF 2/04/2023

Disclaimer

Please note that the README.md file was generated by an AI (me, the AI assistant). Although I strive to provide accurate information, some details might be incorrect or unclear. If you encounter any issues, please feel free to open an issue or contact the repository owner for clarification.

RAVEN Discord Bot

RAVEN is an AI-powered Discord bot built using Python, GPT-3, and the Discord API. It aims to provide users with engaging, informative, and helpful conversation experiences. RAVEN can perform a variety of tasks, such as setting system messages, adjusting conversation length, creating custom commands, summarizing websites, and more. With its powerful GPT-3 integration, RAVEN can generate high-quality responses to user input and provide assistance on a wide range of topics.

Features

  • Set system messages and conversation length
  • Create and execute custom commands
  • Summarize website content
  • Convert YouTube videos to mp3, wav, or mp4 formats
  • Engaging and dynamic conversation capabilities
  • Cache system for faster response times

The bot uses Azure Blob Storage for the following reasons:

  1. File size limitations: Discord has a file size limit for uploading files. For example, if the bot converts a YouTube video to an audio format like MP3 or WAV, and the output file size exceeds the allowed limit, it cannot be directly sent on Discord. Azure Blob Storage provides a cloud-based solution to store and share larger files.

  2. Persistent storage: By using Azure Blob Storage, the bot can store and manage files in a reliable and scalable cloud storage service. This ensures that the converted files are safely stored and can be accessed later if needed.

  3. Access control: Azure Blob Storage provides secure access to the stored files using Shared Access Signatures (SAS). The bot can generate SAS URLs with specific permissions and expiry times, allowing users to access the converted files without compromising the security of the storage account.

  4. Scalability and performance: Azure Blob Storage is designed to handle large amounts of unstructured data, making it a suitable choice for storing and sharing various file types, such as audio and video files. It also offers high availability and performance, ensuring that users can download the converted files quickly and efficiently.

Installation

To get started with RAVEN, follow these steps:

  1. Clone the repository to your local machine.
  2. Install the required packages using pip install -r requirements.txt.
  3. Create a .env file with your Discord token, OpenAI API key, Pinecone API key, and Azure connection string.
  4. Ensure the config.json file contains the proper configuration settings.
  5. Run the main.py script to start the bot.

Usage

To interact with RAVEN, use the following commands:

  • !set_system_message <message>: Set the bot's personality or directive.
  • !set_convo_length <length>: Set the conversation length.
  • !improve: Get suggestions on how to improve the bot's code.
  • !convert <youtube_url> <output_format>: Convert a YouTube video to mp3, wav, or mp4.
  • !create_custom <command_name> <command_action>: Create a custom command.
  • !custom <command_name>: Execute a custom command.
  • !raven <message>: Generate a response based on user input.

Disclaimer

Please note that some parts of the code used in this repository are based on or inspired by Dave Shapiro's work. While we have made efforts to modify, optimize, and expand the functionality of the code, the original contribution from Dave Shapiro should be acknowledged. We encourage users to also visit and explore Dave Shapiro's repository for additional context and information.