From 1e82a332e40754d288ee8fa1145466230c13e6a3 Mon Sep 17 00:00:00 2001 From: Dmytro Skarzhynets Date: Thu, 3 Jul 2025 10:51:34 +0300 Subject: [PATCH] AI rule node: fix Azure Open AI integration after testing --- .../service/ai/Langchain4jChatModelConfigurerImpl.java | 6 +++++- .../common/data/ai/provider/AzureOpenAiProviderConfig.java | 2 +- 2 files changed, 6 insertions(+), 2 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 970e778a29..a3b4524b0b 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 @@ -39,6 +39,7 @@ import org.thingsboard.server.common.data.ai.model.chat.Langchain4jChatModelConf import org.thingsboard.server.common.data.ai.model.chat.MistralAiChatModel; import org.thingsboard.server.common.data.ai.model.chat.OpenAiChatModel; import org.thingsboard.server.common.data.ai.provider.AmazonBedrockProviderConfig; +import org.thingsboard.server.common.data.ai.provider.AzureOpenAiProviderConfig; import org.thingsboard.server.common.data.ai.provider.GoogleVertexAiGeminiProviderConfig; import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; @@ -71,9 +72,12 @@ class Langchain4jChatModelConfigurerImpl implements Langchain4jChatModelConfigur @Override public ChatModel configureChatModel(AzureOpenAiChatModel chatModel) { + AzureOpenAiProviderConfig providerConfig = chatModel.providerConfig(); AzureOpenAiChatModel.Config modelConfig = chatModel.modelConfig(); return dev.langchain4j.model.azure.AzureOpenAiChatModel.builder() - .apiKey(chatModel.providerConfig().apiKey()) + .endpoint(providerConfig.endpoint()) + .serviceVersion(providerConfig.serviceVersion()) + .apiKey(providerConfig.apiKey()) .deploymentName(modelConfig.modelId()) .temperature(modelConfig.temperature()) .topP(modelConfig.topP()) diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/ai/provider/AzureOpenAiProviderConfig.java b/common/data/src/main/java/org/thingsboard/server/common/data/ai/provider/AzureOpenAiProviderConfig.java index 8bebafe117..d80da83225 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/ai/provider/AzureOpenAiProviderConfig.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/ai/provider/AzureOpenAiProviderConfig.java @@ -15,4 +15,4 @@ */ package org.thingsboard.server.common.data.ai.provider; -public record AzureOpenAiProviderConfig(String apiKey) implements AiProviderConfig {} +public record AzureOpenAiProviderConfig(String endpoint, String serviceVersion, String apiKey) implements AiProviderConfig {}