POST /v1/music/generations 創建一個公共的 TokenLab 任務並返回 id / task_id、status,通常還有 poll_url。您的應用程序應該存儲該任務身份,顯示進度,並輪詢直到達到終端狀態。
選擇工作流程
| 工作流程 | 關鍵字段 | 備註 |
|---|---|---|
| 完整歌曲或器樂 | model、prompt、可選的 title、tags、action: "MUSIC" | 當用戶期望最終音頻時使用 |
| 僅歌詞 | model、prompt、action: "LYRICS" | 僅與公開歌詞生成的模型一起使用 |
| 繼續現有片段 | continue_clip_id、可選的 continue_at | 在提供續集之前存儲之前的公共片段/任務身份 |
suno_music 進行音樂生成。對於僅歌詞的流程,發送 action: "LYRICS" 與公開合同文件中包含歌詞生成的模型。將模型 ID 視為公共 TokenLab ID,而不是保證供應商特定字段是公共合同字段。
創建音樂任務
輪詢完成情況
首先使用poll_url。如果您的客戶端需要固定路由,則使用返回的 id 或 task_id 調用 GET /v1/tasks/{id}。
pending、processing、completed 和 failed。完成的音樂任務可以包括 audio_url、video_url、title、lyrics 和標準化的元數據。將最終的 URL 存儲在您自己的數據庫中,以便用戶可以在不重新啟動生成的情況下重新打開結果。
UI 和狀態處理
- 在任務創建後立即顯示待處理狀態。
- 對於長任務每
5-10s輪詢一次,然後在completed或failed時停止。 - 在任務
completed並且存在audio_url之前,不要顯示最終播放器。 - 對於僅歌詞的任務,將文本輸出與音頻任務分開渲染,以便用戶理解他們所購買的內容。
- 在刷新時,從存儲的
task_id繼續,而不是創建新任務。
計費和對賬
音樂任務可以在創建時保留預估金額,並在知道終端狀態後結算。當request_id、task_id、模型、端點和 billing_transaction_id 出現時進行存儲。使用管理 API 使用記錄進行對賬,而不是供應商任務 ID。
常見錯誤
| 症狀 | 可能原因 | 修復 |
|---|---|---|
| 任務創建但沒有播放器 | 任務仍在待處理或完成但沒有 audio_url | 繼續輪詢直到終端,然後將缺失的輸出處理為失敗的用戶任務 |
| 刷新後重複歌曲 | UI 重新創建了任務而不是恢復 | 持久化並重用 task_id |
| 歌詞任務返回無音頻 | action: "LYRICS" 僅為文本 | 將歌詞和音樂 UI 路徑分開 |
| 不支持的參數 | 字段不在模型公共合同中 | 刪除供應商特定字段或選擇一個記錄它們的模型 |