Note
The codebase is currently under refinement for enhanced modularity and maintainability. For the latest version, please visit the dev
branch.
- Table of Contents
- Overview
- Dependencies
- Installation
- Configuration
- Usage
- Documentation
- Screenshots
- Contributing
- Status
- Author
- License
Moodle Mate automatically retrieves your Moodle notifications and intelligently summarizes them, giving you a quick and clear overview of what's important. It delivers these summaries straight to your preferred channels like Discord, Pushbullet, and more. Designed for seamless integration into server environments, Moodle Mate offers high flexibility with adjustable update intervals tailored to meet your needs.
Key Features:
-
Cost-effective operation with GPT-3.5-turbo, minimizing expenses. (typically less than $0.15 per month, excluding server expenses). Alternatively you could just disable summarization in the config file
-
Optional OpenAI Assistant integration for intelligent, context-aware responses, currently available in German. To use the Assistant, set the
test
variable insummarizer.summarize
toTrue
:Example:
# utils > main_loop.py > main_loop() # line 56, works [08.01.2024] summary = summarizer.summarize(text, True)
-
Supports popular platforms including Pushbullet, Discord, and NTFY (BETA) for versatile notification delivery.
-
Offers flexible scheduling for periodic background execution and incorporates error handling mechanisms.
-
Uses "only" 50MB of RAM 99% of the time, making it lightweight and cost-effective. (Tested on a Raspberry Pi Zero 2 W)
NEW: Integration of Deepinfras API with support for dolphin-2.6-mixtral-8x7b (cheap alternative to gpt 3) NEW: Experimentation with fakeopen, a free API for GPT-4-32k chat completions. (Usage discretion advised due to potential inconsistencies.)
Moodle Mate depends on several specialized API wrappers and libraries:
- MoodleAPI: A custom interface for Moodle API interactions.
- OpenAI: Integration with OpenAI's API.
- Pushbullet: Connectivity with Pushbullet API.
- NTFY: Connectivity with NTFY API.
- Discord: Implementation using Discord webhooks.
To ensure smooth operation of Moodle Mate, ensure Python 3.10 or higher is installed.
- Python >= 3.10: Necessary for compatibility and functionality.
If you prefer to work within a virtual environment, please follow the instructions provided in the Optional Virtual Environment Setup guide. This way you can avoid potential conflicts with other Python projects and ensure a clean installation. Otherwise, you may skip this step and install Moodle Mate directly into your system.
To install Moodle Mate, follow these steps:
- Clone the repository and access the main directory:
git clone https://github.com/EvickaStudio/Moodle-Mate.git cd Moodle-Mate
- Install necessary Python dependencies from the requirements.txt file:
pip install -r requirements.txt
Configuration of Moodle Mate requires setting up a config.ini
file. Key parameters include Moodle URL, account credentials, and various API keys for functionality and integrations.
Parameter | Description | Required | Default |
---|---|---|---|
moodleUrl | Moodle URL for API access | Yes | N/A |
username | Moodle Account Username | Yes | N/A |
password | Moodle Account Password | Yes | N/A |
openaikey | OpenAI API Key | No | N/A |
pushbulletkey | Pushbullet API Key | No | N/A |
pushbulletState | Pushbullet State (ON = 1 else 0) | No | 0 |
webhookState | Webhook State (ON = 1 else 0) | No | 0 |
webhookUrl | Discord Webhook URL | Yes | N/A |
systemMessage | System Message for GPTs | Yes | default config |
model | GPT Model (recommend: gpt-4-1106-preview) | No | gpt-3.5-turbo-1106 |
fakeopen | Implementation of fakeopen API | Yes | 0 |
summary | Use GPT for summary (ON = 1 else 0) | Yes | 0 |
A detailed example configuration is available here.
With the configuration complete, execute the main script to start the application:
Tip
Moodle Mate processes only new notifications, current last notification will not be send.
python3 main.py
Comprehensive documentation, detailing functionalities and operational guidelines, is organized by module within each directory.
Screenshots of the application in action:
We'd love your help making Moodle Mate even better! Contribute by:
- Reporting bugs
- Suggesting new features
- Submitting pull requests
Moodle Mate is created with ❤️ by EvickaStudio.
This project is licensed under the Apache License 2.0 - see the LICENSE.md file for details.