Skip to content

选区语音编辑:EditPlan 解析失败(模型输出正文而非结构化方案) #1076

Description

@HKLHaoBin

问题

选区语音「编辑」路径能正确捕获选区并识别用户口述指令,但在生成编辑方案(EditPlan)时经常失败。失败后用户侧看到的是 QA 面板通用错误(如「QA request failed」/「出错了」),而不是可行动的编辑失败说明。

复现线索(日志)

selection voice EditPlan parse failed: invalid EditPlan JSON: expected value at line 1 column 1
preview=正如你所说,使用 GPT-5.6 Luna 不写计划……

模型本应返回 XML/JSON EditPlan,实际返回的是对选区原文的润色正文。解析器在首字符既非 { 也非 < 时直接失败。

根因判断

编辑方案生成复用了听写润色管线(polish_streaming)。该管线的 user prompt 会把输入包成「本次语音转写」并要求「只输出整理后的文本正文」,与 system prompt「只输出 XML/JSON EditPlan」冲突,模型常按润色任务输出正文。

预期修复方向

  1. 可配置提示词:用户可直接使用风格包里的提示词,也可自行编辑;未使用风格包且未改提示词时走默认提示词。
  2. 输出格式优先级可选:用户选择模型优先按 XML 还是 JSON 输出;解析时优先所选格式,失败则用另一种格式兜底。
  3. 转换失败时展示模型原始输出:不要只显示含糊的 QA 错误,应在页面中输出该模型的原始响应,便于排查与重试。
  4. 参考 folia-major 对严格 JSON 输出与解析失败修复的做法。

范围

  • 选区语音编辑 / QA 编辑指令模式的 EditPlan 生成与解析
  • 相关设置 UI 与错误展示
  • 问题完全解决前不提 PR(先开分支与本 issue)

关联

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions