【新增】AI:音乐接入 API KEY 管理

This commit is contained in:
YunaiV
2024-06-29 09:29:37 +08:00
parent 2e9915b77b
commit 949d5a1815
13 changed files with 108 additions and 48 deletions

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.framework.ai.core.factory;
import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;
import org.springframework.ai.chat.StreamingChatClient;
import org.springframework.ai.image.ImageClient;
@ -55,4 +56,15 @@ public interface AiClientFactory {
*/
ImageClient getOrCreateImageClient(AiPlatformEnum platform, String apiKey, String url);
/**
* 基于指定配置,获得 SunoApi 对象
*
* 如果不存在,则进行创建
*
* @param apiKey API KEY
* @param url API URL
* @return SunoApi 对象
*/
SunoApi getOrCreateSunoApi(String apiKey, String url);
}

View File

@ -9,6 +9,7 @@ import cn.hutool.extra.spring.SpringUtil;
import cn.iocoder.yudao.framework.ai.config.YudaoAiAutoConfiguration;
import cn.iocoder.yudao.framework.ai.config.YudaoAiProperties;
import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;
import cn.iocoder.yudao.framework.ai.core.model.tongyi.QianWenChatClient;
import cn.iocoder.yudao.framework.ai.core.model.tongyi.QianWenChatModal;
import cn.iocoder.yudao.framework.ai.core.model.tongyi.api.QianWenApi;
@ -109,6 +110,11 @@ public class AiClientFactoryImpl implements AiClientFactory {
}
}
@Override
public SunoApi getOrCreateSunoApi(String apiKey, String url) {
return new SunoApi(url);
}
private static String buildClientCacheKey(Class<?> clazz, Object... params) {
if (ArrayUtil.isEmpty(params)) {
return clazz.getName();