"""应用配置""" from pydantic_settings import BaseSettings from functools import lru_cache class Settings(BaseSettings): """应用设置""" # 应用 APP_NAME: str = "秒思智能审核平台" APP_VERSION: str = "1.0.0" DEBUG: bool = False # 数据库 DATABASE_URL: str = "postgresql+asyncpg://postgres:postgres@localhost:5432/miaosi" # Redis REDIS_URL: str = "redis://localhost:6379/0" # JWT SECRET_KEY: str = "your-secret-key-change-in-production" ALGORITHM: str = "HS256" ACCESS_TOKEN_EXPIRE_MINUTES: int = 30 # AI 服务(使用 OneAPI/OneInAll 等中转服务商,不直连厂商) # 中转服务商统一了不同 AI 厂商的接口,只需配置中转商的 API AI_PROVIDER: str = "oneapi" # oneapi | oneinall | openrouter 等中转服务商 AI_API_KEY: str = "" # 中转服务商的 API Key AI_API_BASE_URL: str = "" # 中转服务商的 Base URL,如 https://api.oneinall.ai/v1 # 阿里云 OSS 配置 OSS_ACCESS_KEY_ID: str = "" OSS_ACCESS_KEY_SECRET: str = "" OSS_ENDPOINT: str = "oss-cn-hangzhou.aliyuncs.com" OSS_BUCKET_NAME: str = "miaosi-files" OSS_BUCKET_DOMAIN: str = "" # 公开访问域名,如 https://miaosi-files.oss-cn-hangzhou.aliyuncs.com # 文件上传限制 MAX_FILE_SIZE_MB: int = 500 # 最大文件大小 500MB class Config: env_file = ".env" case_sensitive = True @lru_cache() def get_settings() -> Settings: """获取配置单例""" return Settings() settings = get_settings()