modalDeploy/src/BowongModalFunctions/config.py

38 lines
2.7 KiB
Python

from typing import Optional, Any
from pydantic import Field, HttpUrl
from pydantic_settings import BaseSettings, SettingsConfigDict
class WorkerConfig(BaseSettings):
video_downloader_concurrency: int = Field(default=10, description="处理缓存任务的并行数")
ffmpeg_worker_concurrency: int = Field(default=20, description="处理视频任务的并行数")
ffmpeg_slice_worker_concurrency: int = Field(default=200, description="处理视频切割任务的并行数")
local_output_mount: str = Field(default="/mnt/outputs", description="本地结果挂载路径前缀")
S3_region: str = Field(default='ap-northeast-2', description="S3挂载桶的地域")
S3_bucket_name: str = Field(default='modal-media-cache', description="集群挂载的S3存储桶")
S3_mount_dir: str = Field(default='/mntS3', description="集群S3存储桶挂载在本地的根目录")
Cloudfront_cdn_endpoint: str = Field(default='https://d2nj71io21vkj2.cloudfront.net',
description="集群挂载S3存储桶的对应AWS Cloudfront CDN")
S3_cdn_endpoint: str = Field(default="https://cdn.roasmax.cn",
description="优先使用的集群挂载S3存储桶的对应CDN")
modal_kv_name: str = Field(default='media-cache', description="Modal视频缓存KV库")
modal_product_kv_name: str = Field(default='live-product-cache', description="Modal抖音直播间商品缓存KV库")
modal_environment: str = Field(default="dev", description="Modal worker运行环境")
modal_app_name: str = Field(default='bowong-ai-video', description="Modal App集群名称")
modal_is_local: bool = Field(default=False, description="本地开发环境")
comfyui_s3_input: Optional[str] = Field(default="comfyui-input", description="ComfyUI input S3文件夹名")
comfyui_s3_output: Optional[str] = Field(default="comfyui-output", description="ComfyUI output S3文件夹名")
langfuse_host: HttpUrl = Field(default="https://us.cloud.langfuse.com", description="Langfuse host endpoint")
langfuse_public_key: str = Field(default="pk-lf-15f9d809-0bf6-4a84-ae1c-18f7a7d927c7",
description="Langfuse public key")
langfuse_secret_key: str = Field(default="sk-lf-dd20cb0b-ef2e-49f6-80f0-b2d9cff1bb11",
description="Langfuse secret key")
api_version: str = Field(default="0.1.7", description="API接口版本")
modal_config: Any = SettingsConfigDict(json_schema_extra={
"description": "可通过本地环境变量加载对应Field, 不区分大小写, Modal创建App的Image时可通过dotenv加载指定.env文件写入到Docker Image的系统变量",
})