mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-07-14 11:05:06 +08:00
【新增】AI:使用 DALL 绘图时,使用 b64_json 返回
This commit is contained in:
@ -20,7 +20,8 @@ public enum AiPlatformEnum {
|
||||
QIAN_WEN("QianWen", "千问"), // 阿里
|
||||
GEMIR ("gemir ", "gemir "), // 谷歌
|
||||
|
||||
OPEN_AI_DALL("dall", "dall"), // TODO OpenAI 提供的绘图,接入中
|
||||
OPEN_AI_DALL("dall", "dall"), // TODO OpenAI 提供的绘图,接入中;TODO 要不要统一下?!
|
||||
STABLE_DIFFUSION("StableDiffusion", "StableDiffusion"), // Stability AI
|
||||
MIDJOURNEY("midjourney", "midjourney"), // TODO MJ 提供的绘图,接入中
|
||||
;
|
||||
|
||||
|
@ -13,6 +13,7 @@ import lombok.Getter;
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
@Deprecated
|
||||
public enum OpenAiImageModelEnum {
|
||||
|
||||
DALL_E_2("dall-e-2", "dall-e-2"),
|
||||
|
@ -13,6 +13,7 @@ import lombok.Getter;
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
@Deprecated
|
||||
public enum OpenAiImageStyleEnum {
|
||||
|
||||
// 图像生成的风格。可为vivid(生动)或 natural(自然)。vivid会使模型偏向生成超现实和戏剧性的图像,而natural则会让模型产出更自然、不那么超现实的图像。该参数仅对dall-e-3模型有效。
|
||||
|
@ -3,6 +3,7 @@ package cn.iocoder.yudao.framework.ai.core.factory;
|
||||
import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
|
||||
import org.springframework.ai.chat.StreamingChatClient;
|
||||
import org.springframework.ai.chat.prompt.ChatOptions;
|
||||
import org.springframework.ai.image.ImageClient;
|
||||
|
||||
/**
|
||||
* AI 客户端工厂的接口类
|
||||
@ -33,6 +34,16 @@ public interface AiClientFactory {
|
||||
*/
|
||||
StreamingChatClient getDefaultStreamingChatClient(AiPlatformEnum platform);
|
||||
|
||||
/**
|
||||
* 基于默认配置,获得 ImageClient 对象
|
||||
*
|
||||
* 默认配置,指的是在 application.yaml 配置文件中的 spring.ai 相关的配置
|
||||
*
|
||||
* @param platform 平台
|
||||
* @return ImageClient 对象
|
||||
*/
|
||||
ImageClient getDefaultImageClient(AiPlatformEnum platform);
|
||||
|
||||
/**
|
||||
* 创建 Chat 参数
|
||||
*
|
||||
|
@ -24,11 +24,13 @@ import org.springframework.ai.autoconfigure.ollama.OllamaAutoConfiguration;
|
||||
import org.springframework.ai.autoconfigure.openai.OpenAiAutoConfiguration;
|
||||
import org.springframework.ai.chat.StreamingChatClient;
|
||||
import org.springframework.ai.chat.prompt.ChatOptions;
|
||||
import org.springframework.ai.image.ImageClient;
|
||||
import org.springframework.ai.ollama.OllamaChatClient;
|
||||
import org.springframework.ai.ollama.api.OllamaApi;
|
||||
import org.springframework.ai.ollama.api.OllamaOptions;
|
||||
import org.springframework.ai.openai.OpenAiChatClient;
|
||||
import org.springframework.ai.openai.OpenAiChatOptions;
|
||||
import org.springframework.ai.openai.OpenAiImageClient;
|
||||
import org.springframework.ai.openai.api.ApiUtils;
|
||||
import org.springframework.ai.openai.api.OpenAiApi;
|
||||
|
||||
@ -84,6 +86,16 @@ public class AiClientFactoryImpl implements AiClientFactory {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImageClient getDefaultImageClient(AiPlatformEnum platform) {
|
||||
switch (platform) {
|
||||
case OPEN_AI_DALL:
|
||||
return SpringUtil.getBean(OpenAiImageClient.class);
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private static String buildClientCacheKey(Class<?> clazz, Object... params) {
|
||||
if (ArrayUtil.isEmpty(params)) {
|
||||
return clazz.getName();
|
||||
|
Reference in New Issue
Block a user