LLM_Monitor / sidecar /config.py
potato-pzy
fix: revert default Gemini model back to gemini-3.1-flash-lite
a076686
Raw
History Blame Contribute Delete
3.49 kB
"""
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")