from pydantic_settings import BaseSettings class Settings(BaseSettings): # 数据库配置 database_url: str = "" # Celery配置 celery_broker_url: str = "redis://localhost:6379/0" celery_result_backend: str = "redis://localhost:6379/0" celery_task_serializer: str = "json" celery_result_serializer: str = "json" celery_accept_content: list = ["json"] celery_timezone: str = "UTC" celery_enable_utc: bool = True # 业务配置 count_threshold: int = 3 # count阈值,大于等于此值直接返回 external_api_enabled: bool = False # 是否启用外部API调用 external_api_retry_max: int = 3 # 外部API最大重试次数 external_api_url: str = "" # 日志配置 log_level: str = "INFO" # DEBUG, INFO, WARNING, ERROR, CRITICAL log_file: str = "logs/app.log" # 日志文件路径 log_max_bytes: int = 10 * 1024 * 1024 # 10MB log_backup_count: int = 5 # 备份文件数量 log_format: str = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" log_date_format: str = "%Y-%m-%d %H:%M:%S" # 应用配置 app_name: str = "AI Talk Callback API" environment: str = "production" # 环境: production, test, development debug: bool = False disable_docs: bool = False class Config: env_file = ".env" case_sensitive = False settings = Settings()