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

This commit is contained in:
YunaiV 2024-07-06 23:13:55 +08:00
parent 62d5ed8395
commit fa230cea8e
3 changed files with 84 additions and 62 deletions

View File

@ -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,

View File

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

View File

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