A previous `git pull --rebase origin main` dropped 177 local commits,
losing 3400+ files across admin-v2, backend, studio-v2, website,
klausur-service, and many other services. The partial restore attempt
(660295e2) only recovered some files.
This commit restores all missing files from pre-rebase ref 98933f5e
while preserving post-rebase additions (night-scheduler, night-mode UI,
NightModeWidget dashboard integration).
Restored features include:
- AI Module Sidebar (FAB), OCR Labeling, OCR Compare
- GPU Dashboard, RAG Pipeline, Magic Help
- Klausur-Korrektur (8 files), Abitur-Archiv (5+ files)
- Companion, Zeugnisse-Crawler, Screen Flow
- Full backend, studio-v2, website, klausur-service
- All compliance SDKs, agent-core, voice-service
- CI/CD configs, documentation, scripts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
136 lines
4.3 KiB
Plaintext
136 lines
4.3 KiB
Plaintext
# BreakPilot Backend Environment Variables
|
|
# Kopiere diese Datei nach .env und passe die Werte an
|
|
|
|
# =============================================================================
|
|
# LLM Gateway Konfiguration
|
|
# =============================================================================
|
|
|
|
# Server-Einstellungen
|
|
LLM_GATEWAY_HOST=0.0.0.0
|
|
LLM_GATEWAY_PORT=8002
|
|
LLM_GATEWAY_DEBUG=false
|
|
|
|
# API Keys für Gateway-Zugriff (komma-separiert)
|
|
# Generiere mit: openssl rand -hex 32
|
|
LLM_API_KEYS=your-api-key-1,your-api-key-2
|
|
|
|
# JWT Secret (gleicher Wert wie Consent Service für SSO)
|
|
JWT_SECRET=your-jwt-secret
|
|
|
|
# Rate Limiting
|
|
LLM_RATE_LIMIT_RPM=60
|
|
LLM_RATE_LIMIT_TPM=100000
|
|
|
|
# Logging
|
|
LLM_LOG_LEVEL=INFO
|
|
LLM_AUDIT_LOGGING=true
|
|
|
|
# Backend Priorität (Reihenfolge für Fallback)
|
|
LLM_BACKEND_PRIORITY=ollama,vllm,anthropic
|
|
|
|
# =============================================================================
|
|
# Ollama Backend (lokal)
|
|
# =============================================================================
|
|
|
|
OLLAMA_BASE_URL=http://localhost:11434
|
|
OLLAMA_DEFAULT_MODEL=llama3.1:8b
|
|
OLLAMA_TIMEOUT=120
|
|
OLLAMA_ENABLED=true
|
|
|
|
# =============================================================================
|
|
# vLLM Backend (remote, z.B. vast.ai)
|
|
# =============================================================================
|
|
|
|
# VLLM_BASE_URL=http://gpu-server:8000
|
|
# VLLM_API_KEY=your-vllm-api-key
|
|
# VLLM_DEFAULT_MODEL=meta-llama/Meta-Llama-3.1-8B-Instruct
|
|
# VLLM_TIMEOUT=120
|
|
# VLLM_ENABLED=false
|
|
|
|
# =============================================================================
|
|
# Anthropic Claude API (Fallback)
|
|
# =============================================================================
|
|
|
|
ANTHROPIC_API_KEY=your-anthropic-api-key
|
|
ANTHROPIC_DEFAULT_MODEL=claude-3-5-sonnet-20241022
|
|
ANTHROPIC_TIMEOUT=120
|
|
ANTHROPIC_ENABLED=true
|
|
|
|
# =============================================================================
|
|
# Tool Gateway (Web Search mit PII-Schutz)
|
|
# =============================================================================
|
|
|
|
# Tavily API für Web-Suche
|
|
TAVILY_API_KEY=your-tavily-api-key
|
|
TAVILY_BASE_URL=https://api.tavily.com
|
|
TAVILY_TIMEOUT=30
|
|
TAVILY_MAX_RESULTS=5
|
|
TAVILY_SEARCH_DEPTH=basic
|
|
TAVILY_INCLUDE_ANSWER=true
|
|
TAVILY_INCLUDE_IMAGES=false
|
|
|
|
# PII Redaktion (automatische Entfernung personenbezogener Daten)
|
|
PII_REDACTION_ENABLED=true
|
|
|
|
# =============================================================================
|
|
# Alerts Agent (Google Alerts Relevanz-Filterung)
|
|
# =============================================================================
|
|
|
|
# Agent aktivieren
|
|
ALERTS_AGENT_ENABLED=false
|
|
|
|
# LLM-basiertes Scoring aktivieren (sonst Keyword-basiert)
|
|
ALERTS_USE_LLM=false
|
|
|
|
# LLM Gateway URL für Scoring (Standard: lokaler Server)
|
|
LLM_GATEWAY_URL=http://localhost:8000/llm
|
|
|
|
# Google Alerts RSS Feed URLs (komma-separiert)
|
|
# Erstelle Feeds unter: https://www.google.com/alerts
|
|
# Wähle "Zustellung an: RSS-Feed"
|
|
# ALERTS_RSS_FEEDS=https://google.com/alerts/feeds/.../...,https://google.com/alerts/feeds/.../...
|
|
|
|
# Feed Labels (komma-separiert, gleiche Reihenfolge wie FEEDS)
|
|
# ALERTS_RSS_LABELS=Inklusion Bayern,Datenschutz Schule,Schulrecht
|
|
|
|
# Fetch-Intervall in Minuten
|
|
ALERTS_FETCH_INTERVAL=60
|
|
|
|
# =============================================================================
|
|
# vast.ai GPU Infrastructure
|
|
# =============================================================================
|
|
|
|
# vast.ai API Key (von https://cloud.vast.ai/cli/)
|
|
# Wenn gesetzt, werden GPU-Kontrollen im Admin Panel aktiviert
|
|
# VAST_API_KEY=your-vast-api-key
|
|
|
|
# Instance ID (numerische ID deiner vast.ai Instanz)
|
|
# VAST_INSTANCE_ID=123456
|
|
|
|
# Control API Key (Admin-Schutz für Start/Stop Endpoints)
|
|
# Generiere mit: openssl rand -hex 32
|
|
# CONTROL_API_KEY=your-control-api-key
|
|
|
|
# Health Check Konfiguration
|
|
VAST_HEALTH_PORT=8001
|
|
VAST_HEALTH_PATH=/health
|
|
VAST_WAIT_TIMEOUT_S=600
|
|
|
|
# Auto-Shutdown (stoppt Instanz bei Inaktivität)
|
|
VAST_AUTO_SHUTDOWN=true
|
|
VAST_AUTO_SHUTDOWN_MINUTES=30
|
|
|
|
# State Persistence (Pfade für Status und Audit Log)
|
|
# VAST_STATE_PATH=./vast_state.json
|
|
# VAST_AUDIT_PATH=./vast_audit.log
|
|
|
|
# =============================================================================
|
|
# Bestehendes Backend
|
|
# =============================================================================
|
|
|
|
# Consent Service URL
|
|
CONSENT_SERVICE_URL=http://localhost:8081
|
|
|
|
# OpenAI API Key (für andere Features wie ai_processor.py)
|
|
OPENAI_API_KEY=your-openai-api-key
|