https://github.com/ekbass/systemmessagemanager
LLM - SystemMessageManager
https://github.com/ekbass/systemmessagemanager
bard-ai-api claude-ai claude-api gemini-api javascript large-language-models llm nodejs openai openai-api openai-chatgpt python
Last synced: 10 months ago
JSON representation
LLM - SystemMessageManager
- Host: GitHub
- URL: https://github.com/ekbass/systemmessagemanager
- Owner: EkBass
- License: mit
- Created: 2025-01-08T15:22:01.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-08T15:55:24.000Z (about 1 year ago)
- Last Synced: 2025-01-27T14:58:09.183Z (12 months ago)
- Topics: bard-ai-api, claude-ai, claude-api, gemini-api, javascript, large-language-models, llm, nodejs, openai, openai-api, openai-chatgpt, python
- Language: Python
- Homepage:
- Size: 14.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Description is translated by ChatGPT because it has much better English skills than i have :)
### **SystemMessageManager: Overview**
The `SystemMessageManager` is a Python/nodejs class designed to manage system messages in a structured and flexible way. These messages, which are organized by "roles," can be retrieved, modified, saved, and loaded as needed. The class ensures that a default system message is always preserved and provides features like backups for data integrity.
---
### **What It Does**
1. **Manage System Messages:**
- Adds, edits, or removes system messages based on user-defined roles.
- Protects the default system message from accidental deletion or modification.
2. **Backup and Restore:**
- Automatically creates backups of current data when loading new data if the backup feature is enabled.
- Restores data from JSON files, completely replacing the current state.
3. **Data Persistence:**
- Saves system messages to JSON files for long-term storage.
- Loads system messages from JSON files to quickly replace or update the current data.
4. **Customizable Settings:**
- Allows toggling of the backup feature based on user preference.
---
### **How It Works**
1. **Initialization:**
- When creating an instance of the class, you can either provide a JSON string or a default message. If a JSON string is provided, the data is loaded from it. Otherwise, the class initializes with a default system message.
2. **Adding Messages:**
- New system messages can be added with a unique role. The default message is protected and cannot be overwritten.
3. **Retrieving Messages:**
- You can fetch a system message by its role. If the role is not found, the default message is returned.
4. **Editing Messages:**
- System messages can be edited, except for the default one. The role must already exist to make modifications.
5. **Saving and Loading:**
- The current data can be saved as a JSON file.
- When loading data from a file, the class optionally saves the current state as a backup before replacing the data.
6. **Backup Feature:**
- By default, backups are enabled. If you load new data, the existing data is saved with a timestamped filename for safekeeping.
---
### **Key Features**
- **Ease of Use:** Intuitive methods (`add_system`, `get_system`, `edit_system`) make it simple to manage messages.
- **Data Integrity:** Backups ensure that no data is lost during file operations.
- **Flexibility:** Users can easily work with multiple system messages for different roles without interfering with the default message.
- **Persistence:** Data can be stored and restored using JSON files, making it portable and reusable.
---
### **Ideal Use Cases**
- Managing and updating system configurations or prompts in AI/automation workflows.
- Storing and retrieving context-specific messages for chatbots or applications.
- Safeguarding critical default settings while allowing customization.
LLM - SystemMessageManager