소스 검색

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

cherishsince 1 년 전
부모
커밋
546b522c48

+ 15 - 3
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<String> 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());
     }
-
 }