3.7 KiB
3.7 KiB
大鱼吃小鱼提示词脚本拆分 2026-04-28
背景
大鱼吃小鱼当前在 server-rs/crates/api-server/src/big_fish.rs 与 server-rs/crates/api-server/src/big_fish_agent_turn.rs 中同时承载了三类不同职责的提示词:
- Agent 聊天阶段的草稿生成提示词。
- 结果页主图 / 生图提示词。
- 结果页动作关键帧提示词。
这会带来两个直接问题:
- 聊天共创脚本和正式资产脚本混在路由业务文件中,后续继续调词时很容易顺手改到状态编排逻辑。
- 大鱼吃小鱼已经明确要求“草稿编译”和“结果页资产工坊”分离,如果提示词仍散落在业务实现里,后续很容易再次把动作资产逻辑误塞回 compile action。
本轮目标
把下面三类提示词显式拆到独立 prompt 脚本中:
- 草稿生成提示词。
- 生图提示词。
- 动作提示词。
并保持以下边界不变:
- 不改变 Big Fish 的会话表、草稿表、资产表结构。
- 不改变 compile action 只编译草稿、不串行生成资产的现有口径。
- 不改写当前中文提示词语义,只做脚本落位和调用收口。
落位方案
新增文件:
server-rs/crates/api-server/src/prompt/big_fish.rs
该文件统一收口:
BIG_FISH_AGENT_SYSTEM_PROMPTbuild_big_fish_agent_prompt(...)build_big_fish_level_main_image_prompt(...)build_big_fish_level_motion_prompt(...)build_big_fish_stage_background_prompt(...)BIG_FISH_DEFAULT_NEGATIVE_PROMPTBIG_FISH_TRANSPARENT_ASSET_NEGATIVE_PROMPT
同时把 prompt/mod.rs 补齐为正式导出入口,和现有:
puzzle_image.rscharacter_visual.rscharacter_animation.rsscene_background.rs
保持同一层级。
调用边界
1. 草稿生成
server-rs/crates/api-server/src/big_fish_agent_turn.rs
改为只负责:
- 调用公共 LLM turn 执行器。
- 解析
replyText / progressPercent / nextAnchorPack。 - 组装 finalize input。
不再内联维护大段 system prompt / output contract / chat prompt 拼接逻辑。
2. 生图与动作
server-rs/crates/api-server/src/big_fish.rs
改为只负责:
- 读取当前 session 与 draft。
- 根据
asset_kind构造正式资产上下文。 - 调用 DashScope 出图。
- 下载、后处理、持久化并写入资产绑定。
主图、动作关键帧、背景图的正式提示词脚本都从 crate::prompt::big_fish 引入,不再内联在路由业务脚本中。
为什么三类脚本要继续分开
草稿生成提示词
它的职责是把玩法灵感收束成:
- 玩法承诺
- 生态视觉主题
- 成长阶梯
- 风险节奏
它面向的是 LLM 的结构化共创,不面向图片模型。
生图提示词
它的职责是把已经落库的等级蓝图翻译成“单体鱼形主图”的正式图片提示词。
它面向的是透明背景主体资产,需要强调:
- 单体主体
- 透明背景
- 中心构图
- 不出现 UI / 场景 / 多主体
动作提示词
它的职责是把等级蓝图和动作槽位翻译成“静态关键帧预览图”的正式图片提示词。
它和主图区别在于:
- 需要显式带入
motion_key - 需要区分
idle_float / move_swim - 需要强调动作方向和关键帧姿态
因此不能继续复用同一段文本拼接后靠 if 分支临时改句子。
本轮验收
- 大鱼吃小鱼草稿生成提示词已从
big_fish_agent_turn.rs抽离。 - 大鱼吃小鱼主图、动作、背景提示词已从
big_fish.rs抽离。 - 路由业务文件只保留编排、鉴权、调用与错误映射职责。
- 新增 prompt 文件具备最小测试覆盖。
npm run check:encoding通过,确保新增中文文档与 Rust 注释未被写坏。