Commit fa230cea8e4ca46c7c4842563ee11cd029bc42c9

Authored by YunaiV
1 parent 62d5ed83

【代码优化】AI:完善 SunoApiTests 单测,方便大家快速体验

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 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 71 public LyricsData generateLyrics(String prompt) {
83 72 return this.webClient.post()
84 73 .uri("/api/generate_lyrics")
... ... @@ -198,7 +187,7 @@ public class SunoApi {
198 187 }
199 188  
200 189 /**
201   - * Suno API 响应的限额数据,目前每日免费50
  190 + * Suno API 响应的限额数据,目前每日免费 50
202 191 */
203 192 public record LimitUsageData(
204 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   -}