Skip to content

Commit fec2176

Browse files
authored
Merge pull request #1457 from mariofusco/beta4
Bump to langchain4j beta4
2 parents 4742e53 + b2ec681 commit fec2176

File tree

183 files changed

+770
-739
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

183 files changed

+770
-739
lines changed

core/deployment/src/main/java/io/quarkiverse/langchain4j/deployment/BeansProcessor.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
import com.fasterxml.jackson.databind.ObjectMapper;
2323

24-
import dev.langchain4j.model.chat.ChatLanguageModel;
24+
import dev.langchain4j.model.chat.ChatModel;
2525
import dev.langchain4j.model.embedding.EmbeddingModel;
2626
import dev.langchain4j.model.image.ImageModel;
2727
import dev.langchain4j.model.moderation.ModerationModel;
@@ -119,7 +119,7 @@ public void handleProviders(BeanDiscoveryFinishedBuildItem beanDiscoveryFinished
119119
final String dot = ".";
120120

121121
// bean types for models
122-
final String chatModelBeanType = "ChatLanguageModel or StreamingChatLanguageModel";
122+
final String chatModelBeanType = "ChatModel or StreamingChatModel";
123123
final String embeddingModelBeanType = "EmbeddingModel";
124124
final String scoringModelBeanType = "ScoringModel";
125125
final String moderationModelBeanType = "ModerationModel";
@@ -188,7 +188,7 @@ public void handleProviders(BeanDiscoveryFinishedBuildItem beanDiscoveryFinished
188188

189189
String provider = selectProvider(
190190
chatCandidateItems,
191-
beanDiscoveryFinished.beanStream().withBeanType(ChatLanguageModel.class),
191+
beanDiscoveryFinished.beanStream().withBeanType(ChatModel.class),
192192
userSelectedProvider,
193193
chatModelBeanType,
194194
configNamespace);
@@ -324,15 +324,15 @@ public void handleProviders(BeanDiscoveryFinishedBuildItem beanDiscoveryFinished
324324

325325
// There can be configured models for which we found no injection points.
326326
// While we cannot perform full validation of those, we can still add them as beans.
327-
// This enabled injection such as @Inject @Any Instance<ChatLanguageModel>
327+
// This enabled injection such as @Inject @Any Instance<ChatModel>
328328

329329
// process default configuration
330330
LangChain4jBuildConfig.BaseConfig defaultConfig = buildConfig.defaultConfig();
331331
if (!defaultChatModelRequested && !defaultConfig.chatModel().provider().isEmpty()) {
332332
Optional<String> userSelectedProvider = defaultConfig.chatModel().provider();
333333
String provider = selectProvider(
334334
chatCandidateItems,
335-
beanDiscoveryFinished.beanStream().withBeanType(ChatLanguageModel.class),
335+
beanDiscoveryFinished.beanStream().withBeanType(ChatModel.class),
336336
userSelectedProvider,
337337
chatModelBeanType,
338338
chatModelConfigNamespace);
@@ -404,7 +404,7 @@ public void handleProviders(BeanDiscoveryFinishedBuildItem beanDiscoveryFinished
404404
String configNamespace = entry.getKey() + dot + chatModelConfigNamespace;
405405
String provider = selectProvider(
406406
chatCandidateItems,
407-
beanDiscoveryFinished.beanStream().withBeanType(ChatLanguageModel.class),
407+
beanDiscoveryFinished.beanStream().withBeanType(ChatModel.class),
408408
userSelectedProvider,
409409
chatModelBeanType,
410410
configNamespace);

core/deployment/src/main/java/io/quarkiverse/langchain4j/deployment/ChatMemoryBuildConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import dev.langchain4j.memory.ChatMemory;
66
import dev.langchain4j.memory.chat.ChatMemoryProvider;
7-
import dev.langchain4j.model.Tokenizer;
7+
import dev.langchain4j.model.TokenCountEstimator;
88
import dev.langchain4j.store.memory.chat.ChatMemoryStore;
99
import dev.langchain4j.store.memory.chat.InMemoryChatMemoryStore;
1010
import io.quarkiverse.langchain4j.RegisterAiService;
@@ -24,7 +24,7 @@ public interface ChatMemoryBuildConfig {
2424
* configuration to set things up while also depending on the presence of a bean of type {@link ChatMemoryStore} (for which
2525
* the extension also provides a default in the form of {@link InMemoryChatMemoryStore}).
2626
* <p>
27-
* If {@code token-window} is used, then the application must also provide a bean of type {@link Tokenizer}.
27+
* If {@code token-window} is used, then the application must also provide a bean of type {@link TokenCountEstimator}.
2828
* <p>
2929
* Users can choose to provide their own {@link ChatMemoryStore} bean or even their own {@link ChatMemoryProvider} bean
3030
* if full control over the details is needed.

core/deployment/src/main/java/io/quarkiverse/langchain4j/deployment/ChatMemoryProcessor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import org.jboss.jandex.ClassType;
88

99
import dev.langchain4j.memory.chat.ChatMemoryProvider;
10-
import dev.langchain4j.model.Tokenizer;
10+
import dev.langchain4j.model.TokenCountEstimator;
1111
import dev.langchain4j.store.memory.chat.ChatMemoryStore;
1212
import io.quarkiverse.langchain4j.runtime.ChatMemoryRecorder;
1313
import io.quarkiverse.langchain4j.runtime.aiservice.ChatMemoryConfig;
@@ -40,7 +40,7 @@ void setupBeans(ChatMemoryBuildConfig buildConfig, ChatMemoryConfig runtimeConfi
4040
if (buildConfig.type() == ChatMemoryBuildConfig.Type.MESSAGE_WINDOW) {
4141
fun = recorder.messageWindow(runtimeConfig);
4242
} else if (buildConfig.type() == ChatMemoryBuildConfig.Type.TOKEN_WINDOW) {
43-
configurator.addInjectionPoint(ClassType.create(Tokenizer.class));
43+
configurator.addInjectionPoint(ClassType.create(TokenCountEstimator.class));
4444
fun = recorder.tokenWindow(runtimeConfig);
4545
} else {
4646
throw new IllegalStateException(

core/deployment/src/main/java/io/quarkiverse/langchain4j/deployment/LangChain4jDotNames.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
import dev.langchain4j.data.message.ChatMessage;
77
import dev.langchain4j.data.pdf.PdfFile;
88
import dev.langchain4j.memory.chat.ChatMemoryProvider;
9-
import dev.langchain4j.model.chat.ChatLanguageModel;
10-
import dev.langchain4j.model.chat.StreamingChatLanguageModel;
9+
import dev.langchain4j.model.chat.ChatModel;
10+
import dev.langchain4j.model.chat.StreamingChatModel;
1111
import dev.langchain4j.model.embedding.EmbeddingModel;
1212
import dev.langchain4j.model.image.ImageModel;
1313
import dev.langchain4j.model.input.structured.StructuredPrompt;
@@ -39,8 +39,8 @@
3939
import io.quarkiverse.langchain4j.runtime.aiservice.QuarkusAiServiceContextQualifier;
4040

4141
public class LangChain4jDotNames {
42-
public static final DotName CHAT_MODEL = DotName.createSimple(ChatLanguageModel.class);
43-
public static final DotName STREAMING_CHAT_MODEL = DotName.createSimple(StreamingChatLanguageModel.class);
42+
public static final DotName CHAT_MODEL = DotName.createSimple(ChatModel.class);
43+
public static final DotName STREAMING_CHAT_MODEL = DotName.createSimple(StreamingChatModel.class);
4444
public static final DotName SCORING_MODEL = DotName.createSimple(ScoringModel.class);
4545
public static final DotName EMBEDDING_MODEL = DotName.createSimple(EmbeddingModel.class);
4646
public static final DotName MODERATION_MODEL = DotName.createSimple(ModerationModel.class);

core/deployment/src/test/java/io/quarkiverse/langchain4j/test/AiServiceMethodParametersAnnotationsTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import org.junit.jupiter.api.extension.RegisterExtension;
2020

2121
import dev.langchain4j.data.message.AiMessage;
22-
import dev.langchain4j.model.chat.ChatLanguageModel;
22+
import dev.langchain4j.model.chat.ChatModel;
2323
import dev.langchain4j.model.chat.request.ChatRequest;
2424
import dev.langchain4j.model.chat.response.ChatResponse;
2525
import dev.langchain4j.service.MemoryId;
@@ -79,10 +79,10 @@ public void execute(BuildContext context) {
7979
};
8080
}
8181

82-
public static class MirrorModelSupplier implements Supplier<ChatLanguageModel> {
82+
public static class MirrorModelSupplier implements Supplier<ChatModel> {
8383
@Override
84-
public ChatLanguageModel get() {
85-
return new ChatLanguageModel() {
84+
public ChatModel get() {
85+
return new ChatModel() {
8686
@Override
8787
public ChatResponse doChat(ChatRequest chatRequest) {
8888
return ChatResponse.builder().aiMessage(new AiMessage(chatMessageToText(chatRequest.messages().get(0))))

core/deployment/src/test/java/io/quarkiverse/langchain4j/test/BlockingChatLanguageModelSupplierTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import org.junit.jupiter.api.extension.RegisterExtension;
1515

1616
import dev.langchain4j.data.message.AiMessage;
17-
import dev.langchain4j.model.chat.ChatLanguageModel;
17+
import dev.langchain4j.model.chat.ChatModel;
1818
import dev.langchain4j.model.chat.request.ChatRequest;
1919
import dev.langchain4j.model.chat.response.ChatResponse;
2020
import io.quarkiverse.langchain4j.RegisterAiService;
@@ -36,11 +36,11 @@ public String blocking() {
3636
}
3737
}
3838

39-
public static class MyModelSupplier implements Supplier<ChatLanguageModel> {
39+
public static class MyModelSupplier implements Supplier<ChatModel> {
4040

4141
@Override
42-
public ChatLanguageModel get() {
43-
return new ChatLanguageModel() {
42+
public ChatModel get() {
43+
return new ChatModel() {
4444
@Override
4545
public ChatResponse doChat(ChatRequest chatRequest) {
4646
return ChatResponse.builder().aiMessage(new AiMessage("42")).build();

core/deployment/src/test/java/io/quarkiverse/langchain4j/test/ChatMessageSerializerTest.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,20 +100,19 @@ void should_serialize_and_deserialize_list_with_all_types_of_messages() {
100100
systemMessage("Hello from system"),
101101
userMessage("Hello from user"),
102102
userMessage("Klaus", "Hello from Klaus"),
103-
aiMessage("Hello from AI"),
104-
aiMessage(ToolExecutionRequest.builder()
103+
aiMessage("Hello from AI", List.of(ToolExecutionRequest.builder()
105104
.name("calculator")
106105
.arguments("{}")
107-
.build()),
106+
.build())),
108107
toolExecutionResultMessage("12345", "calculator", "4"));
109108

110109
String json = ChatMessageSerializer.messagesToJson(messages);
111110
assertThat(json).isEqualTo("[" +
112111
"{\"text\":\"Hello from system\",\"type\":\"SYSTEM\"}," +
113112
"{\"contents\":[{\"text\":\"Hello from user\",\"type\":\"TEXT\"}],\"type\":\"USER\"}," +
114113
"{\"name\":\"Klaus\",\"contents\":[{\"text\":\"Hello from Klaus\",\"type\":\"TEXT\"}],\"type\":\"USER\"}," +
115-
"{\"text\":\"Hello from AI\",\"type\":\"AI\"}," +
116-
"{\"toolExecutionRequests\":[{\"name\":\"calculator\",\"arguments\":\"{}\"}],\"type\":\"AI\"}," +
114+
"{\"toolExecutionRequests\":[{\"name\":\"calculator\",\"arguments\":\"{}\"}],\"text\":\"Hello from AI\",\"type\":\"AI\"},"
115+
+
117116
"{\"text\":\"4\",\"id\":\"12345\",\"toolName\":\"calculator\",\"type\":\"TOOL_EXECUTION_RESULT\"}" +
118117
"]");
119118

core/deployment/src/test/java/io/quarkiverse/langchain4j/test/NamedAiServicesAreResolvableByNameTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import org.junit.jupiter.api.Test;
1818
import org.junit.jupiter.api.extension.RegisterExtension;
1919

20-
import dev.langchain4j.model.chat.ChatLanguageModel;
20+
import dev.langchain4j.model.chat.ChatModel;
2121
import dev.langchain4j.model.chat.request.ChatRequest;
2222
import dev.langchain4j.model.chat.response.ChatResponse;
2323
import dev.langchain4j.service.UserMessage;
@@ -44,7 +44,7 @@ interface MyNamedService {
4444
}
4545

4646
@Singleton
47-
public static class MyLanguageModel implements ChatLanguageModel {
47+
public static class MyLanguageModel implements ChatModel {
4848
@Override
4949
public ChatResponse doChat(ChatRequest request) {
5050
return null;

core/deployment/src/test/java/io/quarkiverse/langchain4j/test/NoChatLanguageProviderButCustomBeanTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import org.junit.jupiter.api.Test;
1010
import org.junit.jupiter.api.extension.RegisterExtension;
1111

12-
import dev.langchain4j.model.chat.ChatLanguageModel;
12+
import dev.langchain4j.model.chat.ChatModel;
1313
import dev.langchain4j.model.chat.request.ChatRequest;
1414
import dev.langchain4j.model.chat.response.ChatResponse;
1515
import io.quarkus.test.QuarkusUnitTest;
@@ -21,15 +21,15 @@ public class NoChatLanguageProviderButCustomBeanTest {
2121
.setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class));
2222

2323
@Inject
24-
ChatLanguageModel chatLanguageModel;
24+
ChatModel chatLanguageModel;
2525

2626
@Test
2727
void test() {
2828
Assertions.assertThat(chatLanguageModel).isInstanceOf(CustomChatLanguageModel.class);
2929
}
3030

3131
@Singleton
32-
public static class CustomChatLanguageModel implements ChatLanguageModel {
32+
public static class CustomChatLanguageModel implements ChatModel {
3333

3434
@Override
3535
public ChatResponse doChat(ChatRequest request) {

core/deployment/src/test/java/io/quarkiverse/langchain4j/test/NoChatLanguageProviderTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import org.junit.jupiter.api.Test;
1111
import org.junit.jupiter.api.extension.RegisterExtension;
1212

13-
import dev.langchain4j.model.chat.ChatLanguageModel;
13+
import dev.langchain4j.model.chat.ChatModel;
1414
import io.quarkus.runtime.configuration.ConfigurationException;
1515
import io.quarkus.test.QuarkusUnitTest;
1616

@@ -22,7 +22,7 @@ public class NoChatLanguageProviderTest {
2222
.assertException(t -> assertThat(t).isInstanceOf(ConfigurationException.class));
2323

2424
@Inject
25-
ChatLanguageModel chatLanguageModel;
25+
ChatModel chatLanguageModel;
2626

2727
@Test
2828
void test() {

0 commit comments

Comments
 (0)