视频创作解决已发现问题

This commit is contained in:
Azmat@qq.com
2026-09-16 10:21:29 +08:00
parent d4f282bfa9
commit a95cd159db
59 changed files with 263 additions and 39 deletions
+39 -11
View File
@@ -671,8 +671,9 @@ def default_reply_options(
*,
has_context: bool = False,
is_video: bool = True,
assistant_text: str = "",
) -> list[dict[str, str]]:
"""纯文字收束时给前端的可点下一步,避免用户面对一段说明不知道怎么继续。"""
"""只给与上一句相关的快捷回复,绝不塞与当前进度无关的固定话术。"""
stage = ""
if conversation is not None:
try:
@@ -686,17 +687,39 @@ def default_reply_options(
{"label": "重新来", "text": "重新来"},
]
if has_context:
if is_video:
text = str(assistant_text or "")
if re.search(r"颜色|色号|色彩|SKU|款式|几种", text, re.IGNORECASE):
return [
{"label": "继续完善方案", "text": "继续完善方案"},
{"label": "换个场景", "text": "我想换个场景"},
{"label": "改卖点", "text": "我想改卖点"},
{"label": "补充颜色和顺序", "text": "我来补充每个颜色和展示顺序"},
{"label": "上传各款实物图", "text": "我补充各颜色/款式的实物图"},
{"label": "先按当前主款做", "text": "先按当前主款做,其他颜色后面再补"},
]
return [
{"label": "按这个方向出图", "text": "按这个方向出图"},
{"label": "换个场景", "text": "我想换个场景"},
{"label": "改人物状态", "text": "我想改人物状态"},
]
if re.search(r"商品|产品|主推|哪款", text, re.IGNORECASE):
return [
{"label": "发商品列表", "text": "把商品列表发给我选"},
{"label": "我直接说商品名", "text": "我直接告诉你商品名"},
{"label": "你来推荐", "text": "你根据当前需求推荐一款"},
]
if re.search(r"人物|角色|模特|出镜", text, re.IGNORECASE):
return [
{"label": "上传人物图", "text": "我上传人物参考图"},
{"label": "由你设定角色", "text": "你先帮我设定一个合适的角色"},
{"label": "不需要人物", "text": "这条先不需要人物出镜"},
]
if re.search(r"场景|地点|背景|在哪", text, re.IGNORECASE):
return [
{"label": "上传场景图", "text": "我上传场景参考图"},
{"label": "你来推荐场景", "text": "你按商品和预设推荐场景"},
{"label": "用干净日常场景", "text": "先用干净自然的日常场景"},
]
if re.search(r"卖点|功能|效果|优惠|价格", text, re.IGNORECASE):
return [
{"label": "补充真实卖点", "text": "我来补充商品真实卖点"},
{"label": "从素材里判断", "text": "先根据我上传的素材判断可表达的卖点"},
{"label": "先只突出一个点", "text": "先围绕一个最核心的卖点创作"},
]
# 没有足够语境时只留自由输入,不伪造“继续/改卖点”这种人机按钮。
return []
kind = "短视频" if is_video else "商品图"
return [
{"label": f"帮我做一条{kind}" if is_video else "帮我做一张商品图", "text": f"帮我做一条{kind}" if is_video else "帮我做一张商品图"},
@@ -745,7 +768,12 @@ def ensure_turn_guides(
return []
hint = default_reply_hint(conversation, has_context=has_context, is_video=is_video)
options = default_reply_options(conversation, has_context=has_context, is_video=is_video)
options = default_reply_options(
conversation,
has_context=has_context,
is_video=is_video,
assistant_text=last_text_bubble.text if last_text_bubble is not None else "",
)
events: list[dict] = []
if last_text_bubble is not None:
if text_already_guides(last_text_bubble.text):