!2 解决todo

Merge pull request !2 from 小新/master-jdk21-ai
This commit is contained in:
芋道源码
2024-05-30 11:24:17 +00:00
committed by Gitee
8 changed files with 127 additions and 168 deletions

View File

@ -1,13 +1,17 @@
package cn.iocoder.yudao.module.ai.controller.admin.music.vo;
import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.List;
import java.util.stream.Collectors;
/**
* 表示单个音乐数据的类
*/
@Data
public class MusicDataVO {
public class MusicDataVO {
/**
* 音乐数据的 ID
*/
@ -61,4 +65,21 @@ public class MusicDataVO {
* 音乐音频的风格
*/
private String style;
public static List<MusicDataVO> convertFrom(List<SunoApi.SunoResp.MusicData> musicDataList) {
return musicDataList.stream().map(musicData -> {
MusicDataVO musicDataVO = new MusicDataVO();
musicDataVO.setId(musicData.id());
musicDataVO.setTitle(musicData.title());
musicDataVO.setImageUrl(musicData.imageUrl());
musicDataVO.setLyric(musicData.lyric());
musicDataVO.setAudioUrl(musicData.audioUrl());
musicDataVO.setVideoUrl(musicData.videoUrl());
musicDataVO.setCreatedAt(musicData.createdAt());
musicDataVO.setModel(musicData.model());
musicDataVO.setPrompt(musicData.prompt());
musicDataVO.setStyle(musicData.style());
return musicDataVO;
}).collect(Collectors.toList());
}
}

View File

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.ai.controller.admin.music.vo;
import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@ -26,4 +27,14 @@ public class SunoRespVO {
*/
private List<MusicDataVO> data;
//把 SunoResp转为本vo类
public static SunoRespVO convertFrom(SunoApi.SunoResp sunoResp) {
SunoRespVO sunoRespVO = new SunoRespVO();
sunoRespVO.setSuccess(sunoResp.success());
sunoRespVO.setTaskId(sunoResp.taskId());
sunoRespVO.setData(MusicDataVO.convertFrom(sunoResp.data()));
return sunoRespVO;
}
}

View File

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.ai.service.music;
import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.ai.controller.admin.music.vo.SunoReqVO;
import cn.iocoder.yudao.module.ai.controller.admin.music.vo.SunoRespVO;
import lombok.RequiredArgsConstructor;
@ -19,7 +18,14 @@ public class MusicServiceImpl implements MusicService {
@Override
public SunoRespVO musicGen(SunoReqVO sunoReqVO) {
SunoApi.SunoRequest req = BeanUtils.toBean(sunoReqVO, SunoApi.SunoRequest.class);
return BeanUtils.toBean(sunoApi.musicGen(req), SunoRespVO.class);
SunoApi.SunoResp sunoResp = sunoApi.musicGen(new SunoApi.SunoReq(
sunoReqVO.getPrompt(),
sunoReqVO.getLyric(),
sunoReqVO.isCustom(),
sunoReqVO.getTitle(),
sunoReqVO.getStyle(),
sunoReqVO.getCallbackUrl()
));
return SunoRespVO.convertFrom(sunoResp);
}
}