From 546b522c4884b1f1574eee2ae4d331a1d96520ee Mon Sep 17 00:00:00 2001 From: cherishsince Date: Fri, 24 May 2024 16:10:23 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=B7=BB=E5=8A=A0todo=E3=80=91google?= =?UTF-8?q?=20gemini=20=E5=88=9D=E5=A7=8B=E5=8C=96=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/core/factory/AiClientFactoryImpl.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/factory/AiClientFactoryImpl.java b/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/factory/AiClientFactoryImpl.java index 0f83a99ee..b60435968 100644 --- a/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/factory/AiClientFactoryImpl.java +++ b/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/factory/AiClientFactoryImpl.java @@ -20,9 +20,12 @@ import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoApi; import cn.iocoder.yudao.framework.ai.core.model.yiyan.YiYanChatClient; import cn.iocoder.yudao.framework.ai.core.model.yiyan.YiYanChatOptions; import cn.iocoder.yudao.framework.ai.core.model.yiyan.api.YiYanApi; +import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.vertexai.VertexAI; import org.springframework.ai.autoconfigure.ollama.OllamaAutoConfiguration; import org.springframework.ai.autoconfigure.openai.OpenAiAutoConfiguration; +import org.springframework.ai.autoconfigure.vertexai.gemini.VertexAiGeminiConnectionProperties; +import org.springframework.ai.autoconfigure.vertexai.palm2.VertexAiPalm2ConnectionProperties; import org.springframework.ai.chat.StreamingChatClient; import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.ollama.OllamaChatClient; @@ -35,6 +38,7 @@ import org.springframework.ai.openai.api.OpenAiApi; import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatClient; import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatOptions; +import java.io.IOException; import java.util.List; /** @@ -169,15 +173,23 @@ public class AiClientFactoryImpl implements AiClientFactory { return new QianWenChatClient(qianWenApi); } - private static VertexAiGeminiChatClient buildGoogleGemir(String key) { List keys = StrUtil.split(key, '|'); Assert.equals(keys.size(), 2, "VertexAiGeminiChatClient 的密钥需要 (projectId|location) 格式"); - VertexAI vertexApi = new VertexAI(keys.get(0), keys.get(1)); +// VertexAiGeminiConnectionProperties connectionProperties = new VertexAiGeminiConnectionProperties(); +// connectionProperties.setApiKey("AIzaSyBpe376HTA8uPKJN_OJTh7MEO3v6LMqfXU"); +// +// GoogleCredentials credentials = GoogleCredentials.fromStream(connectionProperties.getCredentialsUri().getInputStream()); + // todo @芋艿 google gemini 没找到对于初始化 client 方式,文档中说是用过 GoogleCredentials 来初始化凭证 + // api-key: AIzaSyBpe376HTA8uPKJN_OJTh7MEO3v6LMqfXU + VertexAI vertexApi = new VertexAI( + "skilled-snow-409401", + "us-central1" + ); return new VertexAiGeminiChatClient(vertexApi, VertexAiGeminiChatOptions.builder() .withTemperature(0.4F) + .withModel(VertexAiGeminiChatClient.ChatModel.GEMINI_PRO.getValue()) .build()); } - }