mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 10:18:42 +08:00 
			
		
		
		
	【增加】AI:suno-api 自定义音乐生成接口接入
This commit is contained in:
		| @@ -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               submitted、queued、streaming、complete | ||||
|      * @param gptDescriptionPrompt | ||||
|      * @param prompt               生成音乐音频的提示 | ||||
|      * @param type | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 xiaoxin
					xiaoxin