brief-rags-bench/app/config.py

58 lines
1.4 KiB
Python

"""Application configuration loaded from environment variables."""
from pydantic_settings import BaseSettings, SettingsConfigDict
class Settings(BaseSettings):
"""Application settings loaded from .env file."""
model_config = SettingsConfigDict(
env_file=".env",
env_file_encoding="utf-8",
case_sensitive=False,
)
# Application settings
APP_NAME: str = "Brief Bench API"
DEBUG: bool = False
# JWT Authentication
JWT_SECRET_KEY: str
JWT_ALGORITHM: str = "HS256"
JWT_EXPIRE_MINUTES: int = 43200 # 30 days
# DB API Service (external)
DB_API_URL: str
DB_API_TIMEOUT: int = 30
# RAG Backend - IFT Environment
IFT_RAG_HOST: str
IFT_RAG_PORT: int
IFT_RAG_ENDPOINT: str
IFT_RAG_CERT_CA: str = ""
IFT_RAG_CERT_KEY: str = ""
IFT_RAG_CERT_CERT: str = ""
# RAG Backend - PSI Environment
PSI_RAG_HOST: str
PSI_RAG_PORT: int
PSI_RAG_ENDPOINT: str
PSI_RAG_CERT_CA: str = ""
PSI_RAG_CERT_KEY: str = ""
PSI_RAG_CERT_CERT: str = ""
# RAG Backend - PROD Environment
PROD_RAG_HOST: str
PROD_RAG_PORT: int
PROD_RAG_ENDPOINT: str
PROD_RAG_CERT_CA: str = ""
PROD_RAG_CERT_KEY: str = ""
PROD_RAG_CERT_CERT: str = ""
# Request Timeouts
RAG_REQUEST_TIMEOUT: int = 1800 # 30 minutes in seconds
# Global settings instance
settings = Settings()