f4b79a1004
- Modell gewechselt zu aratan/gemma-4-E4B-q8-it-heretic:latest - Multimodale Anfragen (Text + Bild) über Ollama API - Bild-Upload im Chat-Interface mit Vorschau - Automatisches Image-Resizing und JPEG-Kompression - Vision-Regeln im Persona-Prompt integriert - Memory-System erweitert für Bildhinweise - Frontend: Bildvorschau, Upload-Button, responsive Styling - README aktualisiert
96 lines
2.4 KiB
Markdown
96 lines
2.4 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
# 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`:
|
|
|
|
```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
|
|
|
|
```bash
|
|
# 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
|