Skip to content

Commit 8e6851f

Browse files
authored
Bump-up lc4j 1.3.0 -> 1.5.0 (#10683)
Signed-off-by: Daniel Kec <[email protected]>
1 parent 2d81d7f commit 8e6851f

File tree

14 files changed

+84
-10
lines changed

14 files changed

+84
-10
lines changed

dependencies/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@
108108
<version.lib.kafka>3.9.1</version.lib.kafka>
109109
<!-- Kotlin: dependency convergence requirement, we never use this directly -->
110110
<version.lib.kotlin>1.9.10</version.lib.kotlin>
111-
<version.lib.langchain4j>1.3.0</version.lib.langchain4j>
112-
<version.lib.langchain4j-community>1.3.0-beta9</version.lib.langchain4j-community>
111+
<version.lib.langchain4j>1.5.0</version.lib.langchain4j>
112+
<version.lib.langchain4j-community>1.5.0-beta11</version.lib.langchain4j-community>
113113
<version.lib.log4j>2.21.1</version.lib.log4j>
114114
<version.lib.mariadb-java-client>2.6.2</version.lib.mariadb-java-client>
115115
<version.lib.maven-wagon>2.10</version.lib.maven-wagon>

integrations/langchain4j/codegen/src/main/java/io/helidon/integrations/langchain4j/codegen/LangchainTypes.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ final class LangchainTypes {
3636
static final Annotation TOOL_QUALIFIER_ANNOTATION = Annotation.create(AI_TOOL);
3737
static final TypeName MODEL_CONFIG_TYPE = TypeName.create("io.helidon.integrations.langchain4j.AiProvider.ModelConfig");
3838
static final TypeName MODEL_CONFIGS_TYPE = TypeName.create("io.helidon.integrations.langchain4j.AiProvider.ModelConfigs");
39+
static final TypeName MODEL_CONFIG_KEY_TYPE = TypeName.create("io.helidon.integrations.langchain4j.AiProvider.ConfigKey");
3940
static final TypeName MODEL_DEFAULT_WEIGHT = TypeName.create("io.helidon.integrations.langchain4j.AiProvider.DefaultWeight");
4041
static final TypeName MODEL_NESTED_CONFIG = TypeName.create("io.helidon.integrations.langchain4j.AiProvider.NestedConfig");
4142
static final TypeName MODEL_CUSTOM_BUILDER_MAPPING =

integrations/langchain4j/codegen/src/main/java/io/helidon/integrations/langchain4j/codegen/ModelConfigCodegen.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import io.helidon.common.types.TypeNames;
3232

3333
import static io.helidon.integrations.langchain4j.codegen.LangchainTypes.MODEL_CONFIGS_TYPE;
34+
import static io.helidon.integrations.langchain4j.codegen.LangchainTypes.MODEL_CONFIG_KEY_TYPE;
3435
import static io.helidon.integrations.langchain4j.codegen.LangchainTypes.MODEL_CONFIG_TYPE;
3536
import static java.util.function.Predicate.not;
3637

@@ -66,6 +67,8 @@ private void process(RoundContext ctx,
6667
.collect(Collectors.toSet());
6768

6869
var providerKey = modelAnnotation.stringValue("providerKey")
70+
.filter(s -> !s.isEmpty())
71+
.or(() -> type.findAnnotation(MODEL_CONFIG_KEY_TYPE).flatMap(Annotation::stringValue))
6972
.filter(s -> !s.isEmpty())
7073
.or(() -> Optional.of(ModelCodegenHelper.providerConfigKeyFromClassName(type)))
7174
.filter(s -> !s.isEmpty())

integrations/langchain4j/langchain4j/src/main/java/io/helidon/integrations/langchain4j/AiProvider.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,20 @@ public final class AiProvider {
3232
private AiProvider() {
3333
}
3434

35+
/**
36+
* Default config key used under langchain4j context for all model configs in the same class.
37+
* Override provider key otherwise derived from class name prefix.
38+
*/
39+
@Target({ElementType.TYPE})
40+
public @interface ConfigKey {
41+
42+
/**
43+
* Default config key used under langchain4j context for all model configs in the same class.
44+
* @return string key
45+
*/
46+
String value() default "";
47+
}
48+
3549
/**
3650
* Annotation used to define a configuration for a specific LangChain4j model class.
3751
* This configuration is used during code generation for creating service bean providers

integrations/langchain4j/providers/cohere/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@
6767
<groupId>dev.langchain4j</groupId>
6868
<artifactId>langchain4j-cohere</artifactId>
6969
</dependency>
70+
<dependency>
71+
<groupId>org.slf4j</groupId>
72+
<artifactId>slf4j-api</artifactId>
73+
</dependency>
7074
<dependency>
7175
<groupId>io.helidon.common.features</groupId>
7276
<artifactId>helidon-common-features-api</artifactId>

integrations/langchain4j/providers/cohere/src/main/java/module-info.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
requires transitive io.helidon.service.registry;
3535
requires transitive io.helidon.integrations.langchain4j;
3636
requires transitive io.helidon.config;
37+
requires org.slf4j;
3738

3839
exports io.helidon.integrations.langchain4j.providers.cohere;
3940
}

integrations/langchain4j/providers/ollama/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@
7171
<groupId>dev.langchain4j</groupId>
7272
<artifactId>langchain4j-http-client</artifactId>
7373
</dependency>
74+
<dependency>
75+
<groupId>org.slf4j</groupId>
76+
<artifactId>slf4j-api</artifactId>
77+
</dependency>
7478
<dependency>
7579
<groupId>io.helidon.common.features</groupId>
7680
<artifactId>helidon-common-features-api</artifactId>

integrations/langchain4j/providers/ollama/src/main/java/module-info.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
requires transitive io.helidon.integrations.langchain4j;
3636
requires transitive io.helidon.config;
3737
requires langchain4j.http.client;
38+
requires org.slf4j;
3839

3940
exports io.helidon.integrations.langchain4j.providers.ollama;
4041
}

integrations/langchain4j/providers/open-ai/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@
7171
<groupId>dev.langchain4j</groupId>
7272
<artifactId>langchain4j-http-client</artifactId>
7373
</dependency>
74+
<dependency>
75+
<groupId>org.slf4j</groupId>
76+
<artifactId>slf4j-api</artifactId>
77+
</dependency>
7478
<dependency>
7579
<groupId>io.helidon.common.features</groupId>
7680
<artifactId>helidon-common-features-api</artifactId>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Copyright (c) 2025 Oracle and/or its affiliates.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package io.helidon.integrations.langchain4j.providers.openai;
18+
19+
import io.helidon.integrations.langchain4j.AiProvider;
20+
21+
import dev.langchain4j.model.openai.OpenAiEmbeddingModel;
22+
import dev.langchain4j.model.openai.OpenAiLanguageModel;
23+
import dev.langchain4j.model.openai.OpenAiModerationModel;
24+
25+
@AiProvider.ConfigKey("open-ai")
26+
@AiProvider.ModelConfig(value = OpenAiModerationModel.class)
27+
@AiProvider.ModelConfig(value = OpenAiEmbeddingModel.class)
28+
@AiProvider.ModelConfig(value = OpenAiLanguageModel.class)
29+
interface OpenAiEmbLc4jProvider {
30+
31+
}

0 commit comments

Comments
 (0)