From 55c992d57b2dd44e2ccae44c7203ef6353224c50 Mon Sep 17 00:00:00 2001 From: Dmytro Skarzhynets Date: Wed, 2 Jul 2025 19:55:30 +0300 Subject: [PATCH] AI rule node: if specified, use request timeout from model config --- .../org/thingsboard/server/controller/AiModelController.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/AiModelController.java b/application/src/main/java/org/thingsboard/server/controller/AiModelController.java index b9322052a3..c7dfce90bc 100644 --- a/application/src/main/java/org/thingsboard/server/controller/AiModelController.java +++ b/application/src/main/java/org/thingsboard/server/controller/AiModelController.java @@ -31,6 +31,8 @@ import org.thingsboard.server.common.data.ai.model.chat.AiChatModel; import org.thingsboard.server.config.annotations.ApiOperation; import org.thingsboard.server.service.ai.AiModelService; +import java.time.Duration; + import static com.google.common.util.concurrent.MoreExecutors.directExecutor; import static org.thingsboard.server.controller.ControllerConstants.TENANT_AUTHORITY_PARAGRAPH; @@ -57,7 +59,8 @@ class AiModelController extends BaseController { .transform(chatResponse -> (TbChatResponse) new TbChatResponse.Success(chatResponse.aiMessage().text()), directExecutor()) .catching(Throwable.class, ex -> new TbChatResponse.Failure(ex.getMessage()), directExecutor()); - return wrapFuture(future); + Integer requestTimeoutSeconds = chatModel.modelConfig().timeoutSeconds(); + return requestTimeoutSeconds != null ? wrapFuture(future, Duration.ofSeconds(requestTimeoutSeconds).toMillis()) : wrapFuture(future); } }