30536276ba
核心变更:
- 统一第三方接口架构:所有服务走 PlatformGateway(call_sync/submit_task/query_task/handle_webhook)
- 视频生成(Vidu 对口型)纳入 Async Engine,与 script/subtitle/tts 统一为 POST /tasks/{task_type} 模式
- 新增 VideoHandler、TTSHandler,完善 ScriptHandler/SubtitleHandler
- PlatformGateway 生成 internal_task_id,建立 Redis 双向映射,callback 场景传入 Async Engine task_id 保证映射一致
- SlotManager 新增 acquire_ctx 上下文管理器,所有 Handler 统一使用
- ViduAdapter 状态映射归一化(normalize_state/denormalize_state)
- 移除 ViduService Semaphore 和 tenacity 重试,并发控制完全交予 SlotManager
- nonce 防重放下沉到 CallbackCapable 协议
- Service 层错误统一为 PlatformError,路由层错误信息脱敏
- 废弃 /voice/lip-sync,清理 vidu.py 遗留路由
Bug 修复:
- VideoHandler 轮询阶段后添加 continue,防止已提交任务重复创建
- voice.py synthesize_to_file 变量名冲突(request vs request_body)
- PlatformGateway.submit_task 空 data 防护
- ScriptHandler 动态导入 asyncio 改为模块级导入
- SubtitleHandler 完成时补充 progress=100
文档:
- 更新 AGENTS.md 核心功能、运行时架构、异步调度描述
67 lines
1.9 KiB
Bash
67 lines
1.9 KiB
Bash
# 美家卡智影 API - 环境变量配置示例
|
||
# ================================
|
||
# 复制此文件为 .env 并填写实际值
|
||
|
||
# === 基础配置 ===
|
||
APP_NAME=美家卡智影 API
|
||
APP_VERSION=0.1.0
|
||
DEBUG=true
|
||
ENV=development
|
||
HOST=0.0.0.0
|
||
PORT=8000
|
||
|
||
# === 数据库配置 ===
|
||
# 本地开发: localhost
|
||
# Docker 部署: 容器名(如 db、meijiaka-db)
|
||
DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/meijiaka_zy
|
||
|
||
# === Redis 配置 ===
|
||
# 本地开发: localhost
|
||
# Docker 部署: 容器名(如 redis、meijiaka-redis)
|
||
REDIS_HOST=localhost
|
||
REDIS_PORT=6379
|
||
REDIS_DB=1
|
||
# REDIS_PASSWORD= # 如无密码请留空或注释
|
||
|
||
# === JWT 安全配置 ===
|
||
# 生产环境必须修改为强随机密钥
|
||
SECRET_KEY=your-secret-key-here-change-in-production
|
||
ACCESS_TOKEN_EXPIRE_MINUTES=10080
|
||
ALGORITHM=HS256
|
||
|
||
# === CORS 配置 ===
|
||
# 本地开发: 允许 localhost
|
||
# 测试/生产服: 填写实际域名,如 https://app.yourdomain.com
|
||
CORS_ORIGINS=http://localhost:1420,http://127.0.0.1:1420,http://localhost:8080
|
||
|
||
# === AI 平台配置 ===
|
||
|
||
# 火山方舟(必需)
|
||
VOLCENGINE_API_KEY=your-volcengine-api-key
|
||
VOLCENGINE_BASE_URL=https://ark.cn-beijing.volces.com/api/v3
|
||
|
||
# 火山字幕服务(必需)
|
||
VOLCENGINE_CAPTION_APPID=your-caption-appid
|
||
VOLCENGINE_CAPTION_TOKEN=your-caption-token
|
||
|
||
# Vidu(必需,用于TTS语音合成、声音复刻、对口型)
|
||
VIDU_API_KEY=your-vidu-api-key
|
||
VIDU_BASE_URL=https://api.vidu.cn
|
||
|
||
# === 七牛云存储(必需,用于空镜图片上传)===
|
||
QINIU_ACCESS_KEY=your-qiniu-access-key
|
||
QINIU_SECRET_KEY=your-qiniu-secret-key
|
||
QINIU_VIDEO_BUCKET=media-liche
|
||
QINIU_VIDEO_DOMAIN=media.liche.cn
|
||
QINIU_IMAGE_BUCKET=img-liche
|
||
QINIU_IMAGE_DOMAIN=img.liche.cn
|
||
|
||
# === 其他服务 ===
|
||
|
||
# === 应用公网地址(用于 Vidu 等第三方回调)===
|
||
# 不配置时自动根据 ENV 推断:production→tapi.meijiaka.cn, staging→dev.tapi.meijiaka.cn
|
||
# APP_BASE_URL=https://dev.tapi.meijiaka.cn
|
||
|
||
# === 日志配置 ===
|
||
LOG_LEVEL=INFO
|