存量积累:生图素人感约束+评图分+幂等防重跑+审核回路

- 015-017迁移:image_candidate 文案复审/AI视觉分/重生标记
- constants C7素人感约束(反电商摆拍对齐真实笔记)+C3叠字口子
- celery visibility_timeout=2h 防长任务被误判重投重复烧钱(task75教训)
- image_scorer 评图分(只筛选+展示,真实信号才进飞轮权重)
- storyboard/image_gen/pipeline_io 生图存量
- task_actions/tasks/task_service/flywheel 审核回路+飞轮存量

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
yangqianqian
2026-06-18 11:16:42 +08:00
parent cefdbaabdc
commit 7f419f4c8b
16 changed files with 346 additions and 30 deletions

View File

@@ -95,22 +95,38 @@ def import_text(
return ok(_fmt_text(tc))
class RegenerateRequest(BaseModel):
"""R2 重生参数(全 None=整体重生,兼容旧调用)。
strategy='A'/'B'/'C' 指定单套role 指定单张(需配 strategy)custom_prompt 人工追加提示词。"""
strategy: str | None = Field(default=None, pattern="^[ABC]$")
role: str | None = None
custom_prompt: str | None = Field(default=None, max_length=500)
@router.post("/{task_id}/regenerate")
def regenerate(
task_id: int,
body: RegenerateRequest | None = None,
current_user: Annotated[CurrentUser, Depends(require_write_permission)] = None,
db: Session = Depends(get_db),
):
"""重新生成(飞轮信号 regenerate -1"""
"""重新生成(飞轮信号 regenerate -1
body 全空=整体重生;带 strategy=单套重生;带 strategy+role=单张重生custom_prompt=人工提示词。"""
from app.services.flywheel_service import record_signal
from app.services.task_service import enqueue_generation
task = _check_task_ownership(
db.query(GenerationTask).filter(GenerationTask.id == task_id).first(),
current_user.workspace_id,
)
body = body or RegenerateRequest()
# role 必须配 strategy单张重生需知道是哪套的哪张
if body.role and not body.strategy:
raise_state_invalid("指定单张重生(role)时必须同时指定 strategy(套别)")
record_signal(db, current_user, task, "regenerate")
enqueue_generation(task.id)
return ok({"task_id": task_id, "status": "regenerating"})
enqueue_generation(task.id, regen_strategy=body.strategy,
regen_role=body.role, custom_prompt=body.custom_prompt)
scope = "单张" if body.role else ("单套" if body.strategy else "整体")
return ok({"task_id": task_id, "status": "regenerating", "scope": scope})
@router.post("/{task_id}/submit-review")