PayShield-ML / src /api /config.py
Sibi Krishnamoorthy
prod
8a08300
"""
API Configuration.
Environment-based configuration using Pydantic settings.
"""
from pydantic_settings import BaseSettings
from typing import Optional
class Settings(BaseSettings):
"""
Application settings loaded from environment variables.
Usage:
>>> from src.api.config import settings
>>> print(settings.model_path)
"""
# Model paths
model_path: str = "models/fraud_model.pkl"
threshold_path: str = "models/threshold.json"
# Redis configuration
redis_host: str = "localhost"
redis_port: int = 6379
redis_db: int = 0
redis_password: Optional[str] = None
# Feature flags
shadow_mode: bool = False
enable_explainability: bool = False
# Performance
max_latency_ms: float = 50.0
# API metadata
api_version: str = "1.0.0"
api_title: str = "PayShield Fraud Detection API"
model_config = {
"env_file": ".env",
"case_sensitive": False,
"extra": "ignore", # Ignore extra fields in .env
}
# Global settings instance
settings = Settings()
__all__ = ["settings", "Settings"]