AI rule node: add presence penalty for the models that support it

This commit is contained in:
Dmytro Skarzhynets 2025-06-27 19:27:52 +03:00
parent dfe4dea436
commit bc96c63fcf
No known key found for this signature in database
GPG Key ID: 2B51652F224037DF
7 changed files with 14 additions and 0 deletions

View File

@ -62,6 +62,7 @@ class Langchain4jChatModelConfigurerImpl implements Langchain4jChatModelConfigur
.temperature(modelConfig.temperature())
.topP(modelConfig.topP())
.frequencyPenalty(modelConfig.frequencyPenalty())
.presencePenalty(modelConfig.presencePenalty())
.timeout(toDuration(modelConfig.timeoutSeconds()))
.maxRetries(modelConfig.maxRetries())
.build();
@ -76,6 +77,7 @@ class Langchain4jChatModelConfigurerImpl implements Langchain4jChatModelConfigur
.temperature(modelConfig.temperature())
.topP(modelConfig.topP())
.frequencyPenalty(modelConfig.frequencyPenalty())
.presencePenalty(modelConfig.presencePenalty())
.timeout(toDuration(modelConfig.timeoutSeconds()))
.maxRetries(modelConfig.maxRetries())
.build();
@ -91,6 +93,7 @@ class Langchain4jChatModelConfigurerImpl implements Langchain4jChatModelConfigur
.topP(modelConfig.topP())
.topK(modelConfig.topK())
.frequencyPenalty(modelConfig.frequencyPenalty())
.presencePenalty(modelConfig.presencePenalty())
.timeout(toDuration(modelConfig.timeoutSeconds()))
.maxRetries(modelConfig.maxRetries())
.build();
@ -159,6 +162,9 @@ class Langchain4jChatModelConfigurerImpl implements Langchain4jChatModelConfigur
if (modelConfig.frequencyPenalty() != null) {
generationConfigBuilder.setFrequencyPenalty(modelConfig.frequencyPenalty().floatValue());
}
if (modelConfig.frequencyPenalty() != null) {
generationConfigBuilder.setPresencePenalty(modelConfig.frequencyPenalty().floatValue());
}
var generationConfig = generationConfigBuilder.build();
// construct generative model instance
@ -184,6 +190,7 @@ class Langchain4jChatModelConfigurerImpl implements Langchain4jChatModelConfigur
.temperature(modelConfig.temperature())
.topP(modelConfig.topP())
.frequencyPenalty(modelConfig.frequencyPenalty())
.presencePenalty(modelConfig.presencePenalty())
.timeout(toDuration(modelConfig.timeoutSeconds()))
.maxRetries(modelConfig.maxRetries())
.build();
@ -240,6 +247,7 @@ class Langchain4jChatModelConfigurerImpl implements Langchain4jChatModelConfigur
.temperature(modelConfig.temperature())
.topP(modelConfig.topP())
.frequencyPenalty(modelConfig.frequencyPenalty())
.presencePenalty(modelConfig.presencePenalty())
.timeout(toDuration(modelConfig.timeoutSeconds()))
.maxRetries(modelConfig.maxRetries())
.build();

View File

@ -32,6 +32,7 @@ public record AzureOpenAiChatModel(
Double temperature,
Double topP,
Double frequencyPenalty,
Double presencePenalty,
Integer timeoutSeconds,
Integer maxRetries
) implements AiChatModelConfig<AzureOpenAiChatModel.Config> {}

View File

@ -32,6 +32,7 @@ public record GitHubModelsChatModel(
Double temperature,
Double topP,
Double frequencyPenalty,
Double presencePenalty,
Integer timeoutSeconds,
Integer maxRetries
) implements AiChatModelConfig<GitHubModelsChatModel.Config> {}

View File

@ -33,6 +33,7 @@ public record GoogleAiGeminiChatModel(
Double topP,
Integer topK,
Double frequencyPenalty,
Double presencePenalty,
Integer timeoutSeconds,
Integer maxRetries
) implements AiChatModelConfig<GoogleAiGeminiChatModel.Config> {}

View File

@ -33,6 +33,7 @@ public record GoogleVertexAiGeminiChatModel(
Double topP,
Integer topK,
Double frequencyPenalty,
Double presencePenalty,
Integer timeoutSeconds,
Integer maxRetries
) implements AiChatModelConfig<GoogleVertexAiGeminiChatModel.Config> {}

View File

@ -32,6 +32,7 @@ public record MistralAiChatModel(
Double temperature,
Double topP,
Double frequencyPenalty,
Double presencePenalty,
Integer timeoutSeconds,
Integer maxRetries
) implements AiChatModelConfig<MistralAiChatModel.Config> {}

View File

@ -32,6 +32,7 @@ public record OpenAiChatModel(
Double temperature,
Double topP,
Double frequencyPenalty,
Double presencePenalty,
Integer timeoutSeconds,
Integer maxRetries
) implements AiChatModelConfig<OpenAiChatModel.Config> {}