mirror of
				https://github.com/YunaiV/ruoyi-vue-pro.git
				synced 2025-10-31 10:37:41 +08:00 
			
		
		
		
	【代码优化】AI:完善 SunoApiTests 单测,方便大家快速体验
This commit is contained in:
		| @ -68,17 +68,6 @@ public class SunoApi { | |||||||
|                 .block(); |                 .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) { |     public LyricsData generateLyrics(String prompt) { | ||||||
|         return this.webClient.post() |         return this.webClient.post() | ||||||
|                 .uri("/api/generate_lyrics") |                 .uri("/api/generate_lyrics") | ||||||
| @ -198,7 +187,7 @@ public class SunoApi { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Suno API 响应的限额数据,目前每日免费50 |      * Suno API 响应的限额数据,目前每日免费 50 | ||||||
|      */ |      */ | ||||||
|     public record LimitUsageData( |     public record LimitUsageData( | ||||||
|             @JsonProperty("credits_left") Long creditsLeft, |             @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