Skip to content

[feat] composer: 节点提示词一键优化 #154

Open

Description

@Probiotics5333

目标与范围

节点创作参数面板目前只有提示词输入框,改写完全靠用户自己写;Agent 却能直接改提示词,界面没有对应操作,两种入口的能力不对等。本次交付「优化提示词」按钮:按节点类型、当前模型能力和已连接的参考素材重写提示词,用户确认后写入生成配置。

范围限制:只改写提示词文本,不改变模型、参数、参考与已接受任务的输入快照;不新增服务商接入,只复用已配置的对话模型。

用户流程与关键规则

  • 在提示词区域提供「优化提示词」按钮;结果以原文与建议对照展示,可采纳、放弃或重新生成。
  • 采纳后写入节点草稿,经既有保存与投影路径落到生成配置,因此可撤销、可重开、与其他编辑同源;未采纳不改动原文。
  • 提示词为空时按节点类型与已连接参考给出初稿,并标注这是建议而非用户原文。
  • 未配置对话模型、超时或请求失败时保留原提示词并给出可操作原因(例如提示到「模型接入」配置对话模型),不静默失败。
  • 请求进行中禁用重复触发;切换节点、关闭面板或开始生成时取消进行中的请求。

实现影响

  • 前端:src/canvas/NodeComposer.tsx(图片/视频/音频提示词区)、TextNodeComposer.tsx(文本节点);对照层复用现有弹出层组件;文案进 src/i18n/messages/{zh-CN,en-US}/generation.ts。
  • 服务端:新增一个只做文本改写的应用服务,复用 text.chat 调用路径(ToolContext.english() 已用同一机制做提示词翻译,可作为实现参考);未配置对话模型时返回可读错误而不是 500。
  • 改写服务不写工程状态:结果交回界面写入草稿,避免出现界面与 Agent 两条写入口。
  • Agent 入口:同一服务通过工具暴露,输入输出与界面一致;写入仍走 generationSpec.setPrompt / generationSpec.update 现有命令。

验收标准

  • 图片、视频、文本节点都能触发优化,结果可对照、采纳、放弃、重试。
  • 采纳后提示词落库并可撤销回原文;未采纳不改变原文。
  • 未配置对话模型时给出可操作提示,原文不丢,不产生半成品。
  • 优化只影响下一次生成意图,已接受任务的输入快照与历史不变。
  • Agent 通过工具完成同一改写,语义与界面一致。
  • 失败、超时、切换节点时请求可取消,界面不残留加载态。
  • 新增文案中英词条齐全,npm run check:i18n 通过。

待确认

  • 优化是否读取参考素材的画面内容(需要多模态),还是只用文本与素材标题。
  • 是否需要「保留原意 / 更大胆」之类的风格选项,或先做单一模式。
  • 结果形态:就地替换并允许撤销,还是必须二次确认。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

area:canvasCanvas, nodes and direct manipulationtype:featNew capability or behaviour

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions