feat(M7): 第11环裂变引擎端到端打通

- fission_service: 1源任务扇出N套子任务(回填source_fission_id,复用主管道),MAX_FANOUT=5红线
- fission_prompt: 三档参考度(high/mid/low)占位规则,真实措辞待北哥定义
- tasks.py: worker识别裂变子任务→注入对应档位规则进文案上下文(关键缺口修复)
- api/v1/fission: POST触发 + GET进度聚合, main.py注册路由
- 实测: fission_id=2扇出task70/71,worker注入日志level=high,进度端点聚合正确

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
yangqianqian
2026-06-16 15:05:27 +08:00
parent 9f263032ad
commit cefdbaabdc
5 changed files with 223 additions and 0 deletions

View File

@@ -92,6 +92,22 @@ def run_generation_pipeline(self, task_id: int) -> dict:
product_dict = build_product_dict(product)
flywheel_fragment, flywheel_ctx = load_flywheel_context(db, workspace_id, task.product_id, product_dict)
# 第11环裂变:子任务(source_fission_id非空)按裂变档位+源爆款生成,拼进文案上下文。
if getattr(task, "source_fission_id", None):
import json as _json
from app.models.fission import FissionTask
from app.services.ai_engine.fission_prompt import build_fission_context
ft = db.query(FissionTask).filter(FissionTask.id == task.source_fission_id).first()
if ft:
try:
src_note = _json.loads(ft.source_note) if ft.source_note else {}
except Exception:
src_note = {}
fission_ctx = build_fission_context(src_note, ft.reference_level)
flywheel_fragment = f"{fission_ctx}\n\n{flywheel_fragment}".strip()
logger.info("裂变子任务注入档位: task_id=%s fission=%s level=%s",
task_id, ft.id, ft.reference_level)
if flywheel_fragment:
seq += 1
_push_event_sync(task_id, workspace_id, "flywheel_injected", {