【增加】AI:suno-api 自定义音乐生成接口接入

This commit is contained in:
xiaoxin 2024-06-06 20:31:51 +08:00
parent 851c290c0d
commit 085ebfc792

View File

@ -55,6 +55,17 @@ public class SunoApi {
.block();
}
public List<MusicData> 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<List<MusicData>>() {
})
.block();
}
public List<MusicData> 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 submittedqueuedstreamingcomplete
* @param gptDescriptionPrompt
* @param prompt 生成音乐音频的提示
* @param type