fb1d2c4dfdb2bb40d05ca493e84dc0d4465d943d
- Port bleibt 8181 (lokale Umgebung) - Persona: authentische, direkte Gefährtin ohne Rollenspiel-Floskeln - Behavior Rules: keine Sternchen, keine Körperbeschreibungen, rein textbasiert - Vision-Felder sind Code-seitig optional (Defaults vorhanden)
Nimue - Submissive AI Companion
Ein lokaler Chatbot mit Langzeit- und Kurzzeitgedächtnis, multimodaler Bilderkennung und Ollama-Integration.
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
- Vision / Bilderkennung: Unterstützt Bild-Uploads über das Webinterface (Gemma-4 Vision)
Installation
Voraussetzungen
# Ollama installieren
curl -fsSL https://ollama.com/install.sh | sh
# Vision-Modell herunterladen
ollama pull aratan/gemma-4-E4B-q8-it-heretic:latest
# Python-Abhängigkeiten
pip install -r requirements.txt
Konfiguration
Editiere config.yaml:
ollama:
host: "http://localhost:11434"
model: "aratan/gemma-4-E4B-q8-it-heretic:latest"
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
Bilder senden
Im Chat-Interface auf die 📷-Schaltfläche klicken, ein Bild auswählen und optional Text hinzufügen. Nimue analysiert und beschreibt das Bild vollständig.
Architektur
Benutzer-Eingabe (+ optional Bild)
↓
MemoryManager (Kurzzeit)
↓
OllamaClient → Local LLM (Vision-fähig)
↓
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
- Bilder: Werden in der Session verarbeitet, im Langzeitgedächtnis als Hinweis gespeichert
Sicherheit
- Rate Limiting: 30 Anfragen/Minute
- Session Timeouts nach 60 Min Inaktivität
- Maximale Eingabelänge: 2000 Zeichen
- Maximale Bildgröße: 8MB (automatisch resized für Ollama)
- Keine externen Datenverbindungen
Description
Languages
Python
62.4%
HTML
20.6%
CSS
14.6%
Shell
2.4%