2.5 KiB
2.5 KiB
PPT Worker 微服务
PPT Master 管线的 HTTP 服务封装,作为 GovAI 平台的 PPT 生成后端。
架构
GovAI 前端 → Go 后端 → Redis 队列 → PPT Worker → PPTX 文件
Worker 接收任务后执行完整 PPT Master 管线:
- 源内容转换 — PDF/DOCX/URL/文本 → Markdown
- 项目初始化 — 创建 PPT Master 项目结构
- 策略师阶段 — LLM 生成设计规范 + 执行锁定
- 图片获取 — AI 生图(可选)
- 执行器阶段 — LLM 逐页生成 SVG
- 后处理导出 — SVG 质量检查 → finalize → 导出 PPTX
快速开始
前置条件
- Python 3.10+
- PostgreSQL(GovAI 数据库)
- Redis
- PPT Master 项目(
/Users/freedak/Documents/go-new/ppt-master)
安装
cd ppt-worker
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
配置
cp .env.example .env
# 编辑 .env,填入数据库、Redis、LLM API Key 等配置
启动
# 同时启动 HTTP API + Worker
python app.py
# 或仅启动 Worker(不含 HTTP API)
python worker.py
Docker
cd docker
docker compose up -d ppt-worker
API
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/tasks |
创建文本/URL 任务 |
| POST | /api/tasks/upload |
创建带文件上传的任务 |
| GET | /api/tasks/{id} |
查询任务状态 |
| GET | /api/tasks/{id}/download |
下载 PPTX 文件 |
| GET | /health |
健康检查 |
环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
WORKER_PORT |
8090 | HTTP 服务端口 |
WORKER_CONCURRENCY |
2 | 并发处理数 |
DATABASE_URL |
- | PostgreSQL 连接串 |
REDIS_URL |
redis://localhost:6379/0 | Redis 连接串 |
PPT_MASTER_PATH |
- | PPT Master 项目路径 |
OPENAI_API_KEY |
- | DashScope API Key(LLM + 图片共用) |
OPENAI_BASE_URL |
https://dashscope.aliyuncs.com/compatible-mode/v1 | 千问 OpenAI 兼容端点 |
OPENAI_MODEL |
qwen-max | 千问模型(推荐 qwen-max / qwen-plus) |
IMAGE_BACKEND |
wanx | 图片后端(wanx 通义万相 / 其他回退脚本) |
WANX_MODEL |
wanx-v1 | 万相模型名 |
IMAGE_API_KEY |
(空,复用 OPENAI_API_KEY) | 单独的图片 API Key(可选) |
千问模型推荐
| 模型 | 上下文 | 适用场景 |
|---|---|---|
qwen-max |
128K | SVG 生成首选,质量最好 |
qwen-plus |
128K | 性价比之选 |
qwen-long |
10M | 超长文档输入 |
qwen-turbo |
128K | 速度优先 |