Commit fa230cea8e4ca46c7c4842563ee11cd029bc42c9
1 parent
62d5ed83
【代码优化】AI:完善 SunoApiTests 单测,方便大家快速体验
Showing
3 changed files
with
84 additions
and
62 deletions
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/suno/api/SunoApi.java
| @@ -68,17 +68,6 @@ public class SunoApi { | @@ -68,17 +68,6 @@ public class SunoApi { | ||
| 68 | .block(); | 68 | .block(); |
| 69 | } | 69 | } |
| 70 | 70 | ||
| 71 | - public List<MusicData> chatCompletion(String prompt) { | ||
| 72 | - return this.webClient.post() | ||
| 73 | - .uri("/v1/chat/completions") | ||
| 74 | - .body(Mono.just(new MusicGenerateRequest(prompt)), MusicGenerateRequest.class) | ||
| 75 | - .retrieve() | ||
| 76 | - .onStatus(STATUS_PREDICATE, EXCEPTION_FUNCTION.apply(prompt)) | ||
| 77 | - .bodyToMono(new ParameterizedTypeReference<List<MusicData>>() { | ||
| 78 | - }) | ||
| 79 | - .block(); | ||
| 80 | - } | ||
| 81 | - | ||
| 82 | public LyricsData generateLyrics(String prompt) { | 71 | public LyricsData generateLyrics(String prompt) { |
| 83 | return this.webClient.post() | 72 | return this.webClient.post() |
| 84 | .uri("/api/generate_lyrics") | 73 | .uri("/api/generate_lyrics") |
| @@ -198,7 +187,7 @@ public class SunoApi { | @@ -198,7 +187,7 @@ public class SunoApi { | ||
| 198 | } | 187 | } |
| 199 | 188 | ||
| 200 | /** | 189 | /** |
| 201 | - * Suno API 响应的限额数据,目前每日免费50 | 190 | + * Suno API 响应的限额数据,目前每日免费 50 |
| 202 | */ | 191 | */ |
| 203 | public record LimitUsageData( | 192 | public record LimitUsageData( |
| 204 | @JsonProperty("credits_left") Long creditsLeft, | 193 | @JsonProperty("credits_left") Long creditsLeft, |
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/music/SunoApiTests.java
0 → 100644
| 1 | +package cn.iocoder.yudao.framework.ai.music; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi; | ||
| 4 | +import org.junit.jupiter.api.Disabled; | ||
| 5 | +import org.junit.jupiter.api.Test; | ||
| 6 | + | ||
| 7 | +import java.util.List; | ||
| 8 | + | ||
| 9 | +/** | ||
| 10 | + * {@link SunoApi} 集成测试 | ||
| 11 | + * | ||
| 12 | + * @author xiaoxin | ||
| 13 | + */ | ||
| 14 | +public class SunoApiTests { | ||
| 15 | + | ||
| 16 | + private final SunoApi sunoApi = new SunoApi("https://suno-3tah0ycyt-status2xxs-projects.vercel.app"); | ||
| 17 | +// private final SunoApi sunoApi = new SunoApi("http://127.0.0.1:3001"); | ||
| 18 | + | ||
| 19 | + @Test // 描述模式 | ||
| 20 | + @Disabled | ||
| 21 | + public void testGenerate() { | ||
| 22 | + // 准备参数 | ||
| 23 | + SunoApi.MusicGenerateRequest generateRequest = new SunoApi.MusicGenerateRequest( | ||
| 24 | + "happy music", | ||
| 25 | + "chirp-v3-5", | ||
| 26 | + false); | ||
| 27 | + | ||
| 28 | + // 调用方法 | ||
| 29 | + List<SunoApi.MusicData> musicList = sunoApi.generate(generateRequest); | ||
| 30 | + // 打印结果 | ||
| 31 | + System.out.println(musicList); | ||
| 32 | + } | ||
| 33 | + | ||
| 34 | + @Test // 歌词模式 | ||
| 35 | + @Disabled | ||
| 36 | + public void testCustomGenerate() { | ||
| 37 | + // 准备参数 | ||
| 38 | + SunoApi.MusicGenerateRequest generateRequest = new SunoApi.MusicGenerateRequest( | ||
| 39 | + "创作一首带有轻松吉他旋律的流行歌曲,[verse] 描述夏日海滩的宁静,[chorus] 节奏加快,表达对自由的向往。", | ||
| 40 | + "Happy", | ||
| 41 | + "Happy Song", | ||
| 42 | + "chirp-v3.5", | ||
| 43 | + false, | ||
| 44 | + false); | ||
| 45 | + | ||
| 46 | + // 调用方法 | ||
| 47 | + List<SunoApi.MusicData> musicList = sunoApi.customGenerate(generateRequest); | ||
| 48 | + // 打印结果 | ||
| 49 | + System.out.println(musicList); | ||
| 50 | + } | ||
| 51 | + | ||
| 52 | + @Test | ||
| 53 | + @Disabled | ||
| 54 | + public void testGenerateLyrics() { | ||
| 55 | + // 调用方法 | ||
| 56 | + SunoApi.LyricsData lyricsData = sunoApi.generateLyrics("A soothing lullaby"); | ||
| 57 | + // 打印结果 | ||
| 58 | + System.out.println(lyricsData); | ||
| 59 | + } | ||
| 60 | + | ||
| 61 | + @Test | ||
| 62 | + @Disabled | ||
| 63 | + public void testGetMusicList() { | ||
| 64 | + // 准备参数 | ||
| 65 | +// String id = "d460ddda-7c87-4f34-b751-419b08a590ca"; | ||
| 66 | + String id = "584729e5-0fe9-4157-86da-1b4803ff42bf"; | ||
| 67 | + | ||
| 68 | + // 调用方法 | ||
| 69 | + List<SunoApi.MusicData> musicList = sunoApi.getMusicList(List.of(id)); | ||
| 70 | + // 打印结果 | ||
| 71 | + System.out.println(musicList); | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + @Test | ||
| 75 | + @Disabled | ||
| 76 | + public void testGetLimitUsage() { | ||
| 77 | + // 调用方法 | ||
| 78 | + SunoApi.LimitUsageData limitUsageData = sunoApi.getLimitUsage(); | ||
| 79 | + // 打印结果 | ||
| 80 | + System.out.println(limitUsageData); | ||
| 81 | + } | ||
| 82 | + | ||
| 83 | +} |
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/music/SunoTests.java deleted
| 1 | -package cn.iocoder.yudao.framework.ai.music; | ||
| 2 | - | ||
| 3 | -import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi; | ||
| 4 | -import org.junit.jupiter.api.Test; | ||
| 5 | - | ||
| 6 | -import java.util.List; | ||
| 7 | - | ||
| 8 | -// TODO 芋艿:整理单测 | ||
| 9 | -/** | ||
| 10 | - * @Author xiaoxin | ||
| 11 | - * @Date 2024/5/27 | ||
| 12 | - */ | ||
| 13 | -public class SunoTests { | ||
| 14 | - | ||
| 15 | - private final SunoApi sunoApi = new SunoApi("https://suno-55ishh05u-status2xxs-projects.vercel.app"); | ||
| 16 | -// private final SunoApi sunoApi = new SunoApi("http://127.0.0.1:3001"); | ||
| 17 | - | ||
| 18 | - @Test | ||
| 19 | - public void selectById() { | ||
| 20 | - System.out.println(sunoApi.getMusicList(List.of("d460ddda-7c87-4f34-b751-419b08a590ca,ff90ea66-49cd-4fd2-b44c-44267dfd5551"))); | ||
| 21 | - } | ||
| 22 | - | ||
| 23 | - @Test | ||
| 24 | - public void generate() { | ||
| 25 | - List<SunoApi.MusicData> generate = sunoApi.generate(new SunoApi.MusicGenerateRequest("创作一首带有轻松吉他旋律的流行歌曲,[verse] 描述夏日海滩的宁静,[chorus] 节奏加快,表达对自由的向往。")); | ||
| 26 | - System.out.println(generate); | ||
| 27 | - } | ||
| 28 | - | ||
| 29 | - | ||
| 30 | - @Test | ||
| 31 | - public void doChatCompletion() { | ||
| 32 | - List<SunoApi.MusicData> generate = sunoApi.chatCompletion("创作一首带有轻松吉他旋律的流行歌曲,[verse] 描述夏日海滩的宁静,[chorus] 节奏加快,表达对自由的向往。"); | ||
| 33 | - System.out.println(generate); | ||
| 34 | - } | ||
| 35 | - | ||
| 36 | - | ||
| 37 | - @Test | ||
| 38 | - public void generateLyrics() { | ||
| 39 | - SunoApi.LyricsData lyricsData = sunoApi.generateLyrics("A soothing lullaby"); | ||
| 40 | - System.out.println(lyricsData); | ||
| 41 | - } | ||
| 42 | - | ||
| 43 | - | ||
| 44 | - @Test | ||
| 45 | - public void selectLimit() { | ||
| 46 | - SunoApi.LimitUsageData limitUsageData = sunoApi.getLimitUsage(); | ||
| 47 | - System.out.println(limitUsageData); | ||
| 48 | - } | ||
| 49 | - | ||
| 50 | -} |