优化全能创作
This commit is contained in:
+24
-18
@@ -13,7 +13,7 @@
|
||||
| 策略卡 · 方案卡 | **AI 真生成**(新 skill `omni-creative-strategy`),不是模板 |
|
||||
| @ 引用范围 | 商品(卖点+主图) · 角色/模特(锁脸) · 场景/资产库任意图。**不含**历史项目;**不含**本会话产物(产物靠记忆层自动带) |
|
||||
| 图片会话 | 无确认闸门,聊完直接生成 |
|
||||
| 视频会话 | 策略卡 → 方案卡 → **确认(按钮旁显示预计积分)** → 生成 |
|
||||
| 视频会话 | **5 步闸门**:澄清(`ask_user`) → 策略确认 → 方案确认 → Prompt 确认 → **参数+积分确认** → 生成 |
|
||||
| 重新生成 | 对话流**往下叠加**新结果,旧的留在上面。历史页封面取最新一版 |
|
||||
| 编排模型 | `doubao-seed-2-1-pro-260628`(火山直连),`gpt-5.5`(tokenssr)兜底 |
|
||||
| 生成模型 | 图 `doubao-seedream-5-0-260128` / `gpt-image-2`;视频 `doubao-seedance-2-5-260628` |
|
||||
@@ -34,7 +34,7 @@ mode "video" | "image" 发起时定死
|
||||
preset str(64) 预设名,"" = 自由创作
|
||||
params json {model, resolution, ratio, duration} 会话级参数
|
||||
pinned_refs json [Ref] 本会话锁定的实体(每轮无条件带上 → 锁脸锁商品)
|
||||
memory json {summary: str, artifacts: [ArtifactRef], turn_count: int}
|
||||
memory json {summary: str, artifacts: [ArtifactRef], turn_count: int, stage: clarify|strategy|plan|prompt|confirm|done, pending_video_prompt?: str}
|
||||
status "running" | "completed" | "failed"
|
||||
agent_status "idle" | "planning" | "awaiting_user" 整理方案态(与 status 正交);一团队同时只能有一个 planning
|
||||
agent_started_at datetime|null planning 开始时间(超时清扫用)
|
||||
@@ -83,7 +83,7 @@ created_at
|
||||
| kind | 谁产 | payload | 对应设计稿 |
|
||||
| --- | --- | --- | --- |
|
||||
| `text` | 双方 | — (用 text 字段) | `.omni-chat-bubble` |
|
||||
| `elicit` | AI | `{fields: [Field], submitted: bool, answers: {}}` | **新增卡片** |
|
||||
| `elicit` | AI | `{fields: [Field], submitted: bool, answers: {}}`;步骤确认另带 `interaction:"step_confirm"`, `step: strategy\|plan\|prompt` | 追问卡 / 步骤确认条 |
|
||||
| `strategy` | AI | `{target, trust, belief, direction}` | `.omni-strategy-card` |
|
||||
| `plan` | AI | 见下 | `.omni-video-plan-card` |
|
||||
| `prompt_file` | AI | `{title, body, ref_count}` | `.omni-prompt-file-card` |
|
||||
@@ -168,13 +168,12 @@ created_at
|
||||
|
||||
| 工具 | 参数 | 复用 |
|
||||
| --- | --- | --- |
|
||||
| `ask_user` | `{fields: [Field]}` | 新写。**这是「小云雀式追问」的唯一入口** |
|
||||
| `search_library` | `{query, types}` | 新写,复用 mentions 检索 |
|
||||
| `write_strategy` | `{}` → strategy payload | 新 skill |
|
||||
| `write_plan` | `{}` → plan payload | 新 skill |
|
||||
| `ask_user` | `{fields: [Field]}` | 澄清缺信息。**一调即中断** |
|
||||
| `search_library` | `{query, types}` | 复用 mentions 检索 |
|
||||
| `write_strategy` | strategy payload | 出策略卡 + `step_confirm`,**中断**等确认 |
|
||||
| `write_plan` | plan payload + `video_prompt`(先缓存) | 出方案卡 + `step_confirm`,**中断**;不同轮出 Prompt/积分卡 |
|
||||
| `write_prompt` | `{video_prompt}` | 出 `prompt_file` + `step_confirm`,**中断** |
|
||||
| `generate_image` | `{prompt, ref_asset_ids, count, ratio}` | 现有 `GenerateImageView` 服务层 |
|
||||
| `write_strategy` | strategy payload | 出策略卡,**不打断循环** |
|
||||
| `write_plan` | plan payload + `video_prompt` | 出 方案卡+Prompt卡+确认卡,**打断循环等确认** |
|
||||
|
||||
循环上限:单条用户消息最多 **8 轮**工具调用、最多 **1 次**计费生成(防「多做几版」烧积分)。
|
||||
|
||||
@@ -185,21 +184,28 @@ created_at
|
||||
标准 `json.dumps` 会 TypeError 把整条流当场打断。
|
||||
|
||||
会话 mode 决定暴露哪些工具:图片会话只有 `generate_image`,视频会话只有
|
||||
`write_strategy` / `write_plan`,互相看不见。
|
||||
`write_strategy` / `write_plan` / `write_prompt`,互相看不见。
|
||||
|
||||
### 视频确认闸门(阶段 4)
|
||||
### 视频确认闸门(5 步 · 小云雀式)
|
||||
|
||||
```
|
||||
聊 → [ask_user…] → write_strategy(策略卡,不停)
|
||||
→ write_plan(方案卡 + Prompt卡 + 确认卡,**停**)
|
||||
→ 用户点确认 → 直接出片
|
||||
聊 → ① ask_user?(缺信息则停)
|
||||
→ ② write_strategy → 策略卡 + step_confirm(**停**;确认/改)
|
||||
→ ③ write_plan → 方案卡 + step_confirm(**停**;确认/改)
|
||||
· video_prompt 先写入 memory.pending_video_prompt
|
||||
→ ④ 用户确认方案后平台(或 write_prompt)出 prompt_file + step_confirm(**停**)
|
||||
→ ⑤ 用户确认 Prompt 后平台出积分 confirm 卡(模型/分辨率/比例/时长)
|
||||
→ 用户点「开始生成」→ submit_free_video(不再跑编排模型)
|
||||
```
|
||||
|
||||
**点确认后不再跑模型。** 方案已经确认过了,再让模型决定一次既费钱、又可能它根本不调
|
||||
生成工具。`video_prompt` 在 `write_plan` 时就存进确认卡的 payload,确认时照它提交
|
||||
`submit_free_video`,返回同步 JSON(不是 SSE)。
|
||||
`memory.stage` 取值:`clarify|strategy|plan|prompt|confirm|done`,用于 resume 与系统提示约束。
|
||||
每一步确认用 `elicit` + `interaction:"step_confirm"` + `step`;前端「按这个继续」走
|
||||
`elicit_answer`,`我想改` 打开输入框,打字反馈走 text(后端标 revise 并只重写该步)。
|
||||
|
||||
确认卡是一次性的:`submitted` 置位后重复提交返回 409 —— 连点两下会出两条片、扣两次积分。
|
||||
**最终「开始生成」后不再跑编排模型。** `video_prompt` 在方案步缓存、Prompt 确认后写入
|
||||
确认卡 payload,确认时照它提交 `submit_free_video`,返回同步 JSON。
|
||||
|
||||
积分确认卡是一次性的:`submitted` 置位后重复提交返回 409。
|
||||
但**提交失败要把闸门放回去**(`submitted` 复位),否则积分不足改完也点不了了。
|
||||
|
||||
顶栏的模型 label(「Seedance 2.5」)要翻成火山真名才能提交;`duration` 从「15 秒」里
|
||||
|
||||
Reference in New Issue
Block a user