This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch camel-quarkus-main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus-examples.git


The following commit(s) were added to refs/heads/camel-quarkus-main by this 
push:
     new e833b21a Reinstate Quarkus LangChain4j in data-extract example
e833b21a is described below

commit e833b21a510dcb5a57a911d50318e9803cdebe89
Author: James Netherton <[email protected]>
AuthorDate: Mon Sep 28 08:25:13 2026 +0100

    Reinstate Quarkus LangChain4j in data-extract example
---
 .github/dependabot.yml                             |  1 -
 data-extract-langchain4j/README.adoc               |  4 +-
 data-extract-langchain4j/pom.xml                   | 17 +++---
 .../extraction/CustomPojoExtractionService.java    | 11 +++-
 .../java/org/acme/extraction/CustomPojoStore.java  |  2 +-
 .../java/org/acme/extraction/DataExtractAgent.java | 65 ----------------------
 .../extraction/DataExtractAgentConfiguration.java  | 58 -------------------
 .../src/main/java/org/acme/extraction/Routes.java  | 13 +++--
 .../src/main/resources/application.properties      | 16 +++++-
 .../org/acme/extraction/OllamaTestResource.java    |  4 +-
 ...chat-1185138d-1018-48a9-9212-5227e0eebf90.json} | 10 ++--
 ...chat-5cf07a94-1704-41fd-aaed-c3279242686a.json} | 10 ++--
 ...chat-f33209a6-d198-4e89-983c-9916b795ca98.json} | 10 ++--
 13 files changed, 57 insertions(+), 164 deletions(-)

diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 2106e5b8..eb47bee0 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -44,7 +44,6 @@ updates:
     allow:
       # Quarkiverse extensions
       - dependency-name: "io.quarkiverse.*:*"
-      - dependency-name: "dev.langchain4j:*"
       - dependency-name: "org.zeroturnaround:zt-exec"
       # Test dependencies
       - dependency-name: "org.assertj:assertj-core"
diff --git a/data-extract-langchain4j/README.adoc 
b/data-extract-langchain4j/README.adoc
index 6f3cafe9..01febca4 100644
--- a/data-extract-langchain4j/README.adoc
+++ b/data-extract-langchain4j/README.adoc
@@ -113,9 +113,7 @@ Notice how all of this is computed simultaneously during a 
single LLM inference.
 At the end, the application should have extracted 3 POJOs.
 For each of them, it could be interesting to compare the unstructured input 
text and the corresponding structured POJO.
 
-Details of the LangChain4j `AiService` setup can be found in class 
`CustomPojoExtractionService`.
-
-Details of the custom data extract `camel-langchain4j-agent` AI agent 
implementation can be found in classes `DataExtractAgent` and 
`DataExtractAgentConfiguration`.
+More details can be found in the 
`src/main/java/org/acme/extraction/CustomPojoExtractionService.java` class, a 
https://docs.quarkiverse.io/quarkus-langchain4j/dev/index.html[Quarkus 
LangChain4j] AI service that is invoked from the Camel route with the `bean` 
EIP.
 
 ==== Native mode
 
diff --git a/data-extract-langchain4j/pom.xml b/data-extract-langchain4j/pom.xml
index 087d222c..519bdb2e 100644
--- a/data-extract-langchain4j/pom.xml
+++ b/data-extract-langchain4j/pom.xml
@@ -52,7 +52,8 @@
         <maven-resources-plugin.version>3.3.1</maven-resources-plugin.version>
         <maven-surefire-plugin.version>3.5.6</maven-surefire-plugin.version>
 
-        <langchain4j.version>1.19.3</langchain4j.version>
+        <!-- the Quarkus LangChain4j release Camel Quarkus is built against -->
+        
<quarkiverse-langchain4j.version>1.13.3</quarkiverse-langchain4j.version>
         <wiremock.version>3.13.2</wiremock.version>
     </properties>
 
@@ -60,9 +61,9 @@
         <dependencies>
             <!-- Import BOM -->
             <dependency>
-                <groupId>dev.langchain4j</groupId>
-                <artifactId>langchain4j-bom</artifactId>
-                <version>${langchain4j.version}</version>
+                <groupId>io.quarkiverse.langchain4j</groupId>
+                <artifactId>quarkus-langchain4j-bom</artifactId>
+                <version>${quarkiverse-langchain4j.version}</version>
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
@@ -100,17 +101,13 @@
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-platform-http</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-langchain4j-agent</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-bean</artifactId>
         </dependency>
         <dependency>
-            <groupId>dev.langchain4j</groupId>
-            <artifactId>langchain4j-ollama</artifactId>
+            <groupId>io.quarkiverse.langchain4j</groupId>
+            <artifactId>quarkus-langchain4j-ollama</artifactId>
         </dependency>
 
         <!-- Test -->
diff --git 
a/data-extract-langchain4j/src/main/java/org/acme/extraction/CustomPojoExtractionService.java
 
b/data-extract-langchain4j/src/main/java/org/acme/extraction/CustomPojoExtractionService.java
index 521e2e5a..0c1f6381 100644
--- 
a/data-extract-langchain4j/src/main/java/org/acme/extraction/CustomPojoExtractionService.java
+++ 
b/data-extract-langchain4j/src/main/java/org/acme/extraction/CustomPojoExtractionService.java
@@ -22,9 +22,17 @@ import java.util.Locale;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import dev.langchain4j.service.UserMessage;
 import dev.langchain4j.service.V;
+import io.quarkiverse.langchain4j.RegisterAiService;
 import io.quarkus.runtime.annotations.RegisterForReflection;
+import jakarta.enterprise.context.ApplicationScoped;
+import org.apache.camel.Handler;
 
-@RegisterForReflection
+/**
+ * The AI service is implemented by Quarkus LangChain4j and backed by the 
Ollama chat model configured in
+ * application.properties. No chat memory is used, so that each extraction is 
independent of the previous ones.
+ */
+@RegisterAiService(chatMemoryProviderSupplier = 
RegisterAiService.NoChatMemoryProviderSupplier.class)
+@ApplicationScoped
 public interface CustomPojoExtractionService {
 
     @RegisterForReflection(registerFullHierarchy = true)
@@ -66,5 +74,6 @@ public interface CustomPojoExtractionService {
      * The text parameter of this method is automatically injected as {{text}} 
in the CUSTOM_POJO_EXTRACT_PROMPT.
      */
     @UserMessage(CUSTOM_POJO_EXTRACT_PROMPT)
+    @Handler
     CustomPojo extractFromText(@V("text") String text);
 }
diff --git 
a/data-extract-langchain4j/src/main/java/org/acme/extraction/CustomPojoStore.java
 
b/data-extract-langchain4j/src/main/java/org/acme/extraction/CustomPojoStore.java
index 4c827ef5..32ca2821 100644
--- 
a/data-extract-langchain4j/src/main/java/org/acme/extraction/CustomPojoStore.java
+++ 
b/data-extract-langchain4j/src/main/java/org/acme/extraction/CustomPojoStore.java
@@ -30,13 +30,13 @@ public class CustomPojoStore {
     private static final Logger LOG = Logger.getLogger(CustomPojoStore.class);
     private List<CustomPojo> pojos = new CopyOnWriteArrayList<>();
 
+    @Handler
     CustomPojo addPojo(CustomPojo pojo) {
         LOG.info("An extracted POJO has been added to the store: " + pojo);
         pojos.add(pojo);
         return pojo;
     }
 
-    @Handler
     Map<String, List<CustomPojo>> listPojos() {
         return Map.of("pojos", List.copyOf(pojos));
     }
diff --git 
a/data-extract-langchain4j/src/main/java/org/acme/extraction/DataExtractAgent.java
 
b/data-extract-langchain4j/src/main/java/org/acme/extraction/DataExtractAgent.java
deleted file mode 100644
index 652276e0..00000000
--- 
a/data-extract-langchain4j/src/main/java/org/acme/extraction/DataExtractAgent.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.acme.extraction;
-
-import dev.langchain4j.service.AiServices;
-import dev.langchain4j.service.Result;
-import dev.langchain4j.service.tool.ToolProvider;
-import org.acme.extraction.CustomPojoExtractionService.CustomPojo;
-import org.apache.camel.component.langchain4j.agent.api.Agent;
-import org.apache.camel.component.langchain4j.agent.api.AgentConfiguration;
-import org.apache.camel.component.langchain4j.agent.api.AiAgentBody;
-
-/**
- * Custom agent to extract data from text.
- */
-public class DataExtractAgent implements Agent {
-    private final AgentConfiguration configuration;
-    private final CustomPojoStore pojoStore;
-
-    public DataExtractAgent(
-            AgentConfiguration configuration,
-            CustomPojoStore pojoStore) {
-        this.configuration = configuration;
-        this.pojoStore = pojoStore;
-    }
-
-    /**
-     * Returns a string representation of the extracted {@link CustomPojo}.
-     */
-    @Override
-    public Result<String> chat(AiAgentBody<?> aiAgentBody, ToolProvider 
toolProvider) {
-        CustomPojo response = 
createService(toolProvider).extractFromText(aiAgentBody.getUserMessage());
-
-        // Store extracted CustomPojoExtractionService.CustomPojos objects 
into the CustomPojoStore for later inspection
-        pojoStore.addPojo(response);
-
-        // Return a string representation of the result POJO
-        return Result.<String> builder().content(response.toString()).build();
-    }
-
-    CustomPojoExtractionService createService(ToolProvider toolProvider) {
-        var builder = AiServices.builder(CustomPojoExtractionService.class)
-                .chatModel(configuration.getChatModel());
-
-        if (toolProvider != null) {
-            builder.toolProvider(toolProvider);
-        }
-
-        return builder.build();
-    }
-}
diff --git 
a/data-extract-langchain4j/src/main/java/org/acme/extraction/DataExtractAgentConfiguration.java
 
b/data-extract-langchain4j/src/main/java/org/acme/extraction/DataExtractAgentConfiguration.java
deleted file mode 100644
index 3d63ca27..00000000
--- 
a/data-extract-langchain4j/src/main/java/org/acme/extraction/DataExtractAgentConfiguration.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.acme.extraction;
-
-import java.time.Duration;
-
-import dev.langchain4j.model.chat.Capability;
-import dev.langchain4j.model.ollama.OllamaChatModel;
-import io.smallrye.common.annotation.Identifier;
-import jakarta.enterprise.context.ApplicationScoped;
-import jakarta.inject.Singleton;
-import org.apache.camel.component.langchain4j.agent.api.Agent;
-import org.apache.camel.component.langchain4j.agent.api.AgentConfiguration;
-import org.eclipse.microprofile.config.inject.ConfigProperty;
-
-@ApplicationScoped
-public class DataExtractAgentConfiguration {
-    public static final String AGENT_ID = "data-extract-agent";
-
-    @ConfigProperty(name = "langchain4j.ollama.base-url")
-    String baseUrl;
-
-    @ConfigProperty(name = "langchain4j.ollama.chat-model.model-id")
-    String chatModelId;
-
-    @Singleton
-    AgentConfiguration agentConfiguration() {
-        return new AgentConfiguration().withChatModel(OllamaChatModel.builder()
-                .baseUrl(baseUrl)
-                .topK(1)
-                .topP(0.1)
-                .modelName(chatModelId)
-                .supportedCapabilities(Capability.RESPONSE_FORMAT_JSON_SCHEMA)
-                .temperature(0.0)
-                .timeout(Duration.ofMinutes(3))
-                .build());
-    }
-
-    @Singleton
-    @Identifier(AGENT_ID)
-    Agent agent(AgentConfiguration configuration, CustomPojoStore pojoStore) {
-        return new DataExtractAgent(configuration, pojoStore);
-    }
-}
diff --git 
a/data-extract-langchain4j/src/main/java/org/acme/extraction/Routes.java 
b/data-extract-langchain4j/src/main/java/org/acme/extraction/Routes.java
index dd55cdde..f8761150 100644
--- a/data-extract-langchain4j/src/main/java/org/acme/extraction/Routes.java
+++ b/data-extract-langchain4j/src/main/java/org/acme/extraction/Routes.java
@@ -21,11 +21,12 @@ import jakarta.inject.Inject;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.model.dataformat.JsonLibrary;
 
-import static org.acme.extraction.DataExtractAgentConfiguration.AGENT_ID;
-
 @ApplicationScoped
 public class Routes extends RouteBuilder {
 
+    @Inject
+    CustomPojoExtractionService customPojoExtractionService;
+
     @Inject
     CustomPojoStore customPojoStore;
 
@@ -36,12 +37,14 @@ public class Routes extends RouteBuilder {
                 .log("A document has been received by the camel-quarkus-file 
extension: ${body}")
                 // Get the content to fulfill the CustomPojoExtractService 
text argument
                 .setBody().jsonpath("$.content")
-                // Initiate a conversation with the LLM
-                .toF("langchain4j-agent:%s", AGENT_ID);
+                // The CustomPojoExtractionService transforms the conversation 
transcript into a CustomPojoExtractionService.CustomPojo
+                .bean(customPojoExtractionService)
+                // Store extracted CustomPojoExtractionService.CustomPojos 
objects into the CustomPojoStore for later inspection
+                .bean(customPojoStore);
 
         // This route make it possible to inspect the extracted POJOs, mainly 
used for demo and test
         from("platform-http:/custom-pojo-store?produces=application/json")
-                .bean(customPojoStore)
+                .bean(customPojoStore, "listPojos")
                 .marshal().json(JsonLibrary.Jackson);
     }
 }
diff --git a/data-extract-langchain4j/src/main/resources/application.properties 
b/data-extract-langchain4j/src/main/resources/application.properties
index a673874b..a25ca99c 100644
--- a/data-extract-langchain4j/src/main/resources/application.properties
+++ b/data-extract-langchain4j/src/main/resources/application.properties
@@ -17,7 +17,17 @@
 quarkus.banner.enabled = false
 quarkus.default-locale=en_US
 
-# Adjust as per your where your Ollama instance is running
-langchain4j.ollama.base-url=http://localhost:11434
+# Configure Quarkus LangChain4j that handles interactions with the Large 
Language Model
+# Adjust as per where your Ollama instance is running
+quarkus.langchain4j.ollama.base-url=http://localhost:11434
+quarkus.langchain4j.ollama.timeout=3m
 # The chat model to use
-langchain4j.ollama.chat-model.model-id=granite4.1:3b
+quarkus.langchain4j.ollama.chat-model.model-id=granite4.1:3b
+quarkus.langchain4j.ollama.chat-model.temperature=0
+quarkus.langchain4j.ollama.chat-model.top-k=1
+quarkus.langchain4j.ollama.chat-model.top-p=0.1
+# Ollama is run by you rather than by Dev Services
+quarkus.langchain4j.ollama.devservices.enabled=false
+# Uncomment lines below to log Ollama client requests and responses
+#quarkus.langchain4j.ollama.log-requests=true
+#quarkus.langchain4j.ollama.log-responses=true
diff --git 
a/data-extract-langchain4j/src/test/java/org/acme/extraction/OllamaTestResource.java
 
b/data-extract-langchain4j/src/test/java/org/acme/extraction/OllamaTestResource.java
index 8b9f809b..e46edd06 100644
--- 
a/data-extract-langchain4j/src/test/java/org/acme/extraction/OllamaTestResource.java
+++ 
b/data-extract-langchain4j/src/test/java/org/acme/extraction/OllamaTestResource.java
@@ -88,7 +88,7 @@ public class OllamaTestResource implements 
QuarkusTestResourceLifecycleManager {
                             .withLogConsumer(new 
Slf4jLogConsumer(LOG).withPrefix("basicAuthContainer"));
                     ollamaContainer.start();
 
-                    String ollamaModelId = 
getConfig().getValue("langchain4j.ollama.chat-model.model-id", String.class);
+                    String ollamaModelId = 
getConfig().getValue("quarkus.langchain4j.ollama.chat-model.model-id", 
String.class);
 
                     ExecResult result = 
ollamaContainer.execInContainer("ollama", "pull", ollamaModelId);
                     long pullBegin = currentTimeMillis();
@@ -111,7 +111,7 @@ public class OllamaTestResource implements 
QuarkusTestResourceLifecycleManager {
                 }
             }
 
-            return Map.of("langchain4j.ollama.base-url", baseUrl);
+            return Map.of("quarkus.langchain4j.ollama.base-url", baseUrl);
         } catch (Exception ex) {
             throw new RuntimeException("An issue occurred while starting 
ollama container", ex);
         }
diff --git 
a/data-extract-langchain4j/src/test/resources/mappings/api_chat-862490ff-9aa9-45d3-b4dc-1dc489ac6dda.json
 
b/data-extract-langchain4j/src/test/resources/mappings/api_chat-1185138d-1018-48a9-9212-5227e0eebf90.json
similarity index 79%
rename from 
data-extract-langchain4j/src/test/resources/mappings/api_chat-862490ff-9aa9-45d3-b4dc-1dc489ac6dda.json
rename to 
data-extract-langchain4j/src/test/resources/mappings/api_chat-1185138d-1018-48a9-9212-5227e0eebf90.json
index 5fb0dfb3..f8ac98ef 100644
--- 
a/data-extract-langchain4j/src/test/resources/mappings/api_chat-862490ff-9aa9-45d3-b4dc-1dc489ac6dda.json
+++ 
b/data-extract-langchain4j/src/test/resources/mappings/api_chat-1185138d-1018-48a9-9212-5227e0eebf90.json
@@ -1,5 +1,5 @@
 {
-  "id" : "862490ff-9aa9-45d3-b4dc-1dc489ac6dda",
+  "id" : "1185138d-1018-48a9-9212-5227e0eebf90",
   "name" : "api_chat",
   "request" : {
     "url" : "/api/chat",
@@ -12,13 +12,13 @@
   },
   "response" : {
     "status" : 200,
-    "body" : 
"{\"model\":\"granite4.1:3b\",\"created_at\":\"2026-05-27T17:05:54.559691677Z\",\"message\":{\"role\":\"assistant\",\"content\":\"{\\n
  \\\"customerSatisfied\\\": false,\\n  \\\"customerName\\\": \\\"John 
Doe\\\",\\n  \\\"customerBirthday\\\": {\\\"year\\\": 2001, \\\"month\\\": 11, 
\\\"day\\\": 1},\\n  \\\"summary\\\": \\\"Customer John Doe is upset because 
the insurance only reimbursed half of his expenses due to an accident. He 
claims he was never notified about the autom [...]
+    "body" : 
"{\"model\":\"granite4.1:3b\",\"created_at\":\"2026-09-25T13:38:21.297963885Z\",\"message\":{\"role\":\"assistant\",\"content\":\"{\\n
  \\\"customerSatisfied\\\": false,\\n  \\\"customerName\\\": \\\"John 
Doe\\\",\\n  \\\"customerBirthday\\\": {\\\"year\\\": 2001, \\\"month\\\": 11, 
\\\"day\\\": 1},\\n  \\\"summary\\\": \\\"Customer John Doe is dissatisfied 
with the insurance company because they were reimbursed only half of their 
expenses due to an accident. The customer cl [...]
     "headers" : {
-      "Date" : "Wed, 27 May 2026 17:05:54 GMT",
+      "Date" : "Fri, 25 Sep 2026 13:38:21 GMT",
       "Content-Type" : "application/json; charset=utf-8"
     }
   },
-  "uuid" : "862490ff-9aa9-45d3-b4dc-1dc489ac6dda",
+  "uuid" : "1185138d-1018-48a9-9212-5227e0eebf90",
   "persistent" : true,
-  "insertionIndex" : 5
+  "insertionIndex" : 2
 }
\ No newline at end of file
diff --git 
a/data-extract-langchain4j/src/test/resources/mappings/api_chat-bc242ba3-eb22-4c60-9bab-22fabf382956.json
 
b/data-extract-langchain4j/src/test/resources/mappings/api_chat-5cf07a94-1704-41fd-aaed-c3279242686a.json
similarity index 75%
rename from 
data-extract-langchain4j/src/test/resources/mappings/api_chat-bc242ba3-eb22-4c60-9bab-22fabf382956.json
rename to 
data-extract-langchain4j/src/test/resources/mappings/api_chat-5cf07a94-1704-41fd-aaed-c3279242686a.json
index 0eb23c92..f5c633d1 100644
--- 
a/data-extract-langchain4j/src/test/resources/mappings/api_chat-bc242ba3-eb22-4c60-9bab-22fabf382956.json
+++ 
b/data-extract-langchain4j/src/test/resources/mappings/api_chat-5cf07a94-1704-41fd-aaed-c3279242686a.json
@@ -1,5 +1,5 @@
 {
-  "id" : "bc242ba3-eb22-4c60-9bab-22fabf382956",
+  "id" : "5cf07a94-1704-41fd-aaed-c3279242686a",
   "name" : "api_chat",
   "request" : {
     "url" : "/api/chat",
@@ -12,13 +12,13 @@
   },
   "response" : {
     "status" : 200,
-    "body" : 
"{\"model\":\"granite4.1:3b\",\"created_at\":\"2026-05-27T17:05:40.026864606Z\",\"message\":{\"role\":\"assistant\",\"content\":\"{\\n
  \\\"customerSatisfied\\\": true,\\n  \\\"customerName\\\": \\\"Sarah 
London\\\",\\n  \\\"customerBirthday\\\": {\\n    \\\"year\\\": 1986,\\n    
\\\"month\\\": 7,\\n  \\\"day\\\": 10\\n  },\\n  \\\"summary\\\": \\\"The 
customer, Sarah London, called to declare an accident on her main vehicle. The 
operator confirmed that all expenses related  [...]
+    "body" : 
"{\"model\":\"granite4.1:3b\",\"created_at\":\"2026-09-25T13:38:05.835599711Z\",\"message\":{\"role\":\"assistant\",\"content\":\"{\\n
  \\\"customerSatisfied\\\": true,\\n  \\\"customerName\\\": \\\"Sarah 
London\\\",\\n  \\\"customerBirthday\\\": {\\n    \\\"year\\\": 1986,\\n    
\\\"month\\\": 7,\\n    \\\"day\\\": 10\\n  },\\n  \\\"summary\\\": \\\"The 
customer, Sarah London, is calling to declare an accident on her main vehicle. 
She inquires about the possibility of reimb [...]
     "headers" : {
-      "Date" : "Wed, 27 May 2026 17:05:40 GMT",
+      "Date" : "Fri, 25 Sep 2026 13:38:05 GMT",
       "Content-Type" : "application/json; charset=utf-8"
     }
   },
-  "uuid" : "bc242ba3-eb22-4c60-9bab-22fabf382956",
+  "uuid" : "5cf07a94-1704-41fd-aaed-c3279242686a",
   "persistent" : true,
-  "insertionIndex" : 6
+  "insertionIndex" : 3
 }
\ No newline at end of file
diff --git 
a/data-extract-langchain4j/src/test/resources/mappings/api_chat-d0e262d3-6c01-4f8e-a595-617dae7f3687.json
 
b/data-extract-langchain4j/src/test/resources/mappings/api_chat-f33209a6-d198-4e89-983c-9916b795ca98.json
similarity index 80%
rename from 
data-extract-langchain4j/src/test/resources/mappings/api_chat-d0e262d3-6c01-4f8e-a595-617dae7f3687.json
rename to 
data-extract-langchain4j/src/test/resources/mappings/api_chat-f33209a6-d198-4e89-983c-9916b795ca98.json
index 57825da3..207894a4 100644
--- 
a/data-extract-langchain4j/src/test/resources/mappings/api_chat-d0e262d3-6c01-4f8e-a595-617dae7f3687.json
+++ 
b/data-extract-langchain4j/src/test/resources/mappings/api_chat-f33209a6-d198-4e89-983c-9916b795ca98.json
@@ -1,5 +1,5 @@
 {
-  "id" : "d0e262d3-6c01-4f8e-a595-617dae7f3687",
+  "id" : "f33209a6-d198-4e89-983c-9916b795ca98",
   "name" : "api_chat",
   "request" : {
     "url" : "/api/chat",
@@ -12,13 +12,13 @@
   },
   "response" : {
     "status" : 200,
-    "body" : 
"{\"model\":\"granite4.1:3b\",\"created_at\":\"2026-05-27T17:06:10.934259518Z\",\"message\":{\"role\":\"assistant\",\"content\":\"{\\n
  \\\"customerSatisfied\\\": true,\\n  \\\"customerName\\\": \\\"Kate 
Boss\\\",\\n  \\\"customerBirthday\\\": {\\n    \\\"year\\\": 1999,\\n    
\\\"month\\\": 8,\\n    \\\"day\\\": 13\\n  },\\n  \\\"summary\\\": \\\"The 
customer, Kate Boss, contacted the operator at a police station after an 
accident and needed proof of insurance for documenta [...]
+    "body" : 
"{\"model\":\"granite4.1:3b\",\"created_at\":\"2026-09-25T13:38:38.112715116Z\",\"message\":{\"role\":\"assistant\",\"content\":\"{\\n
  \\\"customerSatisfied\\\": true,\\n  \\\"customerName\\\": \\\"Kate 
Boss\\\",\\n  \\\"customerBirthday\\\": {\\n    \\\"year\\\": 1999,\\n    
\\\"month\\\": 8,\\n    \\\"day\\\": 13\\n  },\\n  \\\"summary\\\": \\\"The 
customer, Kate Boss, contacted the operator at a police station after an 
accident and needed proof of insurance for the polic [...]
     "headers" : {
-      "Date" : "Wed, 27 May 2026 17:06:10 GMT",
+      "Date" : "Fri, 25 Sep 2026 13:38:38 GMT",
       "Content-Type" : "application/json; charset=utf-8"
     }
   },
-  "uuid" : "d0e262d3-6c01-4f8e-a595-617dae7f3687",
+  "uuid" : "f33209a6-d198-4e89-983c-9916b795ca98",
   "persistent" : true,
-  "insertionIndex" : 4
+  "insertionIndex" : 1
 }
\ No newline at end of file

Reply via email to