diff --git a/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/suno/api/SunoApi.java b/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/suno/api/SunoApi.java index 25ae04f51..2c591c65a 100644 --- a/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/suno/api/SunoApi.java +++ b/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/suno/api/SunoApi.java @@ -55,6 +55,17 @@ public class SunoApi { .block(); } + public List customGenerate(SunoApi.SunoReq sunReq) { + return this.webClient.post() + .uri("/api/custom_generate") + .body(Mono.just(sunReq), SunoApi.SunoReq.class) + .retrieve() + .onStatus(STATUS_PREDICATE, EXCEPTION_FUNCTION) + .bodyToMono(new ParameterizedTypeReference>() { + }) + .block(); + } + public List doChatCompletion(String prompt) { return this.webClient.post() .uri("/v1/chat/completions") @@ -105,8 +116,9 @@ public class SunoApi { * 根据提示生成音频 * * @param prompt 用于生成音乐音频的提示 - * @param tags 自定义模式才需要 - * @param title 自定义模式才需要 + * @param tags 音乐风格 + * @param title 音乐名称 + * @param mv 模型 * @param waitAudio false表示后台模式,仅返回音频任务信息,需要调用get API获取详细的音频信息。 * true表示同步模式,API最多等待100s,音频生成完毕后直接返回音频链接等信息,建议在GPT等agent中使用。 * @param makeInstrumental 指示音乐音频是否为定制,如果为 true,则从歌词生成,否则从提示生成 @@ -116,15 +128,21 @@ public class SunoApi { String prompt, String tags, String title, + String mv, @JsonProperty("wait_audio") boolean waitAudio, @JsonProperty("make_instrumental") boolean makeInstrumental ) { public SunoReq(String prompt) { - this(prompt, null, null, false, false); + this(prompt, null, null, null, false, false); } + public SunoReq(String prompt, String mv, boolean makeInstrumental) { + this(prompt, null, null, mv, false, makeInstrumental); + } + + public SunoReq(String prompt, String tags, String title) { - this(prompt, tags, title, false, false); + this(prompt, tags, title, null, false, false); } } @@ -140,7 +158,7 @@ public class SunoApi { * @param videoUrl 音乐视频的 URL * @param createdAt 音乐音频的创建时间 * @param modelName - * @param status + * @param status submitted、queued、streaming、complete * @param gptDescriptionPrompt * @param prompt 生成音乐音频的提示 * @param type