Browse Source

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

YunaiV 9 months ago
parent
commit
fa230cea8e

+ 1 - 12
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 {
                 .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,

+ 83 - 0
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/music/SunoApiTests.java

@@ -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);
+    }
+
+}

+ 0 - 50
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/music/SunoTests.java

@@ -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);
-    }
-
-}