IMPORTANT: This is a functional prototype to demonstrate utility. It is not a finished product... YET.
This project prototypes a Discord bot that supports teachers, mentors, career advisors, and life coaches. The bot provides engaging, friction-free reflection opportunities and prompts to students, while also generating insight packages for mentors and other stakeholders.
In this demo, the bot is configured as an advisor for the fictional Hogwarts School of Witchcraft and Wizardry. The default character, Aldwyn Blackwood, guides students through their magical education journey. As Albus Dumbledore once said, "It is our choices that show what we truly are, far more than our abilities." This advisor bot aims to help students make those important choices.
Note to Users: While the demo uses a fictional setting, you can easily customize the bot for your specific educational context. The characters.py file contains the system prompt and character settings, which you can modify to suit your needs. Feel free to replace Hogwarts with your own institution and adjust the educational journey to match your curriculum!
This bot is currently in a prototype stage. It serves as a demonstration of the concept and functionality, but is not yet optimized for production use. Features may be incomplete or subject to change as the project evolves.
- Facilitate ongoing reflection and guidance for students throughout their journey
- Generate insight packages for various stakeholders (prototype stage)
- Conversation management with mentors
- Text-to-speech functionality using ElevenLabs (now enabled by default)
- Support for multiple AI models (Claude, OpenRouter)
- Character selection when launching the bot, with character-specific voice settings (allowing user to customize to their needs and environment)
- Basic command system for interaction within Discord
main.py: Entry point of the application, contains Discord event handlers and commandsapi_manager.py: Manages API calls to different AI modelsconversation_manager.py: Manages conversation state and historytts_manager.py: Manages text-to-speech functionality with character-specific settingscharacters.py: Defines character information, system prompts, and voice settingsconfig.py: Configuration file (generated for you during one-click installation, otherwise, use the template to set yours up)
There are two ways to install and configure FutureZone: one-click installation and manual installation.
The one-click installation method provides a quick and easy way to set up FutureZone. However, it may not give you as much insight into the setup process as the manual method (in case you want to build later, especially in different environments).
-
Clone the repository:
git clone https://github.com/fizt656/FutureZone.git cd FutureZone -
Run the appropriate installer for your operating system:
- On Windows: Double-click the
install.batfile or run it from the command prompt - On Mac/Linux: Open a terminal and run:
chmod +x install.sh ./install.sh
- On Windows: Double-click the
-
Follow the prompts to enter your API keys and other configuration details.
-
After the installation is complete, you can run the bot using:
python main.py [character_name]If no character name is provided, the bot will default to "Aldwyn".
With manual installation, you'll have more control over the setup process and potentially learn more about the project structure. Here are the steps:
-
Clone the repository:
git clone https://github.com/fizt656/FutureZone.git cd FutureZone -
Create a virtual environment and activate it:
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate` -
Install required dependencies:
pip install -r requirements.txt -
Set up the configuration file:
- Copy
config_template.pytoconfig.py - Open
config.pyand replace the placeholder values with your actual API keys and tokens:- Anthropic API key
- OpenRouter API key and HTTP Referer
- ElevenLabs API key and Voice ID
- Discord bot token and user ID
- Copy
-
Run the bot:
python main.py [character_name]If no character name is provided, the bot will default to "Aldwyn".
The FutureZone bot is designed to engage with students in an informal, friendly manner. It uses emojis and casual language to create a comfortable environment for students to reflect on their journey.
- When the bot is started, it automatically initiates the conversation by sending a greeting message to the student.
- The bot introduces itself as the selected character (default is Aldwyn Blackwood) and starts with a general check-in, asking how things are going in the student's life before transitioning to their progress.
- Students can engage in ongoing conversations with the bot, asking questions or reflecting on their work.
- The bot provides guidance and prompts related to different phases of the journey.
!delete: Delete the last message in the conversation!clear: Clear the conversation history!tts: Toggle text-to-speech mode on or off (TTS is enabled by default)!say [text]: Generate TTS for the specified text!quit: Shut down the bot
The TTS feature is enabled by default, providing a more immersive and accessible experience. It uses character-specific voice settings defined in characters.py. The bot's responses are automatically converted to speech using the ElevenLabs API.
While interacting with students, the bot will [eventually be able to -- growth mindset, right?] generate insight packages for various stakeholders:
- Mentors: Receive summaries of student interactions, progress, and potential areas for support.
- Researchers: Gain data on student engagement, common themes, and program effectiveness.
- Counselors: Receive alerts on students who may need additional assistance or resources.
- Communication Officers: Gather stories and highlights that can be used for program promotion and reporting (future feature).
Note: In this prototype stage, the insight package generation is NOT implemented... YET.
As this project evolves beyond the prototype stage, we aim to implement:
- Advanced context-based flagging system to alert relevant stakeholders based on conversational cues, not just keywords.
- Integration with existing educational systems for seamless data flow and insights sharing.
- Expanded character roster to provide diverse perspectives and expertise.
- Enhanced natural language processing for more nuanced understanding of student needs and progress.
- Further improvements to multimodal interaction capabilities, building on the current TTS implementation.
This project is in its early stages and is primarily a proof-of-concept. While we welcome feedback and suggestions, please note that major contributions or changes may be deferred until the project moves beyond the prototype phase.
If you'd like to contribute:
- Fork the repository
- Create a new branch for your feature or bug fix
- Make your changes and commit them with clear, descriptive messages
- Push your changes to your fork
- Create a pull request to the main repository
Please ensure your code follows the project's coding style and includes appropriate documentation.
This bot is a prototype and is not intended for production use in its current state. It may contain bugs, incomplete features, or security vulnerabilities.
This project is licensed under a dual license. Please see the LICENSE file for details.
