feat: 预览生成 API 传入 voice_library_id(配音素材 ID) #1314
Reference in New Issue
Block a user
Delete Branch "feat/voice-library-id-in-preview"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
变更说明
调用
POST /api/v1/generation/preview时,将用户在配音页面选择的音频素材 ID 传入voice_library_id字段。后端已在 PR #1313 中支持该字段(
CreatePreviewGenerationTaskRequest.voice_library_id),本次补齐前端对接。修改文件
apps/web/src/api/generation/types.tsCreatePreviewRequest新增可选字段voice_library_id?: stringapps/web/src/pages/generate/hooks/useStep4Preview.tsUseStep4PreviewProps新增voiceLibraryId?: string入参createPreview调用时传入voice_library_idapps/web/src/pages/generate/GeneratePage.tsxpreviewVoiceIds[0](用户选择的配音素材 ID)作为voiceLibraryId传给useStep4Preview数据流
🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
无
💡 改进建议(不阻塞合并)
[apps/web/src/pages/generate/hooks/useStep4Preview.ts: 338] 空值处理逻辑一致性
voice_ids使用了显式的长度检查voiceIds && voiceIds.length > 0,而对新增的voice_library_id使用了隐式真值检查voiceLibraryId || undefined。虽然功能上在大多数情况下等效(都能过滤空字符串),但为了代码风格统一,建议显式处理空字符串,例如:voice_library_id: voiceLibraryId || undefined改为voice_library_id: voiceLibraryId ? voiceLibraryId : undefined,或者保持现状但确认 ID 不会是数值字符串 "0"(因为||会将 "0" 判定为 false)。[apps/web/src/pages/generate/GeneratePage.tsx: 109] 业务逻辑互斥性确认
useStep4Preview时同时传递了voiceIds和voiceLibraryId。请确认业务逻辑上这两个参数是否互斥(即用户要么选择系统配音voiceIds,要么选择素材库配音voiceLibraryId)。如果两者同时存在,需确认后端 API 的优先级处理逻辑,避免产生不可预期的混合结果。✅ 良好实践
types.ts)更新及时,且包含了清晰的 JSDoc 注释,有助于维护。GeneratePage和useStep4Preview中均正确处理了可选参数的传递,保持了数据流的完整性。voiceLibraryId,符合 React Hooks 规则。🤖 由 AI 代码审查机器人自动生成 | 2026-08-09 04:28:23 | 模型:
🗑️ 预览环境已清理
PR #1314 已关闭或合并,对应的预览环境已被清理。