mirror of
				https://github.com/YunaiV/ruoyi-vue-pro.git
				synced 2025-10-31 18:49:06 +08:00 
			
		
		
		
	【代码优化】AI:完善 SunoApiTests 单测,方便大家快速体验
This commit is contained in:
		| @ -68,17 +68,6 @@ public class SunoApi { | ||||
|                 .block(); | ||||
|     } | ||||
|  | ||||
|     public List<MusicData> chatCompletion(String prompt) { | ||||
|         return this.webClient.post() | ||||
|                 .uri("/v1/chat/completions") | ||||
|                 .body(Mono.just(new MusicGenerateRequest(prompt)), MusicGenerateRequest.class) | ||||
|                 .retrieve() | ||||
|                 .onStatus(STATUS_PREDICATE, EXCEPTION_FUNCTION.apply(prompt)) | ||||
|                 .bodyToMono(new ParameterizedTypeReference<List<MusicData>>() { | ||||
|                 }) | ||||
|                 .block(); | ||||
|     } | ||||
|  | ||||
|     public LyricsData generateLyrics(String prompt) { | ||||
|         return this.webClient.post() | ||||
|                 .uri("/api/generate_lyrics") | ||||
| @ -198,7 +187,7 @@ public class SunoApi { | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Suno API 响应的限额数据,目前每日免费50 | ||||
|      * Suno API 响应的限额数据,目前每日免费 50 | ||||
|      */ | ||||
|     public record LimitUsageData( | ||||
|             @JsonProperty("credits_left") Long creditsLeft, | ||||
|  | ||||
| @ -0,0 +1,83 @@ | ||||
| package cn.iocoder.yudao.framework.ai.music; | ||||
|  | ||||
| import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi; | ||||
| import org.junit.jupiter.api.Disabled; | ||||
| import org.junit.jupiter.api.Test; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| /** | ||||
|  * {@link SunoApi} 集成测试 | ||||
|  * | ||||
|  * @author xiaoxin | ||||
|  */ | ||||
| public class SunoApiTests { | ||||
|  | ||||
|     private final SunoApi sunoApi = new SunoApi("https://suno-3tah0ycyt-status2xxs-projects.vercel.app"); | ||||
| //    private final SunoApi sunoApi = new SunoApi("http://127.0.0.1:3001"); | ||||
|  | ||||
|     @Test // 描述模式 | ||||
|     @Disabled | ||||
|     public void testGenerate() { | ||||
|         // 准备参数 | ||||
|         SunoApi.MusicGenerateRequest generateRequest = new SunoApi.MusicGenerateRequest( | ||||
|                 "happy music", | ||||
|                 "chirp-v3-5", | ||||
|                 false); | ||||
|  | ||||
|         // 调用方法 | ||||
|         List<SunoApi.MusicData> musicList = sunoApi.generate(generateRequest); | ||||
|         // 打印结果 | ||||
|         System.out.println(musicList); | ||||
|     } | ||||
|  | ||||
|     @Test // 歌词模式 | ||||
|     @Disabled | ||||
|     public void testCustomGenerate() { | ||||
|         // 准备参数 | ||||
|         SunoApi.MusicGenerateRequest generateRequest = new SunoApi.MusicGenerateRequest( | ||||
|                 "创作一首带有轻松吉他旋律的流行歌曲,[verse] 描述夏日海滩的宁静,[chorus] 节奏加快,表达对自由的向往。", | ||||
|                 "Happy", | ||||
|                 "Happy Song", | ||||
|                 "chirp-v3.5", | ||||
|                 false, | ||||
|                 false); | ||||
|  | ||||
|         // 调用方法 | ||||
|         List<SunoApi.MusicData> musicList = sunoApi.customGenerate(generateRequest); | ||||
|         // 打印结果 | ||||
|         System.out.println(musicList); | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     @Disabled | ||||
|     public void testGenerateLyrics() { | ||||
|         // 调用方法 | ||||
|         SunoApi.LyricsData lyricsData = sunoApi.generateLyrics("A soothing lullaby"); | ||||
|         // 打印结果 | ||||
|         System.out.println(lyricsData); | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     @Disabled | ||||
|     public void testGetMusicList() { | ||||
|         // 准备参数 | ||||
| //        String id = "d460ddda-7c87-4f34-b751-419b08a590ca"; | ||||
|         String id = "584729e5-0fe9-4157-86da-1b4803ff42bf"; | ||||
|  | ||||
|         // 调用方法 | ||||
|         List<SunoApi.MusicData> musicList = sunoApi.getMusicList(List.of(id)); | ||||
|         // 打印结果 | ||||
|         System.out.println(musicList); | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     @Disabled | ||||
|     public void testGetLimitUsage() { | ||||
|         // 调用方法 | ||||
|         SunoApi.LimitUsageData limitUsageData = sunoApi.getLimitUsage(); | ||||
|         // 打印结果 | ||||
|         System.out.println(limitUsageData); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @ -1,50 +0,0 @@ | ||||
| package cn.iocoder.yudao.framework.ai.music; | ||||
|  | ||||
| import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi; | ||||
| import org.junit.jupiter.api.Test; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| // TODO 芋艿:整理单测 | ||||
| /** | ||||
|  * @Author xiaoxin | ||||
|  * @Date 2024/5/27 | ||||
|  */ | ||||
| public class SunoTests { | ||||
|  | ||||
|     private final SunoApi sunoApi = new SunoApi("https://suno-55ishh05u-status2xxs-projects.vercel.app"); | ||||
| //    private final SunoApi sunoApi = new SunoApi("http://127.0.0.1:3001"); | ||||
|  | ||||
|     @Test | ||||
|     public void selectById() { | ||||
|         System.out.println(sunoApi.getMusicList(List.of("d460ddda-7c87-4f34-b751-419b08a590ca,ff90ea66-49cd-4fd2-b44c-44267dfd5551"))); | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void generate() { | ||||
|         List<SunoApi.MusicData> generate = sunoApi.generate(new SunoApi.MusicGenerateRequest("创作一首带有轻松吉他旋律的流行歌曲,[verse] 描述夏日海滩的宁静,[chorus] 节奏加快,表达对自由的向往。")); | ||||
|         System.out.println(generate); | ||||
|     } | ||||
|  | ||||
|  | ||||
|     @Test | ||||
|     public void doChatCompletion() { | ||||
|         List<SunoApi.MusicData> generate = sunoApi.chatCompletion("创作一首带有轻松吉他旋律的流行歌曲,[verse] 描述夏日海滩的宁静,[chorus] 节奏加快,表达对自由的向往。"); | ||||
|         System.out.println(generate); | ||||
|     } | ||||
|  | ||||
|  | ||||
|     @Test | ||||
|     public void generateLyrics() { | ||||
|         SunoApi.LyricsData lyricsData = sunoApi.generateLyrics("A soothing lullaby"); | ||||
|         System.out.println(lyricsData); | ||||
|     } | ||||
|  | ||||
|  | ||||
|     @Test | ||||
|     public void selectLimit() { | ||||
|         SunoApi.LimitUsageData limitUsageData = sunoApi.getLimitUsage(); | ||||
|         System.out.println(limitUsageData); | ||||
|     } | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV