Files
2026-06-15 23:48:37 +08:00

95 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PPT Worker 微服务
PPT Master 管线的 HTTP 服务封装,作为 GovAI 平台的 PPT 生成后端。
## 架构
```
GovAI 前端 → Go 后端 → Redis 队列 → PPT Worker → PPTX 文件
```
Worker 接收任务后执行完整 PPT Master 管线:
1. **源内容转换** — PDF/DOCX/URL/文本 → Markdown
2. **项目初始化** — 创建 PPT Master 项目结构
3. **策略师阶段** — LLM 生成设计规范 + 执行锁定
4. **图片获取** — AI 生图(可选)
5. **执行器阶段** — LLM 逐页生成 SVG
6. **后处理导出** — SVG 质量检查 → finalize → 导出 PPTX
## 快速开始
### 前置条件
- Python 3.10+
- PostgreSQLGovAI 数据库)
- Redis
- PPT Master 项目(`/Users/freedak/Documents/go-new/ppt-master`
### 安装
```bash
cd ppt-worker
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
### 配置
```bash
cp .env.example .env
# 编辑 .env,填入数据库、Redis、LLM API Key 等配置
```
### 启动
```bash
# 同时启动 HTTP API + Worker
python app.py
# 或仅启动 Worker(不含 HTTP API
python worker.py
```
### Docker
```bash
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 KeyLLM + 图片共用) |
| `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 | 速度优先 |