From 2d82ac55e43e80440985f5b21cabe896c2959baa Mon Sep 17 00:00:00 2001 From: Linghong Date: Sat, 8 Aug 2026 12:41:05 +0000 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E9=BD=90=E9=9F=B3=E9=A2=91=E5=93=8D?= =?UTF-8?q?=E5=BA=94=E8=84=B1=E6=95=8F=E5=9B=9E=E5=BD=92=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新 Agent 音频结果紧凑化断言 同步画板音乐成功响应契约文档 --- docs/【编辑器】画板音乐生成入口设计-2026-06-18.md | 2 +- .../crates/api-server/src/external_generation_worker.rs | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/【编辑器】画板音乐生成入口设计-2026-06-18.md b/docs/【编辑器】画板音乐生成入口设计-2026-06-18.md index b666b8f62..8cca4462b 100644 --- a/docs/【编辑器】画板音乐生成入口设计-2026-06-18.md +++ b/docs/【编辑器】画板音乐生成入口设计-2026-06-18.md @@ -441,7 +441,6 @@ POST /api/editor/audios/background-music/prompts/simplifications prompt: string, actualPrompt?: string | null, model: string, - provider: string, taskId: string, priceMudPoints: number, audioKind: "sound-effect" | "background-music", @@ -450,6 +449,7 @@ POST /api/editor/audios/background-music/prompts/simplifications } ``` +- 成功响应不携带 `provider`;该信息只保留在服务端持久化、任务追踪、日志和后台排障中。 - BGM 成功响应必须同时填充 `prompt` 和 `actualPrompt`,两者都与本次 canonical Prompt 逐 code point 等值,不得携带助手模板、内部引导或隐藏前后缀;共享响应类型为兼容 SFX 与历史数据仍可保留 `actualPrompt` 可选。 - SFX V2 成功响应的 `prompt` 必须等于 canonical `userPrompt`,`actualPrompt` 必须等于验收通过且实际提交给 ElevenLabs 的英文 Prompt,`durationSeconds` 必须来自 MP3 探测,`loop` 必须等于本次冻结并发送的布尔值。 - 默认 queue 模式的首次生成响应继续只携带现有 `queueState`;上面的完整音频响应是 inline 或 worker 内部完成边界,不要求给 queue 首次响应或普通 metadata-only job result 新增 Prompt 字段。 diff --git a/server-rs/crates/api-server/src/external_generation_worker.rs b/server-rs/crates/api-server/src/external_generation_worker.rs index e0d7cf6fc..279e0999a 100644 --- a/server-rs/crates/api-server/src/external_generation_worker.rs +++ b/server-rs/crates/api-server/src/external_generation_worker.rs @@ -2037,9 +2037,10 @@ mod tests { let payload: Value = serde_json::from_str(&editor_generation_result_payload_json(&job, &response)) .expect("worker compact payload should serialize"); - assert_eq!( - payload["editor-agent-tool-call-result"]["provider"], - json!(provider) + assert!( + payload["editor-agent-tool-call-result"] + .get("provider") + .is_none() ); let mut message: EditorAgentMessage = serde_json::from_value(json!({ "id": 1,