Commit 546b522c4884b1f1574eee2ae4d331a1d96520ee

Authored by cherishsince
1 parent 10ca7a93

【添加todo】google gemini 初始化问题

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; @@ -20,9 +20,12 @@ import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XingHuoApi;
20 import cn.iocoder.yudao.framework.ai.core.model.yiyan.YiYanChatClient; 20 import cn.iocoder.yudao.framework.ai.core.model.yiyan.YiYanChatClient;
21 import cn.iocoder.yudao.framework.ai.core.model.yiyan.YiYanChatOptions; 21 import cn.iocoder.yudao.framework.ai.core.model.yiyan.YiYanChatOptions;
22 import cn.iocoder.yudao.framework.ai.core.model.yiyan.api.YiYanApi; 22 import cn.iocoder.yudao.framework.ai.core.model.yiyan.api.YiYanApi;
  23 +import com.google.auth.oauth2.GoogleCredentials;
23 import com.google.cloud.vertexai.VertexAI; 24 import com.google.cloud.vertexai.VertexAI;
24 import org.springframework.ai.autoconfigure.ollama.OllamaAutoConfiguration; 25 import org.springframework.ai.autoconfigure.ollama.OllamaAutoConfiguration;
25 import org.springframework.ai.autoconfigure.openai.OpenAiAutoConfiguration; 26 import org.springframework.ai.autoconfigure.openai.OpenAiAutoConfiguration;
  27 +import org.springframework.ai.autoconfigure.vertexai.gemini.VertexAiGeminiConnectionProperties;
  28 +import org.springframework.ai.autoconfigure.vertexai.palm2.VertexAiPalm2ConnectionProperties;
26 import org.springframework.ai.chat.StreamingChatClient; 29 import org.springframework.ai.chat.StreamingChatClient;
27 import org.springframework.ai.chat.prompt.ChatOptions; 30 import org.springframework.ai.chat.prompt.ChatOptions;
28 import org.springframework.ai.ollama.OllamaChatClient; 31 import org.springframework.ai.ollama.OllamaChatClient;
@@ -35,6 +38,7 @@ import org.springframework.ai.openai.api.OpenAiApi; @@ -35,6 +38,7 @@ import org.springframework.ai.openai.api.OpenAiApi;
35 import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatClient; 38 import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatClient;
36 import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatOptions; 39 import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatOptions;
37 40
  41 +import java.io.IOException;
38 import java.util.List; 42 import java.util.List;
39 43
40 /** 44 /**
@@ -169,15 +173,23 @@ public class AiClientFactoryImpl implements AiClientFactory { @@ -169,15 +173,23 @@ public class AiClientFactoryImpl implements AiClientFactory {
169 return new QianWenChatClient(qianWenApi); 173 return new QianWenChatClient(qianWenApi);
170 } 174 }
171 175
172 -  
173 private static VertexAiGeminiChatClient buildGoogleGemir(String key) { 176 private static VertexAiGeminiChatClient buildGoogleGemir(String key) {
174 List<String> keys = StrUtil.split(key, '|'); 177 List<String> keys = StrUtil.split(key, '|');
175 Assert.equals(keys.size(), 2, "VertexAiGeminiChatClient 的密钥需要 (projectId|location) 格式"); 178 Assert.equals(keys.size(), 2, "VertexAiGeminiChatClient 的密钥需要 (projectId|location) 格式");
176 - VertexAI vertexApi = new VertexAI(keys.get(0), keys.get(1)); 179 +// VertexAiGeminiConnectionProperties connectionProperties = new VertexAiGeminiConnectionProperties();
  180 +// connectionProperties.setApiKey("AIzaSyBpe376HTA8uPKJN_OJTh7MEO3v6LMqfXU");
  181 +//
  182 +// GoogleCredentials credentials = GoogleCredentials.fromStream(connectionProperties.getCredentialsUri().getInputStream());
  183 + // todo @芋艿 google gemini 没找到对于初始化 client 方式,文档中说是用过 GoogleCredentials 来初始化凭证
  184 + // api-key: AIzaSyBpe376HTA8uPKJN_OJTh7MEO3v6LMqfXU
  185 + VertexAI vertexApi = new VertexAI(
  186 + "skilled-snow-409401",
  187 + "us-central1"
  188 + );
177 return new VertexAiGeminiChatClient(vertexApi, 189 return new VertexAiGeminiChatClient(vertexApi,
178 VertexAiGeminiChatOptions.builder() 190 VertexAiGeminiChatOptions.builder()
179 .withTemperature(0.4F) 191 .withTemperature(0.4F)
  192 + .withModel(VertexAiGeminiChatClient.ChatModel.GEMINI_PRO.getValue())
180 .build()); 193 .build());
181 } 194 }
182 -  
183 } 195 }