1、增加调用 AI 视频生成能力和虚拟素材库管理的对外api
2、增加后台apikkey管理 3、增加apikey单独的模型定价 4、增加apikey调用情况 5、完善所有数据的注释增加
This commit is contained in:
+116
-7
@@ -234,29 +234,71 @@ sudo systemctl start videogen-api
|
||||
|
||||
### 6. Celery Worker(可选)
|
||||
|
||||
ChatAPI 异步生成流水线需要 Celery Worker,依赖 Redis 作为 Broker。
|
||||
异步任务流水线需要 Celery Worker,依赖 Redis 作为 Broker。
|
||||
|
||||
Celery 使用 **6 个队列**,按功能分离:
|
||||
Celery 使用 **12 个队列**,按功能分离:
|
||||
|
||||
| 队列 | 用途 |
|
||||
|------|------|
|
||||
| `gen_chatapi_create` | ChatAPI 生成任务创建(含爆款开头/拆镜复刻的提词步骤) |
|
||||
| `gen_provider_poll` | 轮询火山引擎生成状态 |
|
||||
| `gen_result_download` | 下载生成的视频/图片结果 |
|
||||
| `gen_video_upscale_local` | 本地视频超分(FFmpeg) |
|
||||
| `gen_video_upscale_remote` | 远程视频超分(火山 MediaKit) |
|
||||
| `gen_recovery` | 容灾恢复任务(统一队列,避免占用业务 worker) |
|
||||
| `gen_private_portrait` | 真人素材认证与同步 |
|
||||
| `gen_shot_analysis` | 拆镜分析 |
|
||||
| `gen_shot_split` | 拆镜切片 |
|
||||
| `gen_api_create` | **API v3 视频任务创建** |
|
||||
| `gen_api_poll` | **API v3 视频状态轮询** |
|
||||
| `gen_api_download` | **API v3 视频下载与超分** |
|
||||
| `default` | 默认队列(用户 OAuth、清理任务等) |
|
||||
|
||||
#### 启动命令
|
||||
|
||||
```bash
|
||||
# 启动 Worker(消费所有队列)
|
||||
celery -A app.tasks.celery_app worker -l info -Q gen_chatapi_create,gen_provider_poll,gen_result_download,gen_recovery,gen_private_portrait,default
|
||||
# ── 启动 Worker(消费所有队列,单机部署)──
|
||||
celery -A app.tasks.celery_app worker -l info \
|
||||
-Q gen_chatapi_create,gen_provider_poll,gen_result_download,gen_video_upscale_local,gen_video_upscale_remote,gen_recovery,gen_private_portrait,gen_shot_analysis,gen_shot_split,gen_api_create,gen_api_poll,gen_api_download,default \
|
||||
--concurrency=4
|
||||
|
||||
# ── 按功能分离 Worker(生产环境推荐)──
|
||||
|
||||
# 业务 Worker:处理生成创建、轮询、下载
|
||||
celery -A app.tasks.celery_app worker -l info \
|
||||
-Q gen_chatapi_create,gen_provider_poll,gen_result_download,gen_api_create,gen_api_poll,gen_api_download \
|
||||
--concurrency=4 \
|
||||
-n worker_busy@%h
|
||||
|
||||
# 超分 Worker:处理本地和远程超分
|
||||
celery -A app.tasks.celery_app worker -l info \
|
||||
-Q gen_video_upscale_local,gen_video_upscale_remote \
|
||||
--concurrency=2 \
|
||||
-n worker_upscale@%h
|
||||
|
||||
# 恢复 Worker:处理容灾恢复(低频任务)
|
||||
celery -A app.tasks.celery_app worker -l info \
|
||||
-Q gen_recovery \
|
||||
--concurrency=1 \
|
||||
-n worker_recovery@%h
|
||||
|
||||
# 其他 Worker:真人素材、拆镜、默认
|
||||
celery -A app.tasks.celery_app worker -l info \
|
||||
-Q gen_private_portrait,gen_shot_analysis,gen_shot_split,default \
|
||||
--concurrency=2 \
|
||||
-n worker_other@%h
|
||||
|
||||
# ── 启动 Celery Beat(定时任务调度器)──
|
||||
celery -A app.tasks.celery_app beat -l info
|
||||
```
|
||||
|
||||
**systemd 服务文件** `/etc/systemd/system/videogen-worker.service`:
|
||||
#### systemd 服务文件
|
||||
|
||||
**业务 Worker** `/etc/systemd/system/videogen-worker-busy.service`:
|
||||
|
||||
```ini
|
||||
[Unit]
|
||||
Description=VideoGen Celery Worker
|
||||
Description=VideoGen Celery Worker (Busy)
|
||||
After=network.target redis.service
|
||||
|
||||
[Service]
|
||||
@@ -264,7 +306,7 @@ Type=simple
|
||||
User=www-data
|
||||
WorkingDirectory=/opt/video-gen-api
|
||||
Environment=PATH=/opt/video-gen-api/.venv/bin
|
||||
ExecStart=/opt/video-gen-api/.venv/bin/celery -A app.tasks.celery_app worker -l info -Q gen_chatapi_create,gen_provider_poll,gen_result_download,gen_recovery,gen_private_portrait,default
|
||||
ExecStart=/opt/video-gen-api/.venv/bin/celery -A app.tasks.celery_app worker -l info -Q gen_chatapi_create,gen_provider_poll,gen_result_download,gen_api_create,gen_api_poll,gen_api_download --concurrency=4 -n worker_busy@%h
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
|
||||
@@ -272,6 +314,73 @@ RestartSec=5
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
**超分 Worker** `/etc/systemd/system/videogen-worker-upscale.service`:
|
||||
|
||||
```ini
|
||||
[Unit]
|
||||
Description=VideoGen Celery Worker (Upscale)
|
||||
After=network.target redis.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=www-data
|
||||
WorkingDirectory=/opt/video-gen-api
|
||||
Environment=PATH=/opt/video-gen-api/.venv/bin
|
||||
ExecStart=/opt/video-gen-api/.venv/bin/celery -A app.tasks.celery_app worker -l info -Q gen_video_upscale_local,gen_video_upscale_remote --concurrency=2 -n worker_upscale@%h
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
**恢复 Worker** `/etc/systemd/system/videogen-worker-recovery.service`:
|
||||
|
||||
```ini
|
||||
[Unit]
|
||||
Description=VideoGen Celery Worker (Recovery)
|
||||
After=network.target redis.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=www-data
|
||||
WorkingDirectory=/opt/video-gen-api
|
||||
Environment=PATH=/opt/video-gen-api/.venv/bin
|
||||
ExecStart=/opt/video-gen-api/.venv/bin/celery -A app.tasks.celery_app worker -l info -Q gen_recovery --concurrency=1 -n worker_recovery@%h
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
**Beat 调度器** `/etc/systemd/system/videogen-beat.service`:
|
||||
|
||||
```ini
|
||||
[Unit]
|
||||
Description=VideoGen Celery Beat
|
||||
After=network.target redis.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=www-data
|
||||
WorkingDirectory=/opt/video-gen-api
|
||||
Environment=PATH=/opt/video-gen-api/.venv/bin
|
||||
ExecStart=/opt/video-gen-api/.venv/bin/celery -A app.tasks.celery_app beat -l info
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
```bash
|
||||
# 启用并启动所有服务
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable videogen-worker-busy videogen-worker-upscale videogen-worker-recovery videogen-beat
|
||||
sudo systemctl start videogen-worker-busy videogen-worker-upscale videogen-worker-recovery videogen-beat
|
||||
```
|
||||
|
||||
### 7. Docker 部署(可选)
|
||||
|
||||
项目提供 `Dockerfile` 和 `docker-compose.yml`。
|
||||
|
||||
Reference in New Issue
Block a user