https://github.com/ebongard/renfield
Self-hosted AI assistant with voice satellites, 100+ tool integrations, RAG knowledge base, and full offline capability. Built with FastAPI + React + Ollama.
https://github.com/ebongard/renfield
ai-assistant docker knowledge-base knowledge-graph mcp offline-first ollama presence-detection privacy pwa rag raspberry-pi react self-hosted speaker-recognition typescript voice-assistant
Last synced: about 1 month ago
JSON representation
Self-hosted AI assistant with voice satellites, 100+ tool integrations, RAG knowledge base, and full offline capability. Built with FastAPI + React + Ollama.
- Host: GitHub
- URL: https://github.com/ebongard/renfield
- Owner: ebongard
- License: mit
- Created: 2026-01-15T18:05:46.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-04-26T11:14:13.000Z (2 months ago)
- Last Synced: 2026-04-26T11:22:53.469Z (2 months ago)
- Topics: ai-assistant, docker, knowledge-base, knowledge-graph, mcp, offline-first, ollama, presence-detection, privacy, pwa, rag, raspberry-pi, react, self-hosted, speaker-recognition, typescript, voice-assistant
- Language: Python
- Homepage:
- Size: 22.9 MB
- Stars: 6
- Watchers: 0
- Forks: 3
- Open Issues: 47
-
Metadata Files:
- Readme: README.de.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: docs/SECURITY.md
Awesome Lists containing this project
README
[English](README.md) | **Deutsch**
# Renfield - Persönlicher KI-Assistent
Ein vollständig offline-fähiger, selbst-gehosteter **digitaler Assistent** — ein persönlicher AI Hub, der Wissen, Informationsabfragen und Multi-Channel-Steuerung in einer Oberfläche bündelt. Renfield dient mehreren Nutzern parallel im Haushalt, mit abfragbarer Wissensbasis (RAG), gebündeltem Tool-Zugriff über 10 MCP-Server und Smart-Home-Steuerung.
**Tech Stack:** Python 3.11 · FastAPI · React 18 · TypeScript · PostgreSQL 16 · Redis 7 · Ollama · Docker Compose
## Haftungsausschluss
renfield ist ein unabhängiges Open-Source-Projekt.
Es besteht keine Verbindung zu Dritten, Organisationen, Unternehmen
oder Marken mit gleichem oder ähnlichem Namen, und es erfolgt keine
Unterstützung oder Billigung durch solche Dritte.
## Features
### Kernfunktionen
- **Chat-Interface** — Streaming-Antworten, Inline-Album-Art, einklappbare Agent-Schritte, Credential-Redaction
- **Konversations-Historie** — Sidebar mit Chatverläufen, Datumsgruppierung, Session-Persistenz, Follow-up-Fragen
- **Agent System (ReAct)** — Mehrstufige Anfragen mit Tool-Verkettung, Agent Router mit spezialisierten Rollen, Media Transport Shortcuts
- **Knowledge Graph** — Entity-Relation-Tripel mit Post-Extraction-Validierung, String-Similarity-Dedup und Bulk Cleanup API
- **Konversations-Gedächtnis** — Langzeit-Erinnerungen (Präferenzen, Fakten, Anweisungen) mit Widerspruchserkennung
- **Intent Feedback Learning** — Lernt aus Korrekturen und verbessert Intent-Erkennung über semantisches Matching (3 Scopes: Intent, Tool, Komplexität)
- **Spracheingabe & -ausgabe** — Whisper STT und Piper TTS, Sprechererkennung mit SpeechBrain
- **Präsenzerkennung** — BLE-Scanning, Sprechererkennung und Web-Auth verfolgen, wer sich in welchem Raum befindet
- **Proaktive Benachrichtigungen** — Webhook-basierte Alerts von Home Assistant/n8n + generisches MCP Notification Polling
- **Paperless Audit** — Automatisierte LLM-basierte Metadaten-Prüfung mit Review Queue, OCR-Qualitätsbewertung und Auto-Fix
- **Hook/Plugin-System** — Asynchrone Extension-API für eigene Integrationen ohne Core-Änderungen
### Integrationen (10 MCP-Server)
| Server | Beschreibung | Transport | Aktivierung |
|--------|-------------|-----------|-------------|
| Weather | OpenWeatherMap | stdio | `WEATHER_ENABLED=true` |
| Search | SearXNG Metasearch | stdio | `SEARCH_ENABLED=true` |
| News | NewsAPI | stdio | `NEWS_ENABLED=true` |
| Calendar | Exchange, Google, CalDAV (Multi-Account) | stdio | `CALENDAR_ENABLED=true` |
| Jellyfin | Media Server | stdio | `JELLYFIN_ENABLED=true` |
| DLNA | Media Renderer Control (Gapless Queue) | streamable_http | `DLNA_MCP_ENABLED=true` |
| n8n | Workflow Automation | stdio | `N8N_MCP_ENABLED=true` |
| Home Assistant | Smart Home | streamable_http | `HA_MCP_ENABLED=true` |
| Paperless | Dokumenten-Management | stdio | `PAPERLESS_ENABLED=true` |
| Email | IMAP/SMTP E-Mail | stdio | `EMAIL_MCP_ENABLED=true` |
### Wissensspeicher (RAG)
- **Hybrid Search** — Dense Embeddings (pgvector) + BM25 Full-Text-Search (German FTS, OR-Matching), kombiniert via RRF
- **Unterstützte Formate** — PDF, DOCX, PPTX, XLSX, HTML, Markdown, TXT (EasyOCR Fallback für unleserliche PDFs)
- **Knowledge Bases** — Thematische Sammlungen mit Sharing und Zugriffssteuerung
- **Agent Tool** — `knowledge_search` für kombinierte RAG- + Paperless-Suche im Agent Loop
- **Knowledge Graph** — Entity-Relation-Tripel mit Post-Extraction-Validierung, String-Similarity-Dedup, Bulk Cleanup API, Admin-Dashboard
- **Context Window** — Benachbarte Chunks werden automatisch zum Treffer hinzugefügt
### Proaktive Benachrichtigungen & Erinnerungen
- **Webhook-basiert** — Home Assistant / n8n → Renfield (Bearer Token Auth)
- **Semantische Deduplizierung** — Verhindert doppelte Benachrichtigungen via pgvector
- **Erinnerungen** — Zeitgesteuerte Reminder mit natürlichsprachlicher Eingabe
### Multi-Room Device System
- **Raspberry Pi Satellites** — Pi Zero 2 W + ReSpeaker 2-Mics HAT (~63€ pro Einheit)
- **Wake-Word-Erkennung** — Lokales OpenWakeWord, zentrale Verwaltung
- **Audio-Output-Routing** — TTS-Ausgabe auf optimales Gerät im Raum (Renfield, HA, DLNA)
- **IP-basierte Raumerkennung** — Automatischer Raum-Kontext für Befehle
### Präsenzerkennung
Raumbasierte Präsenzerkennung aus drei Quellen:
| Quelle | Auslöser | Latenz |
|--------|----------|--------|
| BLE-Scanning | Satellit erkennt Telefon/Uhr via Bluetooth | ~30s (Hysterese) |
| Voice Presence | Sprechererkennung identifiziert Nutzer | Sofort |
| Web Auth | Authentifizierter Nutzer mit Raumzuweisung | Sofort |
- **Privacy-aware TTS** — Benachrichtigungen respektieren Raumbelegung (public / personal / confidential)
- **Automation-Hooks** — `enter_room`, `leave_room`, `first_arrived`, `last_left` Events feuern Webhooks für n8n / Home Assistant
- **Presence Dashboard** — Echtzeit-Raumbelegung im Admin-UI
### Sicherheit & Zugriffskontrolle
- **RPBAC** — Role-Permission Based Access Control mit JWT (optional)
- **Rate Limiting** — WebSocket + REST API, konfigurierbare Limits
- **Circuit Breaker** — Automatische Ausfallsicherung für LLM und Agent
- **Secrets Management** — Docker Secrets in Produktion (`/run/secrets/`)
- **Trusted Proxies** — CIDR-basierte Proxy-Konfiguration
### Plattform
- **Progressive Web App** — Desktop, Tablet, Smartphone
- **Dark Mode** — Hell, Dunkel, System (folgt OS-Präferenz)
- **Mehrsprachigkeit** — Deutsch und Englisch (react-i18next)
- **Vollständig Offline** — Keine Cloud-Abhängigkeiten
- **Prometheus Metrics** — Opt-in `/metrics` Endpoint
## Architektur
```
┌──────────────────────────────────────────────────────────────────────────────┐
│ RENFIELD ECOSYSTEM │
├──────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Satellite │ │ Satellite │ │ Web Panel │ │
│ │ Wohnzimmer │ │ Küche │ │ Tablet │ │
│ │ Pi Zero 2 W │ │ Pi Zero 2 W │ │ (Browser) │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │ │
│ └────────┬─────────┴─────────┬────────┘ │
│ │ WebSocket │ │
│ ▼ ▼ │
│ ┌───────────────────────────────────────────────────────────────────────┐ │
│ │ Frontend (React PWA) │ │
│ │ Chat · Voice · Knowledge · Rooms · Cameras · Admin · Notifications │ │
│ └──────────────────────────┬────────────────────────────────────────────┘ │
│ │ WebSocket + REST │
│ ┌──────────────────────────▼────────────────────────────────────────────┐ │
│ │ Backend (FastAPI) │ │
│ │ │ │
│ │ ┌────────────────┐ ┌────────────────┐ ┌────────────────────────┐ │ │
│ │ │ Intent Recog. │ │ Agent Router │ │ Action Executor │ │ │
│ │ │ (Ranked, FB) │ │ (8 Roles) │ │ (MCP + Plugins) │ │ │
│ │ └────────────────┘ └────────────────┘ └────────────────────────┘ │ │
│ │ ┌────────────────┐ ┌────────────────┐ ┌────────────────────────┐ │ │
│ │ │ Memory Service │ │ Notification │ │ RAG Service │ │ │
│ │ │ (Long-term) │ │ Service │ │ (Hybrid Search) │ │ │
│ │ └────────────────┘ └────────────────┘ └────────────────────────┘ │ │
│ │ ┌────────┐ ┌────────┐ ┌─────────────┐ ┌──────────┐ ┌────────────┐ │ │
│ │ │Whisper │ │ Piper │ │RoomService │ │ Speaker │ │ Presence │ │ │
│ │ │ (STT) │ │ (TTS) │ │OutputRouting│ │ Recog. │ │ Detection │ │ │
│ │ └────────┘ └────────┘ └─────────────┘ └──────────┘ └────────────┘ │ │
│ └───────────────────────────────────────────────────────────────────────┘ │
│ │ │ │ │
│ ┌───────────▼────────────────────▼────────────────────▼─────────────────┐ │
│ │ PostgreSQL + pgvector + Redis │ │
│ │ Conversations · Memories · Documents · Embeddings · Notifications │ │
│ │ Rooms · Devices · Speakers · Feedback · Suppressions · Reminders │ │
│ └───────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌───────────▼───────────────────────────────────────────────────────────┐ │
│ │ MCP-Server & Externe Dienste │ │
│ │ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │ │
│ │ │ Ollama │ │Home │ │Frigate │ │ n8n │ │Weather │ │Search │ │ │
│ │ │ (LLM) │ │Assist. │ │ (NVR) │ │ MCP │ │ MCP │ │ MCP │ │ │
│ │ └────────┘ └────────┘ └────────┘ └────────┘ └────────┘ └────────┘ │ │
│ │ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │ │
│ │ │ News │ │Jellyfin│ │ DLNA │ │Paper- │ │Calendar│ │ │
│ │ │ MCP │ │ MCP │ │ MCP │ │less/ │ │ MCP │ │ │
│ │ │ │ │ │ │ (Host) │ │Email │ │ │ │ │
│ │ └────────┘ └────────┘ └────────┘ └────────┘ └────────┘ │ │
│ └───────────────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────────────┘
```
## Schnellstart
### Voraussetzungen
- Docker & Docker Compose
- Mindestens 16GB RAM (32GB empfohlen)
- Optional: NVIDIA GPU für bessere Performance
### Installation
1. **Repository klonen**
```bash
git clone renfield
cd renfield
```
2. **Umgebungsvariablen konfigurieren**
```bash
cp .env.example .env
nano .env
```
Wichtige Einstellungen:
```env
# Ollama (lokal oder extern)
OLLAMA_URL=http://ollama:11434
OLLAMA_CHAT_MODEL=qwen3:14b
# Home Assistant (optional)
HOME_ASSISTANT_URL=http://homeassistant.local:8123
HOME_ASSISTANT_TOKEN=dein_long_lived_access_token
# MCP aktivieren
MCP_ENABLED=true
```
3. **System starten**
```bash
# Entwicklung auf Mac
docker compose -f docker-compose.dev.yml up -d
# Produktion mit NVIDIA GPU
docker compose -f docker-compose.prod.yml up -d
# Produktion ohne GPU
docker compose -f docker-compose.prod-cpu.yml up -d
# Standard
docker compose up -d
```
4. **Ollama Modell laden**
```bash
docker exec -it renfield-ollama ollama pull qwen3:8b
```
> **Tipp:** Du kannst auch eine externe Ollama-Instanz (z.B. auf einem GPU-Server) nutzen.
> Setze `OLLAMA_URL=http://cuda.local:11434` in der `.env` Datei.
> Siehe [docs/EXTERNAL_OLLAMA.md](docs/EXTERNAL_OLLAMA.md) für Details.
### Zugriff
- **Web-Interface**: http://localhost:3000
- **API Dokumentation**: http://localhost:8000/docs
- **Backend API**: http://localhost:8000
## Docker Compose Varianten
| Datei | Verwendung | GPU | Beschreibung |
|-------|------------|-----|--------------|
| `docker-compose.yml` | Standard | Nein | Basis-Setup für die meisten Anwendungsfälle |
| `docker-compose.dev.yml` | Entwicklung | Nein | Mac-Entwicklung mit exponierten Debug-Ports |
| `docker-compose.prod.yml` | Produktion | Ja | NVIDIA GPU-Support, nginx mit SSL |
| `docker-compose.prod-cpu.yml` | Produktion | Nein | Produktion ohne GPU |
## Konfiguration
Alle Einstellungen via `.env`, geladen durch Pydantic Settings (`src/backend/utils/config.py`). Vollständige Referenz: [docs/ENVIRONMENT_VARIABLES.md](docs/ENVIRONMENT_VARIABLES.md)
### LLM (Multi-Modell)
Renfield unterstützt separate Modelle für verschiedene Aufgaben:
```env
OLLAMA_URL=http://ollama:11434
OLLAMA_CHAT_MODEL=qwen3:14b # Chat-Antworten
OLLAMA_INTENT_MODEL=qwen3:8b # Intent-Erkennung
OLLAMA_RAG_MODEL=qwen3:14b # RAG-Antworten
OLLAMA_EMBED_MODEL=nomic-embed-text # Embeddings (768 Dim.)
AGENT_MODEL= # Optional: Agent-Modell
AGENT_OLLAMA_URL= # Optional: Separate Ollama-Instanz
```
Siehe [docs/LLM_MODEL_GUIDE.md](docs/LLM_MODEL_GUIDE.md) für Modell-Empfehlungen.
### Integrationen (MCP)
```env
MCP_ENABLED=true # Master-Switch
WEATHER_ENABLED=true # + OPENWEATHER_API_KEY
SEARCH_ENABLED=true # + SEARXNG_API_URL
NEWS_ENABLED=true # + NEWSAPI_KEY
JELLYFIN_ENABLED=true # + JELLYFIN_URL, JELLYFIN_API_KEY
DLNA_MCP_ENABLED=true # + DLNA_MCP_URL (Host-Service)
N8N_MCP_ENABLED=true # + N8N_BASE_URL, N8N_API_KEY
HA_MCP_ENABLED=true # + HOME_ASSISTANT_URL, HOME_ASSISTANT_TOKEN
PAPERLESS_ENABLED=true # + PAPERLESS_API_URL, PAPERLESS_API_TOKEN
EMAIL_MCP_ENABLED=true # + config/mail_accounts.yaml
CALENDAR_ENABLED=true # + config/calendar_accounts.yaml
```
API-Keys in Produktion als Docker Secrets bereitstellen. Siehe [docs/SECRETS_MANAGEMENT.md](docs/SECRETS_MANAGEMENT.md).
### Weitere Schlüssel-Einstellungen
```env
# Agent System
AGENT_ENABLED=false # ReAct Agent Loop (opt-in)
AGENT_MAX_STEPS=12 # Max Reasoning-Schritte
# Konversations-Gedächtnis
MEMORY_ENABLED=false # Langzeit-Erinnerungen (opt-in)
MEMORY_CONTRADICTION_RESOLUTION=false # Widerspruchserkennung (opt-in)
# Proaktive Benachrichtigungen
PROACTIVE_ENABLED=false # Webhook-Benachrichtigungen (opt-in)
PROACTIVE_REMINDERS_ENABLED=false # Erinnerungen (opt-in)
# Authentifizierung
AUTH_ENABLED=false # RPBAC (opt-in)
# Präsenzerkennung
PRESENCE_ENABLED=false # Raum-Präsenzerkennung (opt-in)
# Knowledge Graph
KNOWLEDGE_GRAPH_ENABLED=false # Entity-Relation-Extraktion (opt-in)
# Proaktive Benachrichtigungen
NOTIFICATION_POLLER_ENABLED=false # MCP Notification Polling (opt-in)
# Monitoring
METRICS_ENABLED=false # Prometheus /metrics (opt-in)
```
## Entwicklung
### Befehle
```bash
make lint # Lint all code (ruff + eslint)
make format-backend # Format + auto-fix mit ruff
make test # Alle Tests
make test-backend # Backend-Tests (2.100+)
make test-frontend-react # React-Tests (Vitest + RTL)
make test-coverage # Tests mit Coverage-Report (fail-under=50%)
```
### Datenbank-Migrationen
```bash
docker exec -it renfield-backend alembic revision --autogenerate -m "description"
docker exec -it renfield-backend alembic upgrade head
```
### Debug & Admin
```bash
# Intent-Erkennung testen
curl -X POST "http://localhost:8000/debug/intent?message=Schalte das Licht ein"
# Home Assistant Keywords neu laden
curl -X POST "http://localhost:8000/admin/refresh-keywords"
# Alle Embeddings neu berechnen (nach Modell-Wechsel)
curl -X POST "http://localhost:8000/admin/reembed"
```
## API-Übersicht
20 Route-Module mit 100+ Endpunkten. Interaktive Dokumentation unter `/docs`.
| Bereich | Prefix | Beschreibung |
|---------|--------|--------------|
| Auth | `/api/auth` | Login, Register, JWT Refresh, Voice Auth |
| Chat | `/api/chat` | Nachrichten, Historie, Suche, Statistiken |
| Voice | `/api/voice` | STT (Whisper), TTS (Piper) |
| Knowledge | `/api/knowledge` | RAG: Upload, Search, Knowledge Bases, Sharing |
| Memory | `/api/memory` | Langzeit-Erinnerungen: CRUD, History, Audit Trail |
| Notifications | `/api/notifications` | Webhook, Acknowledge, Suppressions, Reminders |
| Feedback | `/api/feedback` | Intent-Korrekturen und Feedback Learning |
| MCP | `/api/mcp` | Server-Status, Tools, Refresh |
| Intents | `/api/intents` | Verfügbare Intents und Integrationen |
| Home Assistant | `/api/homeassistant` | Entity-Steuerung (via direkter API) |
| Camera | `/api/camera` | Frigate Events, Snapshots |
| Rooms | `/api/rooms` | Raum-CRUD, Geräte, HA-Sync |
| Speakers | `/api/speakers` | Sprechererkennung, Enrollment |
| Satellites | `/api/satellites` | Monitoring, Metriken, Logs |
| Settings | `/api/settings` | Wake-Word, Modell-Konfiguration |
| Preferences | `/api/preferences` | Sprach-Einstellungen |
| Users | `/api/users` | Benutzer-Verwaltung |
| Roles | `/api/roles` | Rollen-Verwaltung (RPBAC) |
| Tasks | `/api/tasks` | Task-Queue |
| Plugins | `/api/plugins` | Plugin-Verwaltung (Legacy) |
| WebSocket | `/ws`, `/ws/device`, `/ws/satellite` | Chat, Geräte, Satellites |
## Multi-Room Satellite System
Raspberry Pi Zero 2 W + ReSpeaker 2-Mics Pi HAT als Sprachassistenten in jedem Raum.
### Hardware pro Satellite (~63€)
| Komponente | Preis |
|------------|-------|
| Raspberry Pi Zero 2 W | ~18€ |
| ReSpeaker 2-Mics Pi HAT V2.0 | ~12€ |
| MicroSD Card 16GB | ~8€ |
| 5V/2A Netzteil | ~10€ |
| 3.5mm Lautsprecher | ~10€ |
| Gehäuse (optional) | ~5€ |
### Schnellstart
```bash
cd /opt/renfield-satellite
source venv/bin/activate
python -m renfield_satellite config/satellite.yaml
```
**Vollständige Anleitung:** [renfield-satellite/README.md](renfield-satellite/README.md)
## Fehlerbehebung
### Ollama lädt nicht
```bash
docker exec -it renfield-ollama ollama pull qwen3:8b
docker compose restart backend
```
### WebSocket Verbindung fehlgeschlagen
```bash
# CORS und Backend-Container prüfen
docker logs renfield-backend
```
### Satellite findet Backend nicht
```bash
# Zeroconf-Advertisement prüfen
docker compose logs backend | grep zeroconf
# Manuelle URL in satellite config setzen
# config/satellite.yaml:
server:
auto_discover: false
url: "ws://renfield.local:8000/ws/satellite"
```
### Intent-Erkennung ungenau
```bash
# HA-Keywords aktualisieren
curl -X POST "http://localhost:8000/admin/refresh-keywords"
# Intent direkt testen
curl -X POST "http://localhost:8000/debug/intent?message=DEINE_NACHRICHT"
```
### Embeddings nach Modellwechsel neu berechnen
```bash
curl -X POST "http://localhost:8000/admin/reembed"
# Re-embedded: RAG Chunks, Memories, Feedback Corrections, Notification Suppressions
```
## Weitere Dokumentation
| Dokument | Inhalt |
|----------|--------|
| [docs/FEATURES.md](docs/FEATURES.md) | Ausführliche Feature-Dokumentation |
| [docs/ENVIRONMENT_VARIABLES.md](docs/ENVIRONMENT_VARIABLES.md) | Vollständige Konfigurationsreferenz |
| [docs/LLM_MODEL_GUIDE.md](docs/LLM_MODEL_GUIDE.md) | Modell-Empfehlungen und Konfiguration |
| [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md) | Deployment-Anleitung |
| [docs/SECRETS_MANAGEMENT.md](docs/SECRETS_MANAGEMENT.md) | Docker Secrets für Produktion |
| [docs/SECURITY.md](docs/SECURITY.md) | Security Headers, CSP, Abhängigkeitssicherheit |
| [docs/ACCESS_CONTROL.md](docs/ACCESS_CONTROL.md) | RPBAC-Zugriffskontrolle & MCP-Berechtigungen |
| [docs/SPEAKER_RECOGNITION.md](docs/SPEAKER_RECOGNITION.md) | Sprechererkennung |
| [docs/OUTPUT_ROUTING.md](docs/OUTPUT_ROUTING.md) | Audio-Output-Routing |
| [docs/PROACTIVE_NOTIFICATIONS.md](docs/PROACTIVE_NOTIFICATIONS.md) | Webhook-Benachrichtigungen & proaktive Alerts |
| [docs/MULTILANGUAGE.md](docs/MULTILANGUAGE.md) | Mehrsprachigkeit (i18n) |
| [docs/WAKEWORD_CONFIGURATION.md](docs/WAKEWORD_CONFIGURATION.md) | Wake-Word-Erkennung konfigurieren |
| [docs/EXTERNAL_OLLAMA.md](docs/EXTERNAL_OLLAMA.md) | Externe Ollama-Instanzen |
| [docs/SATELLITE_MONITORING.md](docs/SATELLITE_MONITORING.md) | Satellite-Monitoring |
| [docs/SATELLITE_OTA_UPDATES.md](docs/SATELLITE_OTA_UPDATES.md) | Satellite Over-the-Air-Updates |
| [docs/AUDIO_CAPTURE_4MIC.md](docs/AUDIO_CAPTURE_4MIC.md) | ReSpeaker 4-Mic-Array-Unterstützung |
| [CLAUDE.md](CLAUDE.md) | Entwickler-Referenz (Architektur, Patterns, Commands) |
## Danksagungen
- [Ollama](https://ollama.ai/) — Lokales LLM
- [Whisper](https://github.com/openai/whisper) — Speech-to-Text
- [Piper](https://github.com/rhasspy/piper) — Text-to-Speech
- [SpeechBrain](https://speechbrain.github.io/) — Speaker Recognition (ECAPA-TDNN)
- [IBM Docling](https://github.com/DS4SD/docling) — Document Processing für RAG
- [pgvector](https://github.com/pgvector/pgvector) — Vector Similarity Search
- [Home Assistant](https://www.home-assistant.io/) — Smart Home Platform
- [Frigate](https://frigate.video/) — NVR mit Objekterkennung
- [n8n](https://n8n.io/) — Workflow Automation
- [SearXNG](https://docs.searxng.org/) — Metasearch Engine
- [OpenWakeWord](https://github.com/dscripka/openWakeWord) — Wake Word Detection
## Lizenz
MIT License — siehe LICENSE Datei
## Support
Bei Fragen oder Problemen erstelle bitte ein Issue im Repository.
---
**Hinweis**: Dieses Projekt ist für den privaten Gebrauch konzipiert. Stelle sicher, dass du die Datenschutzrichtlinien deines Landes beachtest, insbesondere bei der Kamera-Überwachung.