63 lines
1.6 KiB
Python
63 lines
1.6 KiB
Python
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8")
|
|
|
|
APP_NAME: str = "VideoGen API"
|
|
APP_VERSION: str = "1.0.0"
|
|
DEBUG: bool = False
|
|
SECRET_KEY: str = "change-me"
|
|
|
|
DATABASE_URL: str = "sqlite+aiosqlite:///./videogen.db"
|
|
|
|
REDIS_URL: str = "" # Leave empty to disable Redis (rate limiting, captcha)
|
|
|
|
JWT_ALGORITHM: str = "HS256"
|
|
JWT_EXPIRE_MINUTES: int = 1440
|
|
JWT_EXPIRE_REMEMBER_MINUTES: int = 10080
|
|
|
|
SEEDANCE_API_KEY: str = ""
|
|
SEEDANCE_API_BASE: str = "https://ark.cn-beijing.volces.com/api/v3"
|
|
SEEDANCE_CALLBACK_URL: str = ""
|
|
|
|
LLM_API_BASE: str = "https://api.openai.com/v1"
|
|
LLM_API_KEY: str = ""
|
|
LLM_MODEL: str = "gpt-4o"
|
|
LLM_MOCK: bool = True
|
|
|
|
ENCRYPTION_KEY: str = "changeme-32bytes-base64-key-here!!"
|
|
|
|
# SMS settings
|
|
SMS_API_URL: str = ""
|
|
SMS_API_KEY: str = ""
|
|
SMS_SIGN_NAME: str = "VideoGen"
|
|
SMS_TEMPLATE_CODE: str = "SMS_001"
|
|
SMS_MOCK: bool = True
|
|
|
|
# Payment settings
|
|
WECHAT_MCH_ID: str = ""
|
|
WECHAT_API_KEY: str = ""
|
|
WECHAT_CERT_PATH: str = ""
|
|
ALIPAY_APP_ID: str = ""
|
|
ALIPAY_PRIVATE_KEY: str = ""
|
|
ALIPAY_PUBLIC_KEY: str = ""
|
|
PAYMENT_MOCK: bool = True
|
|
|
|
STORAGE_TYPE: str = "local"
|
|
STORAGE_LOCAL_PATH: str = "./storage/videos"
|
|
STORAGE_IMAGE_LOCAL_PATH: str = "./storage/images"
|
|
UPLOAD_LOCAL_PATH: str = "./storage/uploads"
|
|
|
|
|
|
CAPTCHA_ENABLED: bool = True
|
|
|
|
BASE_URL: str = "http://ceshi.apiforeign.minzhong.cn"
|
|
|
|
CORS_ORIGINS: list[str] = ["*"]
|
|
|
|
RATE_LIMIT_ENABLED: bool = True
|
|
|
|
|
|
settings = Settings()
|