27dcaf65528c0ac415f9462246d7486e20725beb
- Langzeit- und Kurzzeitgedächtnis mit SQLite - Ollama-Integration für lokale LLMs - Flask-Webinterface mit Stream-Response - Persona-System mit konfigurierbarem Charakter - Auto-Zusammenfassung bei Token-Limit - Rate Limiting und Sicherheitsfeatures - Uncensored Modell-Support
Nimue - Submissive AI Companion
Ein lokaler Chatbot mit Langzeit- und Kurzzeitgedächtnis basierend auf Ollama.
Features
- Langzeitgedächtnis: SQLite-Datenbank speichert alle Gespräche
- Kurzzeitgedächtnis: RAM-basiert für schnellen Kontextzugriff
- Auto-Zusammenfassung: Alte Nachrichten werden automatisch zusammengefasst statt verworfen
- Persona-System: Konfigurierbare Charaktereigenschaften
- Präferenzen-Lernen: Erkennt und speichert Benutzerpräferenzen
- Token-Schutz: Verhindert Context-Overflow
- Rate Limiting: Schutz vor Überlastung
- Stream-Response: Echtzeit-Antworten
Installation
Voraussetzungen
# Ollama installieren
curl -fsSL https://ollama.com/install.sh | sh
# Modell herunterladen
ollama pull HammerAI/rocinante-v1.1:12b-q4_K_M
# Python-Abhängigkeiten
pip install -r requirements.txt
Konfiguration
Editiere config.yaml:
ollama:
host: "http://localhost:11434"
model: "HammerAI/rocinante-v1.1:12b-q4_K_M"
memory:
max_context_tokens: 4096 # Kontextfenster
short_term_limit: 2048 # RAM-Cache
long_term_limit: 1024 # Für Zusammenfassungen
persona:
name: "Nimue"
# System Prompt anpassbar
Verwendung
# Starten
python main.py
# Oder
cd nimue && python -m nimue.app
# Webinterface öffnen
firefox http://localhost:5000
Architektur
Benutzer-Eingabe
↓
MemoryManager (Kurzzeit)
↓
OllamaClient → Local LLM
↓
MemoryManager (Speicherung)
↓
Stream-Antwort
Gedächtnis-System
- Kurzzeit: Aktuelle Sitzung (RAM)
- Langzeit: Alle vergangenen Gespräche (SQLite)
- Zusammenfassung: Bei 80% Token-Nutzung werden alte Nachrichten komprimiert und archiviert
Sicherheit
- Rate Limiting: 30 Anfragen/Minute
- Session Timeouts nach 60 Min Inaktivität
- Maximale Eingabelänge: 2000 Zeichen
- Keine externen Datenverbindungen
Description
Languages
Python
66.1%
HTML
18.4%
CSS
12.8%
Shell
2.7%