# Port bei Bedarf anpassen APP_ENV=dev HOST=0.0.0.0 PORT=8080 LOG_LEVEL=info # Secret nur ueber die Umgebung setzen (nicht hier eintragen), z. B. export in ~/.bashrc OPENROUTER_API_KEY= # Satzweises Vorlesen (Audio-Streaming) als Default fuer WebSocket-Turns. # false = Antwort erst komplett synthetisieren, dann abspielen. AUDIO_STREAM_DEFAULT=true # Text-Normalisierung vor dem TTS (Aussprache): auto|full|light|off. # auto = piper bekommt 'full' (Ordinalia/Einheiten/Abk./Lexikon), Cloud-TTS 'light' # (nur Glaettung; Cloud spricht Zahlen/Abkuerzungen selbst gut). Lexikon: # config/pronunciation.de.yaml (erweitert die eingebauten Defaults). TTS_NORMALIZE_LEVEL=auto # --- Authentifizierung ----------------------------------------------------- # AUTH_ENABLED=true (Standard) schuetzt chat/speak/transcribe/sessions per Bearer-Token. # Fuer lokale Entwicklung/Tests auf false setzen (dann gilt ein anonymer Nutzer). AUTH_ENABLED=true # Schluessel fuer die Nutzerverwaltung (POST /api/admin/users). Nur ueber die Umgebung. ADMIN_API_KEY= # --- Zentrale Konfiguration / Profile ------------------------------------- # Aktives Profil aus config/voice-assistant.toml waehlen: local-dev | hybrid | cloud # (leer lassen = nur Defaults/ENV). Eigener Pfad via VA_CONFIG_FILE. VA_PROFILE= # VA_CONFIG_FILE=config/voice-assistant.toml # Hinweis zur Praezedenz: ENV gewinnt ueber die TOML-Datei. Die DEFAULT_*_PROVIDER- # Zeilen unten ueberschreiben daher ein gesetztes VA_PROFILE. Wer profilbasiert # umschalten will, sollte sie auskommentiert lassen. OPENROUTER_STT_MODEL=openai/whisper-large-v3 # Stimme haengt vom Modell ab (Gemini: Zephyr/Puck/Kore/...; OpenAI: alloy/echo/nova/...). # Stimmenliste + Umstellen pro Aufruf: siehe BEDIENUNGSANLEITUNG ("Stimme des Cloud-TTS"). OPENROUTER_TTS_MODEL=openai/gpt-4o-mini-tts OPENROUTER_TTS_VOICE=alloy OPENROUTER_LLM_MODEL=openai/gpt-4.1-mini DEFAULT_LANGUAGE=de DEFAULT_INPUT_ENDPOINT=local-default DEFAULT_OUTPUT_ENDPOINT=local-default # DEFAULT_STT_PROVIDER=openrouter # DEFAULT_LLM_PROVIDER=local-openai-compatible # DEFAULT_TTS_PROVIDER=openrouter LOCAL_LLM_BASE_URL=http://127.0.0.1:11434/v1 LOCAL_LLM_API_KEY=dummy LOCAL_LLM_MODEL=llama3.1 # --- Lokales STT (faster-whisper; nur mit pip install -e .[local] ) --------- FASTER_WHISPER_MODEL=base # tiny|base|small|medium|large-v3 FASTER_WHISPER_DEVICE=auto # auto|cpu|cuda FASTER_WHISPER_COMPUTE_TYPE=default # default|int8|float16|int8_float16 # --- Lokales TTS (piper; Binary + Stimmmodell noetig) ------------------------ # Aktivieren z. B. mit DEFAULT_TTS_PROVIDER=piper (oder --tts-provider piper). # Stimmen liegen als .onnx (+ .onnx.json) im Voices-Verzeichnis. # Installierte Stimmen anzeigen: ls ~/.local/share/piper/voices/*.onnx # Weitere laden: von huggingface 'rhasspy/piper-voices' nach PIPER_VOICES_DIR kopieren. PIPER_BIN=piper # Pfad/Name des piper-Binaries PIPER_VOICES_DIR=~/.local/share/piper/voices # Verzeichnis der .onnx-Stimmen PIPER_VOICE=de_DE-thorsten-high # Stimmmodell (ohne .onnx) oder voller Pfad TTS_SAMPLE_RATE=24000 # Ziel-Sample-Rate (ffmpeg resampelt bei Bedarf) # --- Resilienz: Fallback-Ketten (kommaseparierte Provider-Namen) ------------ # Faellt der primaere Provider aus, uebernimmt der naechste. # STT_FALLBACK=faster-whisper # LLM_FALLBACK=local-openai-compatible # TTS_FALLBACK=piper # --- Betrieb: Kontingent & Notfall ----------------------------------------- DAILY_REQUEST_LIMIT=0 # Anfragen pro Nutzer/Tag (0 = unbegrenzt) # EMERGENCY_WEBHOOK_URL=https://example.org/alert # optionale Eskalation