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:
43
backend/app/services/ai_engine/fission_prompt.py
Normal file
43
backend/app/services/ai_engine/fission_prompt.py
Normal file
@@ -0,0 +1,43 @@
|
||||
"""
|
||||
app/services/ai_engine/fission_prompt.py — 第11环裂变 三档参考度 prompt
|
||||
|
||||
裂变=1爆款→N套完整笔记包。参考度档位控制"新套子贴原爆款多紧":
|
||||
high=贴原爆款结构+卖点(最像) / mid=保卖点换叙事角度 / low=只借选题方向(最自由)
|
||||
|
||||
🔴 占位规则(倩倩姐2026-06-16:先移植打通再请北哥定档位)。
|
||||
档位真实措辞待北哥定义后替换 _LEVEL_RULES,引擎链路不动。
|
||||
"""
|
||||
|
||||
# 三档占位规则:注入文案引擎 flywheel_context,约束"参考原爆款多少"
|
||||
_LEVEL_RULES = {
|
||||
"high": (
|
||||
"【裂变参考度=高】请紧贴下面这篇原爆款的正文结构、开头钩子、卖点排布与情绪语气,"
|
||||
"近乎仿写——只替换表达措辞做到不查重,骨架与卖点角度都保留。"
|
||||
),
|
||||
"mid": (
|
||||
"【裂变参考度=中】请保留下面这篇原爆款的核心卖点,但换一个全新的叙事角度/切入场景重写,"
|
||||
"结构可调整,让读者看不出是同一套路。"
|
||||
),
|
||||
"low": (
|
||||
"【裂变参考度=低】请只借鉴下面这篇原爆款的选题方向与目标人群,"
|
||||
"文案结构、卖点呈现、叙事全部自由发挥,做出明显差异化的新笔记。"
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
def build_fission_context(source_note: dict, reference_level: str) -> str:
|
||||
"""
|
||||
返回注入 text_variants(flywheel_context=) 的档位规则字符串。
|
||||
source_note: {title, content, ...} 原爆款笔记内容。
|
||||
reference_level: high/mid/low,非法值回落 mid。
|
||||
"""
|
||||
rule = _LEVEL_RULES.get(reference_level, _LEVEL_RULES["mid"])
|
||||
title = (source_note or {}).get("title", "")
|
||||
content = (source_note or {}).get("content", "")
|
||||
src = f"原爆款标题:{title}\n原爆款正文:{content}".strip()
|
||||
return f"{rule}\n\n--- 原爆款参考 ---\n{src}"
|
||||
|
||||
|
||||
def valid_level(level: str | None) -> str:
|
||||
"""校验档位,非法回落 mid。"""
|
||||
return level if level in _LEVEL_RULES else "mid"
|
||||
Reference in New Issue
Block a user