You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2024/03/20 14:19:35 UTC
(camel) branch main updated: CAMEL-20587 - Camel-Qdrant: Add a datatype for transforming langchain… (#13550)
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new df26ebfe193 CAMEL-20587 - Camel-Qdrant: Add a datatype for transforming langchain… (#13550)
df26ebfe193 is described below
commit df26ebfe193eb49e3908aabf43ff00e2cdf72ac9
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Wed Mar 20 15:19:29 2024 +0100
CAMEL-20587 - Camel-Qdrant: Add a datatype for transforming langchain… (#13550)
* CAMEL-20587 - Camel-Qdrant: Add a datatype for transforming langchain embeddings in qdrant objects
Signed-off-by: Andrea Cosentino <an...@gmail.com>
* CAMEL-20587 - Camel-Qdrant: Add a datatype for transforming langchain embeddings in qdrant objects
Signed-off-by: Andrea Cosentino <an...@gmail.com>
---------
Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
.../apache/camel/catalog/components/qdrant.json | 3 +-
.../apache/camel/catalog/transformers.properties | 1 +
.../catalog/transformers/qdrant-embeddings.json | 14 +++++
...LangchainEmbeddingsComponentQdrantTargetIT.java | 7 +--
.../embeddings/LangchainEmbeddingsTestSupport.java | 31 -----------
components/camel-qdrant/pom.xml | 6 +++
.../org/apache/camel/component/qdrant/qdrant.json | 3 +-
.../org/apache/camel/transformer.properties | 7 +++
.../org/apache/camel/transformer/qdrant-embeddings | 2 +
.../camel/transformer/qdrant-embeddings.json | 14 +++++
.../org/apache/camel/component/qdrant/Qdrant.java | 3 ++
.../QdrantEmbeddingsDataTypeTransformer.java | 62 ++++++++++++++++++++++
.../component/ComponentsBuilderFactory.java | 2 +-
...LangchainEmbeddingsComponentBuilderFactory.java | 4 +-
.../src/generated/resources/metadata.json | 4 +-
.../endpoint/dsl/QdrantEndpointBuilderFactory.java | 13 +++++
16 files changed, 135 insertions(+), 41 deletions(-)
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/qdrant.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/qdrant.json
index 40d6552be81..1639499ec97 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/qdrant.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/qdrant.json
@@ -41,7 +41,8 @@
"CamelQdrantReadConsistency": { "index": 5, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "io.qdrant.client.grpc.Points$ReadConsistency", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Read Consistency.", "constantName": "org.apache.camel.component.qdrant.Qdrant$Headers#READ_CONSISTENCY" },
"CamelQdrantWithPayload": { "index": 6, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "true", "description": "Include Payload.", "constantName": "org.apache.camel.component.qdrant.Qdrant$Headers#INCLUDE_PAYLOAD" },
"CamelQdrantWithVectors": { "index": 7, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "false", "description": "Include Vectors.", "constantName": "org.apache.camel.component.qdrant.Qdrant$Headers#INCLUDE_VECTORS" },
- "CamelQdrantSize": { "index": 8, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of elements.", "constantName": "org.apache.camel.component.qdrant.Qdrant$Headers#SIZE" }
+ "CamelQdrantSize": { "index": 8, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of elements.", "constantName": "org.apache.camel.component.qdrant.Qdrant$Headers#SIZE" },
+ "CamelQdrantPointId": { "index": 9, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The point id to use for operation.", "constantName": "org.apache.camel.component.qdrant.Qdrant$Headers#POINT_ID" }
},
"properties": {
"collection": { "index": 0, "kind": "path", "displayName": "Collection", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The collection Name" },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/transformers.properties b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/transformers.properties
index c29b8c75b35..2b30b4fbb10 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/transformers.properties
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/transformers.properties
@@ -26,5 +26,6 @@ http-application-cloudevents
protobuf-binary
protobuf-x-java-object
protobuf-x-struct
+qdrant-embeddings
slack-application-cloudevents
text-plain
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/transformers/qdrant-embeddings.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/transformers/qdrant-embeddings.json
new file mode 100644
index 00000000000..9f82859c76c
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/transformers/qdrant-embeddings.json
@@ -0,0 +1,14 @@
+{
+ "transformer": {
+ "kind": "transformer",
+ "name": "qdrant:embeddings",
+ "title": "Qdrant (Embeddings)",
+ "description": "Prepares the message to become an object writable by Qdrant component",
+ "deprecated": false,
+ "javaType": "org.apache.camel.component.qdrant.transform.QdrantEmbeddingsDataTypeTransformer",
+ "groupId": "org.apache.camel",
+ "artifactId": "camel-qdrant",
+ "version": "4.5.0-SNAPSHOT"
+ }
+}
+
diff --git a/components/camel-ai/camel-langchain-embeddings/src/test/java/org/apache/camel/component/langchain/embeddings/LangchainEmbeddingsComponentQdrantTargetIT.java b/components/camel-ai/camel-langchain-embeddings/src/test/java/org/apache/camel/component/langchain/embeddings/LangchainEmbeddingsComponentQdrantTargetIT.java
index 03bc3640836..445453b2cf2 100644
--- a/components/camel-ai/camel-langchain-embeddings/src/test/java/org/apache/camel/component/langchain/embeddings/LangchainEmbeddingsComponentQdrantTargetIT.java
+++ b/components/camel-ai/camel-langchain-embeddings/src/test/java/org/apache/camel/component/langchain/embeddings/LangchainEmbeddingsComponentQdrantTargetIT.java
@@ -28,6 +28,7 @@ import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.qdrant.Qdrant;
import org.apache.camel.component.qdrant.QdrantAction;
import org.apache.camel.component.qdrant.QdrantComponent;
+import org.apache.camel.spi.DataType;
import org.apache.camel.test.infra.qdrant.services.QdrantService;
import org.apache.camel.test.infra.qdrant.services.QdrantServiceFactory;
import org.apache.camel.test.junit5.CamelTestSupport;
@@ -38,7 +39,6 @@ import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.TestMethodOrder;
import org.junit.jupiter.api.extension.RegisterExtension;
-import static org.apache.camel.component.langchain.embeddings.LangchainEmbeddingsTestSupport.POINT_ID_HEADER;
import static org.assertj.core.api.Assertions.assertThat;
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@@ -111,8 +111,9 @@ public class LangchainEmbeddingsComponentQdrantTargetIT extends CamelTestSupport
from("direct:in")
.to("langchain-embeddings:test")
.setHeader(Qdrant.Headers.ACTION).constant(QdrantAction.UPSERT)
- .setHeader(POINT_ID_HEADER).constant(POINT_ID)
- .bean(LangchainEmbeddingsTestSupport.AsPointStruct.class)
+ .setHeader(Qdrant.Headers.POINT_ID).constant(POINT_ID)
+ .transform(
+ new DataType("qdrant:embeddings"))
.to(QDRANT_URI);
}
};
diff --git a/components/camel-ai/camel-langchain-embeddings/src/test/java/org/apache/camel/component/langchain/embeddings/LangchainEmbeddingsTestSupport.java b/components/camel-ai/camel-langchain-embeddings/src/test/java/org/apache/camel/component/langchain/embeddings/LangchainEmbeddingsTestSupport.java
index 326c456ef80..f7781284dae 100644
--- a/components/camel-ai/camel-langchain-embeddings/src/test/java/org/apache/camel/component/langchain/embeddings/LangchainEmbeddingsTestSupport.java
+++ b/components/camel-ai/camel-langchain-embeddings/src/test/java/org/apache/camel/component/langchain/embeddings/LangchainEmbeddingsTestSupport.java
@@ -21,46 +21,15 @@ import java.util.List;
import com.google.protobuf.InvalidProtocolBufferException;
import dev.langchain4j.data.embedding.Embedding;
-import dev.langchain4j.data.segment.TextSegment;
import io.milvus.param.dml.InsertParam;
-import io.qdrant.client.ValueFactory;
-import io.qdrant.client.VectorsFactory;
-import io.qdrant.client.grpc.Points;
import org.apache.camel.Exchange;
import org.apache.camel.Handler;
public class LangchainEmbeddingsTestSupport {
- public static final String POINT_ID_HEADER = "point.id";
private LangchainEmbeddingsTestSupport() {
}
- // TODO: this should be turned into a proper converter or data type
- public static class AsPointStruct {
- @Handler
- public Points.PointStruct asPointStruct(Exchange e) {
- Embedding embedding = e.getMessage().getHeader(LangchainEmbeddings.Headers.VECTOR, Embedding.class);
- TextSegment text = e.getMessage().getBody(TextSegment.class);
- Points.PointId id = e.getMessage().getHeader(POINT_ID_HEADER, Points.PointId.class);
-
- var builder = Points.PointStruct.newBuilder();
- builder.setId(id);
- builder.setVectors(VectorsFactory.vectors(embedding.vector()));
-
- if (text != null) {
- // this is the default for langchain4j
- // https://github.com/langchain4j/langchain4j/blob/3e432486ffc5cb80861e118cbc974f478c3accfc/langchain4j-qdrant/src/main/java/dev/langchain4j/store/embedding/qdrant/QdrantEmbeddingStore.java#L261
- builder.putPayload("text_segment", ValueFactory.value(text.text()));
-
- text.metadata()
- .asMap()
- .forEach((key, value) -> builder.putPayload(key, ValueFactory.value(value)));
- }
-
- return builder.build();
- }
- }
-
public static class AsInsertParam {
@Handler
public InsertParam AsInsertParam(Exchange e) throws InvalidProtocolBufferException {
diff --git a/components/camel-qdrant/pom.xml b/components/camel-qdrant/pom.xml
index e7c6530c5ca..324eb666326 100644
--- a/components/camel-qdrant/pom.xml
+++ b/components/camel-qdrant/pom.xml
@@ -48,6 +48,12 @@
<artifactId>camel-support</artifactId>
</dependency>
+ <dependency>
+ <groupId>dev.langchain4j</groupId>
+ <artifactId>langchain4j-core</artifactId>
+ <version>${langchain4j.version}</version>
+ </dependency>
+
<dependency>
<groupId>io.qdrant</groupId>
<artifactId>client</artifactId>
diff --git a/components/camel-qdrant/src/generated/resources/META-INF/org/apache/camel/component/qdrant/qdrant.json b/components/camel-qdrant/src/generated/resources/META-INF/org/apache/camel/component/qdrant/qdrant.json
index 40d6552be81..1639499ec97 100644
--- a/components/camel-qdrant/src/generated/resources/META-INF/org/apache/camel/component/qdrant/qdrant.json
+++ b/components/camel-qdrant/src/generated/resources/META-INF/org/apache/camel/component/qdrant/qdrant.json
@@ -41,7 +41,8 @@
"CamelQdrantReadConsistency": { "index": 5, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "io.qdrant.client.grpc.Points$ReadConsistency", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Read Consistency.", "constantName": "org.apache.camel.component.qdrant.Qdrant$Headers#READ_CONSISTENCY" },
"CamelQdrantWithPayload": { "index": 6, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "true", "description": "Include Payload.", "constantName": "org.apache.camel.component.qdrant.Qdrant$Headers#INCLUDE_PAYLOAD" },
"CamelQdrantWithVectors": { "index": 7, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "false", "description": "Include Vectors.", "constantName": "org.apache.camel.component.qdrant.Qdrant$Headers#INCLUDE_VECTORS" },
- "CamelQdrantSize": { "index": 8, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of elements.", "constantName": "org.apache.camel.component.qdrant.Qdrant$Headers#SIZE" }
+ "CamelQdrantSize": { "index": 8, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of elements.", "constantName": "org.apache.camel.component.qdrant.Qdrant$Headers#SIZE" },
+ "CamelQdrantPointId": { "index": 9, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The point id to use for operation.", "constantName": "org.apache.camel.component.qdrant.Qdrant$Headers#POINT_ID" }
},
"properties": {
"collection": { "index": 0, "kind": "path", "displayName": "Collection", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The collection Name" },
diff --git a/components/camel-qdrant/src/generated/resources/META-INF/services/org/apache/camel/transformer.properties b/components/camel-qdrant/src/generated/resources/META-INF/services/org/apache/camel/transformer.properties
new file mode 100644
index 00000000000..f5bf8155027
--- /dev/null
+++ b/components/camel-qdrant/src/generated/resources/META-INF/services/org/apache/camel/transformer.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+transformers=qdrant:embeddings
+groupId=org.apache.camel
+artifactId=camel-qdrant
+version=4.5.0-SNAPSHOT
+projectName=Camel :: Qdrant
+projectDescription=Camel Qdrant support
diff --git a/components/camel-qdrant/src/generated/resources/META-INF/services/org/apache/camel/transformer/qdrant-embeddings b/components/camel-qdrant/src/generated/resources/META-INF/services/org/apache/camel/transformer/qdrant-embeddings
new file mode 100644
index 00000000000..1d2c114407c
--- /dev/null
+++ b/components/camel-qdrant/src/generated/resources/META-INF/services/org/apache/camel/transformer/qdrant-embeddings
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.qdrant.transform.QdrantEmbeddingsDataTypeTransformer
diff --git a/components/camel-qdrant/src/generated/resources/META-INF/services/org/apache/camel/transformer/qdrant-embeddings.json b/components/camel-qdrant/src/generated/resources/META-INF/services/org/apache/camel/transformer/qdrant-embeddings.json
new file mode 100644
index 00000000000..9f82859c76c
--- /dev/null
+++ b/components/camel-qdrant/src/generated/resources/META-INF/services/org/apache/camel/transformer/qdrant-embeddings.json
@@ -0,0 +1,14 @@
+{
+ "transformer": {
+ "kind": "transformer",
+ "name": "qdrant:embeddings",
+ "title": "Qdrant (Embeddings)",
+ "description": "Prepares the message to become an object writable by Qdrant component",
+ "deprecated": false,
+ "javaType": "org.apache.camel.component.qdrant.transform.QdrantEmbeddingsDataTypeTransformer",
+ "groupId": "org.apache.camel",
+ "artifactId": "camel-qdrant",
+ "version": "4.5.0-SNAPSHOT"
+ }
+}
+
diff --git a/components/camel-qdrant/src/main/java/org/apache/camel/component/qdrant/Qdrant.java b/components/camel-qdrant/src/main/java/org/apache/camel/component/qdrant/Qdrant.java
index 9650f6d02ff..d3ffdf968ef 100644
--- a/components/camel-qdrant/src/main/java/org/apache/camel/component/qdrant/Qdrant.java
+++ b/components/camel-qdrant/src/main/java/org/apache/camel/component/qdrant/Qdrant.java
@@ -53,5 +53,8 @@ public class Qdrant {
@Metadata(description = "The number of elements.", javaType = "int")
public static final String SIZE = "CamelQdrantSize";
+
+ @Metadata(description = "The point id to use for operation.", javaType = "int")
+ public static final String POINT_ID = "CamelQdrantPointId";
}
}
diff --git a/components/camel-qdrant/src/main/java/org/apache/camel/component/qdrant/transform/QdrantEmbeddingsDataTypeTransformer.java b/components/camel-qdrant/src/main/java/org/apache/camel/component/qdrant/transform/QdrantEmbeddingsDataTypeTransformer.java
new file mode 100644
index 00000000000..5e5cb5af2d0
--- /dev/null
+++ b/components/camel-qdrant/src/main/java/org/apache/camel/component/qdrant/transform/QdrantEmbeddingsDataTypeTransformer.java
@@ -0,0 +1,62 @@
+/*
+ * 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.apache.camel.component.qdrant.transform;
+
+import java.util.UUID;
+
+import dev.langchain4j.data.embedding.Embedding;
+import dev.langchain4j.data.segment.TextSegment;
+import io.qdrant.client.PointIdFactory;
+import io.qdrant.client.ValueFactory;
+import io.qdrant.client.VectorsFactory;
+import io.qdrant.client.grpc.Points;
+import org.apache.camel.Message;
+import org.apache.camel.component.qdrant.Qdrant;
+import org.apache.camel.spi.DataType;
+import org.apache.camel.spi.DataTypeTransformer;
+import org.apache.camel.spi.Transformer;
+
+/**
+ * Maps a Langchain Embeddings to a Qdrant PointStruct to write an embeddings vector on a Qdrant Database.
+ */
+@DataTypeTransformer(name = "qdrant:embeddings",
+ description = "Prepares the message to become an object writable by Qdrant component")
+public class QdrantEmbeddingsDataTypeTransformer extends Transformer {
+
+ @Override
+ public void transform(Message message, DataType fromType, DataType toType) {
+ Embedding embedding = message.getHeader("CamelLangchainEmbeddingsVector", Embedding.class);
+ TextSegment text = message.getBody(TextSegment.class);
+ Points.PointId id
+ = message.getHeader(Qdrant.Headers.POINT_ID, () -> PointIdFactory.id(UUID.randomUUID()), Points.PointId.class);
+
+ var builder = Points.PointStruct.newBuilder();
+ builder.setId(id);
+ builder.setVectors(VectorsFactory.vectors(embedding.vector()));
+
+ if (text != null) {
+ builder.putPayload("text_segment", ValueFactory.value(text.text()));
+
+ text.metadata()
+ .asMap()
+ .forEach((key, value) -> builder.putPayload(key, ValueFactory.value(value)));
+ }
+
+ message.setBody(builder.build());
+ }
+}
diff --git a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
index 167b16cdc17..9cdc27b4aab 100644
--- a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
+++ b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
@@ -2781,7 +2781,7 @@ public interface ComponentsBuilderFactory {
}
/**
* Langchain4j Embeddings (camel-langchain-embeddings)
- * Perform operations on the Qdrant Vector Database.
+ * Langchain4j Embeddings
*
* Category: ai
* Since: 4.5
diff --git a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/LangchainEmbeddingsComponentBuilderFactory.java b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/LangchainEmbeddingsComponentBuilderFactory.java
index 7e9152c0822..9ac552400b8 100644
--- a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/LangchainEmbeddingsComponentBuilderFactory.java
+++ b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/LangchainEmbeddingsComponentBuilderFactory.java
@@ -23,7 +23,7 @@ import org.apache.camel.builder.component.ComponentBuilder;
import org.apache.camel.component.langchain.embeddings.LangchainEmbeddingsComponent;
/**
- * Perform operations on the Qdrant Vector Database.
+ * Langchain4j Embeddings
*
* Generated by camel-package-maven-plugin - do not edit this file!
*/
@@ -32,7 +32,7 @@ public interface LangchainEmbeddingsComponentBuilderFactory {
/**
* Langchain4j Embeddings (camel-langchain-embeddings)
- * Perform operations on the Qdrant Vector Database.
+ * Langchain4j Embeddings
*
* Category: ai
* Since: 4.5
diff --git a/dsl/camel-componentdsl/src/generated/resources/metadata.json b/dsl/camel-componentdsl/src/generated/resources/metadata.json
index 9a632937ed2..07ad40f8e0a 100644
--- a/dsl/camel-componentdsl/src/generated/resources/metadata.json
+++ b/dsl/camel-componentdsl/src/generated/resources/metadata.json
@@ -4780,7 +4780,7 @@
"kind": "component",
"name": "langchain-embeddings",
"title": "Langchain4j Embeddings",
- "description": "Perform operations on the Qdrant Vector Database.",
+ "description": "Langchain4j Embeddings",
"deprecated": false,
"firstVersion": "4.5.0",
"label": "ai",
@@ -4788,7 +4788,7 @@
"supportLevel": "Preview",
"groupId": "org.apache.camel",
"artifactId": "camel-langchain-embeddings",
- "version": "4.4.0-SNAPSHOT",
+ "version": "4.5.0-SNAPSHOT",
"scheme": "langchain-embeddings",
"extendsScheme": "",
"syntax": "langchain-embeddings:embeddingId",
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/QdrantEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/QdrantEndpointBuilderFactory.java
index 085a0a2daf1..dca4e3e4784 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/QdrantEndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/QdrantEndpointBuilderFactory.java
@@ -410,6 +410,19 @@ public interface QdrantEndpointBuilderFactory {
public String qdrantSize() {
return "CamelQdrantSize";
}
+
+ /**
+ * The point id to use for operation.
+ *
+ * The option is a: {@code int} type.
+ *
+ * Group: producer
+ *
+ * @return the name of the header {@code QdrantPointId}.
+ */
+ public String qdrantPointId() {
+ return "CamelQdrantPointId";
+ }
}
static QdrantEndpointBuilder endpointBuilder(
String componentName,