Browse Source
AI rule node: get rid of model type as record component
pull/13371/head
Dmytro Skarzhynets
1 year ago
No known key found for this signature in database
GPG Key ID: 2B51652F224037DF
10 changed files with
2 additions and
18 deletions
-
common/data/src/main/java/org/thingsboard/server/common/data/ai/model/AiModelConfig.java
-
common/data/src/main/java/org/thingsboard/server/common/data/ai/model/chat/AiChatModelConfig.java
-
common/data/src/main/java/org/thingsboard/server/common/data/ai/model/chat/AmazonBedrockChatModelConfig.java
-
common/data/src/main/java/org/thingsboard/server/common/data/ai/model/chat/AnthropicChatModelConfig.java
-
common/data/src/main/java/org/thingsboard/server/common/data/ai/model/chat/AzureOpenAiChatModelConfig.java
-
common/data/src/main/java/org/thingsboard/server/common/data/ai/model/chat/GitHubModelsChatModelConfig.java
-
common/data/src/main/java/org/thingsboard/server/common/data/ai/model/chat/GoogleAiGeminiChatModelConfig.java
-
common/data/src/main/java/org/thingsboard/server/common/data/ai/model/chat/GoogleVertexAiGeminiChatModelConfig.java
-
common/data/src/main/java/org/thingsboard/server/common/data/ai/model/chat/MistralAiChatModelConfig.java
-
common/data/src/main/java/org/thingsboard/server/common/data/ai/model/chat/OpenAiChatModelConfig.java
|
|
|
@ -15,7 +15,6 @@ |
|
|
|
*/ |
|
|
|
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.JsonTypeInfo; |
|
|
|
import org.thingsboard.server.common.data.ai.model.chat.AmazonBedrockChatModelConfig; |
|
|
|
@ -74,7 +73,6 @@ public interface AiModelConfig { |
|
|
|
}) |
|
|
|
AiProviderConfig providerConfig(); |
|
|
|
|
|
|
|
@JsonProperty("modelType") |
|
|
|
AiModelType modelType(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@ -15,6 +15,7 @@ |
|
|
|
*/ |
|
|
|
package org.thingsboard.server.common.data.ai.model.chat; |
|
|
|
|
|
|
|
import com.fasterxml.jackson.annotation.JsonProperty; |
|
|
|
import dev.langchain4j.model.chat.ChatModel; |
|
|
|
import org.thingsboard.server.common.data.ai.model.AiModelConfig; |
|
|
|
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); |
|
|
|
|
|
|
|
@Override |
|
|
|
@JsonProperty(value = "modelType", access = JsonProperty.Access.READ_ONLY) |
|
|
|
default AiModelType modelType() { |
|
|
|
return AiModelType.CHAT; |
|
|
|
} |
|
|
|
|
|
|
|
@ -23,12 +23,10 @@ import jakarta.validation.constraints.NotNull; |
|
|
|
import jakarta.validation.constraints.Positive; |
|
|
|
import jakarta.validation.constraints.PositiveOrZero; |
|
|
|
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.AmazonBedrockProviderConfig; |
|
|
|
|
|
|
|
public record AmazonBedrockChatModelConfig( |
|
|
|
AiModelType modelType, |
|
|
|
@NotNull @Valid AmazonBedrockProviderConfig providerConfig, |
|
|
|
@NotBlank String modelId, |
|
|
|
@PositiveOrZero Double temperature, |
|
|
|
|
|
|
|
@ -23,12 +23,10 @@ import jakarta.validation.constraints.NotNull; |
|
|
|
import jakarta.validation.constraints.Positive; |
|
|
|
import jakarta.validation.constraints.PositiveOrZero; |
|
|
|
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.AnthropicProviderConfig; |
|
|
|
|
|
|
|
public record AnthropicChatModelConfig( |
|
|
|
AiModelType modelType, |
|
|
|
@NotNull @Valid AnthropicProviderConfig providerConfig, |
|
|
|
@NotBlank String modelId, |
|
|
|
@PositiveOrZero Double temperature, |
|
|
|
|
|
|
|
@ -23,12 +23,10 @@ import jakarta.validation.constraints.NotNull; |
|
|
|
import jakarta.validation.constraints.Positive; |
|
|
|
import jakarta.validation.constraints.PositiveOrZero; |
|
|
|
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.AzureOpenAiProviderConfig; |
|
|
|
|
|
|
|
public record AzureOpenAiChatModelConfig( |
|
|
|
AiModelType modelType, |
|
|
|
@NotNull @Valid AzureOpenAiProviderConfig providerConfig, |
|
|
|
@NotBlank String modelId, |
|
|
|
@PositiveOrZero Double temperature, |
|
|
|
|
|
|
|
@ -23,12 +23,10 @@ import jakarta.validation.constraints.NotNull; |
|
|
|
import jakarta.validation.constraints.Positive; |
|
|
|
import jakarta.validation.constraints.PositiveOrZero; |
|
|
|
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.GitHubModelsProviderConfig; |
|
|
|
|
|
|
|
public record GitHubModelsChatModelConfig( |
|
|
|
AiModelType modelType, |
|
|
|
@NotNull @Valid GitHubModelsProviderConfig providerConfig, |
|
|
|
@NotBlank String modelId, |
|
|
|
@PositiveOrZero Double temperature, |
|
|
|
|
|
|
|
@ -23,12 +23,10 @@ import jakarta.validation.constraints.NotNull; |
|
|
|
import jakarta.validation.constraints.Positive; |
|
|
|
import jakarta.validation.constraints.PositiveOrZero; |
|
|
|
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.GoogleAiGeminiProviderConfig; |
|
|
|
|
|
|
|
public record GoogleAiGeminiChatModelConfig( |
|
|
|
AiModelType modelType, |
|
|
|
@NotNull @Valid GoogleAiGeminiProviderConfig providerConfig, |
|
|
|
@NotBlank String modelId, |
|
|
|
@PositiveOrZero Double temperature, |
|
|
|
|
|
|
|
@ -23,12 +23,10 @@ import jakarta.validation.constraints.NotNull; |
|
|
|
import jakarta.validation.constraints.Positive; |
|
|
|
import jakarta.validation.constraints.PositiveOrZero; |
|
|
|
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.GoogleVertexAiGeminiProviderConfig; |
|
|
|
|
|
|
|
public record GoogleVertexAiGeminiChatModelConfig( |
|
|
|
AiModelType modelType, |
|
|
|
@NotNull @Valid GoogleVertexAiGeminiProviderConfig providerConfig, |
|
|
|
@NotBlank String modelId, |
|
|
|
@PositiveOrZero Double temperature, |
|
|
|
|
|
|
|
@ -23,12 +23,10 @@ import jakarta.validation.constraints.NotNull; |
|
|
|
import jakarta.validation.constraints.Positive; |
|
|
|
import jakarta.validation.constraints.PositiveOrZero; |
|
|
|
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.MistralAiProviderConfig; |
|
|
|
|
|
|
|
public record MistralAiChatModelConfig( |
|
|
|
AiModelType modelType, |
|
|
|
@NotNull @Valid MistralAiProviderConfig providerConfig, |
|
|
|
@NotBlank String modelId, |
|
|
|
@PositiveOrZero Double temperature, |
|
|
|
|
|
|
|
@ -23,12 +23,10 @@ import jakarta.validation.constraints.NotNull; |
|
|
|
import jakarta.validation.constraints.Positive; |
|
|
|
import jakarta.validation.constraints.PositiveOrZero; |
|
|
|
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.OpenAiProviderConfig; |
|
|
|
|
|
|
|
public record OpenAiChatModelConfig( |
|
|
|
AiModelType modelType, |
|
|
|
@NotNull @Valid OpenAiProviderConfig providerConfig, |
|
|
|
@NotBlank String modelId, |
|
|
|
@PositiveOrZero Double temperature, |
|
|
|
|