56 lines
2.1 KiB
Python
56 lines
2.1 KiB
Python
"""PPT Worker 配置模块"""
|
|
|
|
import os
|
|
from pathlib import Path
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
|
|
class Config:
|
|
# 服务
|
|
HOST: str = os.getenv("WORKER_HOST", "0.0.0.0")
|
|
PORT: int = int(os.getenv("WORKER_PORT", "8090"))
|
|
CONCURRENCY: int = int(os.getenv("WORKER_CONCURRENCY", "2"))
|
|
|
|
# 数据库
|
|
DATABASE_URL: str = os.getenv("DATABASE_URL", "postgres://postgres:postgres@localhost:5432/govai")
|
|
|
|
# Redis
|
|
REDIS_URL: str = os.getenv("REDIS_URL", "redis://localhost:6379/0")
|
|
TASK_QUEUE: str = "ppt:tasks"
|
|
TASK_STATUS_PREFIX: str = "ppt:status:"
|
|
|
|
# PPT Master
|
|
PPT_MASTER_PATH: Path = Path(os.getenv("PPT_MASTER_PATH", "/Users/freedak/Documents/go-new/ppt-master"))
|
|
SKILL_DIR: Path = PPT_MASTER_PATH / "skills" / "ppt-master"
|
|
SCRIPTS_DIR: Path = SKILL_DIR / "scripts"
|
|
|
|
# 文件存储
|
|
UPLOAD_DIR: Path = Path(os.getenv("UPLOAD_DIR", "/tmp/govai/uploads"))
|
|
OUTPUT_DIR: Path = Path(os.getenv("OUTPUT_DIR", "/tmp/govai/outputs"))
|
|
PROJECTS_DIR: Path = Path(os.getenv("PROJECTS_DIR", "/tmp/govai/ppt-projects"))
|
|
|
|
# LLM(通义千问,DashScope OpenAI 兼容接口)
|
|
LLM_PROVIDER: str = os.getenv("LLM_PROVIDER", "openai")
|
|
OPENAI_API_KEY: str = os.getenv("OPENAI_API_KEY", "")
|
|
OPENAI_BASE_URL: str = os.getenv("OPENAI_BASE_URL", "https://dashscope.aliyuncs.com/compatible-mode/v1")
|
|
OPENAI_MODEL: str = os.getenv("OPENAI_MODEL", "qwen-max")
|
|
|
|
# 图片生成(通义万相)
|
|
IMAGE_BACKEND: str = os.getenv("IMAGE_BACKEND", "wanx")
|
|
IMAGE_API_KEY: str = os.getenv("IMAGE_API_KEY", "") # 留空则复用 OPENAI_API_KEY
|
|
WANX_MODEL: str = os.getenv("WANX_MODEL", "wanx-v1")
|
|
DASHSCOPE_IMAGE_URL: str = "https://dashscope.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis"
|
|
DASHSCOPE_TASK_URL: str = "https://dashscope.aliyuncs.com/api/v1/tasks"
|
|
|
|
@classmethod
|
|
def ensure_dirs(cls):
|
|
"""确保所有必需目录存在"""
|
|
cls.UPLOAD_DIR.mkdir(parents=True, exist_ok=True)
|
|
cls.OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
|
|
cls.PROJECTS_DIR.mkdir(parents=True, exist_ok=True)
|
|
|
|
|
|
config = Config()
|