| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- from pydantic_settings import BaseSettings
- from typing import List
- class Settings(BaseSettings):
- app_name: str = "ai-flow"
- # 日志级别
- log_level: str = "INFO"
- # Redis
- redis_host: str
- redis_port: int
- redis_password: str
- redis_db: int = 0
- redis_timeout: int = 2000
- # 存储后端: "redis" 或 "local"
- store_backend: str = "redis"
- # Redis Pub/Sub
- redis_publish_enabled: bool = True
- redis_publish_channel: str = "WORKFLOW_TASK"
- # 工作流线程池
- executor_pool_size: int = 8
- # 模板缓存
- template_cache_enabled: bool = True
- template_cache_dir: str = "data/templates"
- template_download_timeout: int = 30000
- template_download_max_size: int = 104857600
- # API Key 认证
- api_auth_enabled: bool = False
- api_auth_keys: List[str] = []
- api_auth_header_name: str = "Authorization"
- api_auth_prefix: str = "Bearer"
- api_auth_error_message: str = "Invalid API Key"
- # 本地存储
- task_store_data_dir: str = "data/tasks"
- # 阿里云 OSS
- aliyun_endpoint: str
- aliyun_access_key_id: str
- aliyun_access_key_secret: str
- aliyun_bucket_name: str
- # Google Cloud Storage
- gcs_project_id: str
- gcs_bucket_name: str
- gcs_credentials_json: str = ""
- gcs_credentials_file: str = ""
- # Gemini API
- gemini_api_key: str
- gemini_base_url: str
- gemini_nano_banana_model: str
- gemini_veo3_model: str
- # Kontext (BFL) API
- kontext_api_key: str
- kontext_pro_url: str
- kontext_max_url: str
- # Keling API
- keling_app_key: str
- keling_app_secret: str
- keling_image2video_url: str
- keling_video2effect_url: str
- # SeedDance / SeedDream API
- seed_api_key: str
- seedance_video_url: str
- seedream_image_url: str
- # 资源路径
- resources_path: str = "resources"
- model_config = {"env_prefix": "AI_FLOW_", "env_file": ".env"}
- settings = Settings()
|