From 944d80df9d590dec6be724a7975f29a0d887f03e Mon Sep 17 00:00:00 2001 From: Dmytro Skarzhynets Date: Wed, 2 Jul 2025 18:25:23 +0300 Subject: [PATCH] AI rule node: add file name to Vertex AI provider config; change service account key to be string --- .../service/ai/Langchain4jChatModelConfigurerImpl.java | 5 +---- .../data/ai/provider/GoogleVertexAiGeminiProviderConfig.java | 5 ++--- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/ai/Langchain4jChatModelConfigurerImpl.java b/application/src/main/java/org/thingsboard/server/service/ai/Langchain4jChatModelConfigurerImpl.java index 30942beda7..970e778a29 100644 --- a/application/src/main/java/org/thingsboard/server/service/ai/Langchain4jChatModelConfigurerImpl.java +++ b/application/src/main/java/org/thingsboard/server/service/ai/Langchain4jChatModelConfigurerImpl.java @@ -29,7 +29,6 @@ import dev.langchain4j.model.chat.ChatModel; import dev.langchain4j.model.chat.request.ChatRequestParameters; import dev.langchain4j.model.vertexai.gemini.VertexAiGeminiChatModel; import org.springframework.stereotype.Component; -import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.ai.model.chat.AmazonBedrockChatModel; import org.thingsboard.server.common.data.ai.model.chat.AnthropicChatModel; import org.thingsboard.server.common.data.ai.model.chat.AzureOpenAiChatModel; @@ -113,9 +112,7 @@ class Langchain4jChatModelConfigurerImpl implements Langchain4jChatModelConfigur // construct service account credentials using service account key JSON ServiceAccountCredentials serviceAccountCredentials; try { - serviceAccountCredentials = ServiceAccountCredentials.fromStream( - new ByteArrayInputStream(JacksonUtil.writeValueAsBytes(providerConfig.serviceAccountKey())) - ); + serviceAccountCredentials = ServiceAccountCredentials.fromStream(new ByteArrayInputStream(providerConfig.serviceAccountKey().getBytes())); } catch (IOException e) { throw new RuntimeException("Failed to parse service account key JSON", e); } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/ai/provider/GoogleVertexAiGeminiProviderConfig.java b/common/data/src/main/java/org/thingsboard/server/common/data/ai/provider/GoogleVertexAiGeminiProviderConfig.java index a5140279ac..e714b7d371 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/ai/provider/GoogleVertexAiGeminiProviderConfig.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/ai/provider/GoogleVertexAiGeminiProviderConfig.java @@ -15,12 +15,11 @@ */ package org.thingsboard.server.common.data.ai.provider; -import com.fasterxml.jackson.databind.node.ObjectNode; - public record GoogleVertexAiGeminiProviderConfig( + String fileName, // not used on BE, but needed for UI String projectId, String location, - ObjectNode serviceAccountKey + String serviceAccountKey ) implements AiProviderConfig { @Override