Files
yingqing/core/backend/apps/ai/tasks.py
T
zycandClaude Opus 4.8 296888f0bf feat(core): 基础资产 Agent 化 — 商品三视图(image_edit 参考主图)+ 人物立绘/三视图异步生成 + 演员库/详情
- 商品三视图:有真实商品主图时走 image_edit,以主图为参考锁包装一致(品牌字/配色/外形/Logo)
- 人物:据「某一版立绘」异步生成配套三视图(image_edit,worker 内跑),立绘/三视图各存版本可切换
- 基础资产出图改异步(run_base_asset_task / generate_triview_task),Web 层不被慢出图占住
- 前端:演员库浏览/新增、人物详情(立绘+三视图+版本切换/下载/查看大图)、按 busyKey 的单卡并发 loading(genBusy,替代全局 genBusyKey,各按钮互不阻塞)
- dev:本地连云端 MySQL 复用连接(CONN_MAX_AGE/health check/connect_timeout),仅 development 生效
- 含 projects 测试补充

tsc + py_compile + 26 后端测试通过。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 15:10:22 +08:00

43 lines
1.4 KiB
Python

from airshelf.celery import app
@app.task(bind=True, max_retries=3)
def submit_ai_task(self, task_id: str) -> str:
return task_id
@app.task(bind=True, max_retries=5)
def poll_ai_task(self, task_id: str) -> str:
return task_id
@app.task(bind=True, max_retries=0)
def generate_standalone_image_task(self, task_id: str) -> str:
"""单张独立图的慢活(ARK 出图 ~30s)在 worker 内跑,Web 层不被占住。
幂等且失败自退费(见 run_standalone_image_task),故 max_retries=0,不向上抛重试。"""
from apps.ai.services import run_standalone_image_task
run_standalone_image_task(task_id=task_id)
return task_id
@app.task(bind=True, max_retries=0)
def generate_base_asset_task(self, task_id: str) -> str:
"""基础资产(商品/人物/场景立绘)的慢出图在 worker 内跑,Web 层不被占住。
幂等且失败自退费(见 run_base_asset_task),故 max_retries=0,不向上抛重试。"""
from apps.ai.services import run_base_asset_task
run_base_asset_task(task_id=task_id)
return task_id
@app.task(bind=True, max_retries=0)
def generate_triview_task(self, task_id: str) -> str:
"""三视图(image_edit 以立绘为参考,慢)在 worker 内跑,Web 层不被占住。
幂等且失败自退费(见 run_triview_task),故 max_retries=0,不向上抛重试。"""
from apps.ai.services import run_triview_task
run_triview_task(task_id=task_id)
return task_id