feat: control-pipeline Service aus Compliance-Repo migriert
Control-Pipeline (Pass 0a/0b, BatchDedup, Generator) als eigenstaendiger Service in Core, damit Compliance-Repo unabhaengig refakturiert werden kann. Schreibt weiterhin ins compliance-Schema der shared PostgreSQL. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
67
control-pipeline/config.py
Normal file
67
control-pipeline/config.py
Normal file
@@ -0,0 +1,67 @@
|
||||
import os
|
||||
|
||||
|
||||
class Settings:
|
||||
"""Environment-based configuration for control-pipeline."""
|
||||
|
||||
# Database (compliance schema)
|
||||
DATABASE_URL: str = os.getenv(
|
||||
"DATABASE_URL",
|
||||
"postgresql://breakpilot:breakpilot123@localhost:5432/breakpilot_db",
|
||||
)
|
||||
SCHEMA_SEARCH_PATH: str = os.getenv(
|
||||
"SCHEMA_SEARCH_PATH", "compliance,core,public"
|
||||
)
|
||||
|
||||
# Qdrant (vector search for dedup)
|
||||
QDRANT_URL: str = os.getenv("QDRANT_URL", "http://localhost:6333")
|
||||
QDRANT_API_KEY: str = os.getenv("QDRANT_API_KEY", "")
|
||||
|
||||
# Embedding Service
|
||||
EMBEDDING_SERVICE_URL: str = os.getenv(
|
||||
"EMBEDDING_SERVICE_URL", "http://embedding-service:8087"
|
||||
)
|
||||
|
||||
# LLM - Anthropic
|
||||
ANTHROPIC_API_KEY: str = os.getenv("ANTHROPIC_API_KEY", "")
|
||||
CONTROL_GEN_ANTHROPIC_MODEL: str = os.getenv(
|
||||
"CONTROL_GEN_ANTHROPIC_MODEL", "claude-sonnet-4-6"
|
||||
)
|
||||
DECOMPOSITION_LLM_MODEL: str = os.getenv(
|
||||
"DECOMPOSITION_LLM_MODEL", "claude-haiku-4-5-20251001"
|
||||
)
|
||||
CONTROL_GEN_LLM_TIMEOUT: int = int(
|
||||
os.getenv("CONTROL_GEN_LLM_TIMEOUT", "180")
|
||||
)
|
||||
|
||||
# LLM - Ollama (fallback)
|
||||
OLLAMA_URL: str = os.getenv(
|
||||
"OLLAMA_URL", "http://host.docker.internal:11434"
|
||||
)
|
||||
CONTROL_GEN_OLLAMA_MODEL: str = os.getenv(
|
||||
"CONTROL_GEN_OLLAMA_MODEL", "qwen3.5:35b-a3b"
|
||||
)
|
||||
|
||||
# SDK Service (for RAG search proxy)
|
||||
SDK_URL: str = os.getenv(
|
||||
"SDK_URL", "http://ai-compliance-sdk:8090"
|
||||
)
|
||||
|
||||
# Auth
|
||||
JWT_SECRET: str = os.getenv("JWT_SECRET", "")
|
||||
|
||||
# Server
|
||||
PORT: int = int(os.getenv("PORT", "8098"))
|
||||
LOG_LEVEL: str = os.getenv("LOG_LEVEL", "INFO")
|
||||
ENVIRONMENT: str = os.getenv("ENVIRONMENT", "development")
|
||||
|
||||
# Pipeline
|
||||
DECOMPOSITION_BATCH_SIZE: int = int(
|
||||
os.getenv("DECOMPOSITION_BATCH_SIZE", "5")
|
||||
)
|
||||
DECOMPOSITION_LLM_TIMEOUT: int = int(
|
||||
os.getenv("DECOMPOSITION_LLM_TIMEOUT", "120")
|
||||
)
|
||||
|
||||
|
||||
settings = Settings()
|
||||
Reference in New Issue
Block a user