AI rule node: get rid of model type as record component

This commit is contained in:
Dmytro Skarzhynets 2025-07-10 11:40:14 +03:00
parent fd7faa5a9e
commit 82d2c1d93a
No known key found for this signature in database
GPG Key ID: 2B51652F224037DF
10 changed files with 2 additions and 18 deletions

View File

@ -15,7 +15,6 @@
*/ */
package org.thingsboard.server.common.data.ai.model; package org.thingsboard.server.common.data.ai.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeInfo;
import org.thingsboard.server.common.data.ai.model.chat.AmazonBedrockChatModelConfig; import org.thingsboard.server.common.data.ai.model.chat.AmazonBedrockChatModelConfig;
@ -74,7 +73,6 @@ public interface AiModelConfig {
}) })
AiProviderConfig providerConfig(); AiProviderConfig providerConfig();
@JsonProperty("modelType")
AiModelType modelType(); AiModelType modelType();
} }

View File

@ -15,6 +15,7 @@
*/ */
package org.thingsboard.server.common.data.ai.model.chat; package org.thingsboard.server.common.data.ai.model.chat;
import com.fasterxml.jackson.annotation.JsonProperty;
import dev.langchain4j.model.chat.ChatModel; import dev.langchain4j.model.chat.ChatModel;
import org.thingsboard.server.common.data.ai.model.AiModelConfig; import org.thingsboard.server.common.data.ai.model.AiModelConfig;
import org.thingsboard.server.common.data.ai.model.AiModelType; import org.thingsboard.server.common.data.ai.model.AiModelType;
@ -28,6 +29,7 @@ public sealed interface AiChatModelConfig<C extends AiChatModelConfig<C>> extend
ChatModel configure(Langchain4jChatModelConfigurer configurer); ChatModel configure(Langchain4jChatModelConfigurer configurer);
@Override @Override
@JsonProperty(value = "modelType", access = JsonProperty.Access.READ_ONLY)
default AiModelType modelType() { default AiModelType modelType() {
return AiModelType.CHAT; return AiModelType.CHAT;
} }

View File

@ -23,12 +23,10 @@ import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive; import jakarta.validation.constraints.Positive;
import jakarta.validation.constraints.PositiveOrZero; import jakarta.validation.constraints.PositiveOrZero;
import lombok.With; import lombok.With;
import org.thingsboard.server.common.data.ai.model.AiModelType;
import org.thingsboard.server.common.data.ai.provider.AiProvider; import org.thingsboard.server.common.data.ai.provider.AiProvider;
import org.thingsboard.server.common.data.ai.provider.AmazonBedrockProviderConfig; import org.thingsboard.server.common.data.ai.provider.AmazonBedrockProviderConfig;
public record AmazonBedrockChatModelConfig( public record AmazonBedrockChatModelConfig(
AiModelType modelType,
@NotNull @Valid AmazonBedrockProviderConfig providerConfig, @NotNull @Valid AmazonBedrockProviderConfig providerConfig,
@NotBlank String modelId, @NotBlank String modelId,
@PositiveOrZero Double temperature, @PositiveOrZero Double temperature,

View File

@ -23,12 +23,10 @@ import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive; import jakarta.validation.constraints.Positive;
import jakarta.validation.constraints.PositiveOrZero; import jakarta.validation.constraints.PositiveOrZero;
import lombok.With; import lombok.With;
import org.thingsboard.server.common.data.ai.model.AiModelType;
import org.thingsboard.server.common.data.ai.provider.AiProvider; import org.thingsboard.server.common.data.ai.provider.AiProvider;
import org.thingsboard.server.common.data.ai.provider.AnthropicProviderConfig; import org.thingsboard.server.common.data.ai.provider.AnthropicProviderConfig;
public record AnthropicChatModelConfig( public record AnthropicChatModelConfig(
AiModelType modelType,
@NotNull @Valid AnthropicProviderConfig providerConfig, @NotNull @Valid AnthropicProviderConfig providerConfig,
@NotBlank String modelId, @NotBlank String modelId,
@PositiveOrZero Double temperature, @PositiveOrZero Double temperature,

View File

@ -23,12 +23,10 @@ import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive; import jakarta.validation.constraints.Positive;
import jakarta.validation.constraints.PositiveOrZero; import jakarta.validation.constraints.PositiveOrZero;
import lombok.With; import lombok.With;
import org.thingsboard.server.common.data.ai.model.AiModelType;
import org.thingsboard.server.common.data.ai.provider.AiProvider; import org.thingsboard.server.common.data.ai.provider.AiProvider;
import org.thingsboard.server.common.data.ai.provider.AzureOpenAiProviderConfig; import org.thingsboard.server.common.data.ai.provider.AzureOpenAiProviderConfig;
public record AzureOpenAiChatModelConfig( public record AzureOpenAiChatModelConfig(
AiModelType modelType,
@NotNull @Valid AzureOpenAiProviderConfig providerConfig, @NotNull @Valid AzureOpenAiProviderConfig providerConfig,
@NotBlank String modelId, @NotBlank String modelId,
@PositiveOrZero Double temperature, @PositiveOrZero Double temperature,

View File

@ -23,12 +23,10 @@ import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive; import jakarta.validation.constraints.Positive;
import jakarta.validation.constraints.PositiveOrZero; import jakarta.validation.constraints.PositiveOrZero;
import lombok.With; import lombok.With;
import org.thingsboard.server.common.data.ai.model.AiModelType;
import org.thingsboard.server.common.data.ai.provider.AiProvider; import org.thingsboard.server.common.data.ai.provider.AiProvider;
import org.thingsboard.server.common.data.ai.provider.GitHubModelsProviderConfig; import org.thingsboard.server.common.data.ai.provider.GitHubModelsProviderConfig;
public record GitHubModelsChatModelConfig( public record GitHubModelsChatModelConfig(
AiModelType modelType,
@NotNull @Valid GitHubModelsProviderConfig providerConfig, @NotNull @Valid GitHubModelsProviderConfig providerConfig,
@NotBlank String modelId, @NotBlank String modelId,
@PositiveOrZero Double temperature, @PositiveOrZero Double temperature,

View File

@ -23,12 +23,10 @@ import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive; import jakarta.validation.constraints.Positive;
import jakarta.validation.constraints.PositiveOrZero; import jakarta.validation.constraints.PositiveOrZero;
import lombok.With; import lombok.With;
import org.thingsboard.server.common.data.ai.model.AiModelType;
import org.thingsboard.server.common.data.ai.provider.AiProvider; import org.thingsboard.server.common.data.ai.provider.AiProvider;
import org.thingsboard.server.common.data.ai.provider.GoogleAiGeminiProviderConfig; import org.thingsboard.server.common.data.ai.provider.GoogleAiGeminiProviderConfig;
public record GoogleAiGeminiChatModelConfig( public record GoogleAiGeminiChatModelConfig(
AiModelType modelType,
@NotNull @Valid GoogleAiGeminiProviderConfig providerConfig, @NotNull @Valid GoogleAiGeminiProviderConfig providerConfig,
@NotBlank String modelId, @NotBlank String modelId,
@PositiveOrZero Double temperature, @PositiveOrZero Double temperature,

View File

@ -23,12 +23,10 @@ import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive; import jakarta.validation.constraints.Positive;
import jakarta.validation.constraints.PositiveOrZero; import jakarta.validation.constraints.PositiveOrZero;
import lombok.With; import lombok.With;
import org.thingsboard.server.common.data.ai.model.AiModelType;
import org.thingsboard.server.common.data.ai.provider.AiProvider; import org.thingsboard.server.common.data.ai.provider.AiProvider;
import org.thingsboard.server.common.data.ai.provider.GoogleVertexAiGeminiProviderConfig; import org.thingsboard.server.common.data.ai.provider.GoogleVertexAiGeminiProviderConfig;
public record GoogleVertexAiGeminiChatModelConfig( public record GoogleVertexAiGeminiChatModelConfig(
AiModelType modelType,
@NotNull @Valid GoogleVertexAiGeminiProviderConfig providerConfig, @NotNull @Valid GoogleVertexAiGeminiProviderConfig providerConfig,
@NotBlank String modelId, @NotBlank String modelId,
@PositiveOrZero Double temperature, @PositiveOrZero Double temperature,

View File

@ -23,12 +23,10 @@ import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive; import jakarta.validation.constraints.Positive;
import jakarta.validation.constraints.PositiveOrZero; import jakarta.validation.constraints.PositiveOrZero;
import lombok.With; import lombok.With;
import org.thingsboard.server.common.data.ai.model.AiModelType;
import org.thingsboard.server.common.data.ai.provider.AiProvider; import org.thingsboard.server.common.data.ai.provider.AiProvider;
import org.thingsboard.server.common.data.ai.provider.MistralAiProviderConfig; import org.thingsboard.server.common.data.ai.provider.MistralAiProviderConfig;
public record MistralAiChatModelConfig( public record MistralAiChatModelConfig(
AiModelType modelType,
@NotNull @Valid MistralAiProviderConfig providerConfig, @NotNull @Valid MistralAiProviderConfig providerConfig,
@NotBlank String modelId, @NotBlank String modelId,
@PositiveOrZero Double temperature, @PositiveOrZero Double temperature,

View File

@ -23,12 +23,10 @@ import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive; import jakarta.validation.constraints.Positive;
import jakarta.validation.constraints.PositiveOrZero; import jakarta.validation.constraints.PositiveOrZero;
import lombok.With; import lombok.With;
import org.thingsboard.server.common.data.ai.model.AiModelType;
import org.thingsboard.server.common.data.ai.provider.AiProvider; import org.thingsboard.server.common.data.ai.provider.AiProvider;
import org.thingsboard.server.common.data.ai.provider.OpenAiProviderConfig; import org.thingsboard.server.common.data.ai.provider.OpenAiProviderConfig;
public record OpenAiChatModelConfig( public record OpenAiChatModelConfig(
AiModelType modelType,
@NotNull @Valid OpenAiProviderConfig providerConfig, @NotNull @Valid OpenAiProviderConfig providerConfig,
@NotBlank String modelId, @NotBlank String modelId,
@PositiveOrZero Double temperature, @PositiveOrZero Double temperature,