Spaces:
Runtime error
Runtime error
| """ | |
| sidecar/config.py β Centralised configuration for the GenAI Shield Sidecar. | |
| All runtime behaviour is controlled via environment variables. | |
| Defaults are safe for local development. | |
| """ | |
| import os | |
| # ββ Sidecar server ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| SIDECAR_HOST = os.getenv("SIDECAR_HOST", "0.0.0.0") | |
| SIDECAR_PORT = int(os.getenv("SIDECAR_PORT", "5050")) | |
| # ββ LLM backend βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| LLM_BACKEND = os.getenv("LLM_BACKEND", "gemini") # "gemini" | "openai" | |
| GEMINI_API_KEY = os.getenv("GEMINI_API_KEY", "") | |
| GEMINI_MODEL = os.getenv("GEMINI_MODEL", "gemini-3.1-flash-lite") | |
| OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "") | |
| OPENAI_BASE_URL = os.getenv("OPENAI_BASE_URL", "https://api.openai.com/v1") | |
| OPENAI_MODEL = os.getenv("OPENAI_MODEL", "gpt-4o-mini") | |
| # ββ System prompt βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| SYSTEM_PROMPT = os.getenv( | |
| "GENAI_SYSTEM_PROMPT", | |
| "You are a helpful AI assistant. Be concise, accurate, and professional.", | |
| ) | |
| # ββ Shield thresholds βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| GUARD_BLOCK_THRESHOLD = float(os.getenv("GUARD_BLOCK_THRESHOLD", "0.85")) | |
| GUARD_FLAG_THRESHOLD = float(os.getenv("GUARD_FLAG_THRESHOLD", "0.50")) | |
| MONITOR_BLOCK_THRESHOLD = int(os.getenv("MONITOR_BLOCK_THRESHOLD", "40")) | |
| # ββ Gate behaviour ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Max ms to wait for guard verdict before letting buffered tokens through anyway | |
| # (safety valve β guard should always be <300ms in practice) | |
| GATE_GUARD_TIMEOUT_SEC = float(os.getenv("GATE_GUARD_TIMEOUT_SEC", "3.0")) | |
| # ββ Post-monitor thread pool ββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| MONITOR_WORKERS = int(os.getenv("MONITOR_WORKERS", "4")) | |
| # ββ Sentence splitter βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Minimum characters before a sentence boundary is declared | |
| SENTENCE_MIN_CHARS = int(os.getenv("SENTENCE_MIN_CHARS", "20")) | |
| # ββ Model path ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| PROMPT_GUARD_MODEL_DIR = os.getenv( | |
| "PROMPT_GUARD_MODEL_DIR", | |
| "models/Llama-Prompt-Guard-2-86M", | |
| ) | |
| # ββ Logging βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO") | |