This is an automated email from the ASF dual-hosted git repository.
davsclaus 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 753697298fc CAMEL-22334 - Store the embedding produced by
camel-langchain4j-embeddings in a header (#18995)
753697298fc is described below
commit 753697298fc2d78560355e698c1c1c7ae36e16e2
Author: Tom Cunningham <[email protected]>
AuthorDate: Wed Aug 27 01:04:08 2025 -0400
CAMEL-22334 - Store the embedding produced by camel-langchain4j-embeddings
in a header (#18995)
---
.../camel/catalog/components/langchain4j-embeddings.json | 5 +++--
.../langchain4j/embeddings/langchain4j-embeddings.json | 5 +++--
.../langchain4j/embeddings/LangChain4jEmbeddings.java | 3 +++
.../embeddings/LangChain4jEmbeddingsProducer.java | 1 +
.../org/apache/camel/ai/CamelLangchain4jAttributes.java | 1 +
.../dsl/LangChain4jEmbeddingsEndpointBuilderFactory.java | 14 ++++++++++++++
6 files changed, 25 insertions(+), 4 deletions(-)
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/langchain4j-embeddings.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/langchain4j-embeddings.json
index 7dbe211be2f..b145cb5903a 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/langchain4j-embeddings.json
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/langchain4j-embeddings.json
@@ -34,8 +34,9 @@
"CamelLangChain4jEmbeddingsInputTokenCount": { "index": 1, "kind":
"header", "displayName": "", "group": "producer", "label": "", "required":
false, "javaType": "int", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The Input Token Count.",
"constantName":
"org.apache.camel.component.langchain4j.embeddings.LangChain4jEmbeddings$Headers#INPUT_TOKEN_COUNT"
},
"CamelLangChain4jEmbeddingsOutputTokenCount": { "index": 2, "kind":
"header", "displayName": "", "group": "producer", "label": "", "required":
false, "javaType": "int", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The Output Token Count.",
"constantName":
"org.apache.camel.component.langchain4j.embeddings.LangChain4jEmbeddings$Headers#OUTPUT_TOKEN_COUNT"
},
"CamelLangChain4jEmbeddingsTotalTokenCount": { "index": 3, "kind":
"header", "displayName": "", "group": "producer", "label": "", "required":
false, "javaType": "int", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The Total Token Count.",
"constantName":
"org.apache.camel.component.langchain4j.embeddings.LangChain4jEmbeddings$Headers#TOTAL_TOKEN_COUNT"
},
- "CamelLangChain4jEmbeddingsVector": { "index": 4, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": "float[]", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "A dense vector embedding of a text",
"constantName":
"org.apache.camel.component.langchain4j.embeddings.LangChain4jEmbeddings$Headers#VECTOR"
},
- "CamelLangChain4jEmbeddingsTextSegment": { "index": 5, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": " dev.langchain4j.data.segment.TextSegment", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "A
TextSegment representation of the vector embedding input text", "constantName":
"org.apache.camel.component.langchain4j.embeddings.LangChain4jEmbeddings$Headers#TEXT_SEGMENT"
}
+ "CamelLangChain4jEmbeddingsEmbedding": { "index": 4, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": "dev.langchain4j.data.embedding.Embedding", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Embedding representation of a text", "constantName":
"org.apache.camel.component.langchain4j.embeddings.LangChain4jEmbeddings$Headers#EMBEDDING"
},
+ "CamelLangChain4jEmbeddingsVector": { "index": 5, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": "float[]", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "A dense vector embedding of a text",
"constantName":
"org.apache.camel.component.langchain4j.embeddings.LangChain4jEmbeddings$Headers#VECTOR"
},
+ "CamelLangChain4jEmbeddingsTextSegment": { "index": 6, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": " dev.langchain4j.data.segment.TextSegment", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "A
TextSegment representation of the vector embedding input text", "constantName":
"org.apache.camel.component.langchain4j.embeddings.LangChain4jEmbeddings$Headers#TEXT_SEGMENT"
}
},
"properties": {
"embeddingId": { "index": 0, "kind": "path", "displayName": "Embedding
Id", "group": "producer", "label": "", "required": true, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The id" },
diff --git
a/components/camel-ai/camel-langchain4j-embeddings/src/generated/resources/META-INF/org/apache/camel/component/langchain4j/embeddings/langchain4j-embeddings.json
b/components/camel-ai/camel-langchain4j-embeddings/src/generated/resources/META-INF/org/apache/camel/component/langchain4j/embeddings/langchain4j-embeddings.json
index 7dbe211be2f..b145cb5903a 100644
---
a/components/camel-ai/camel-langchain4j-embeddings/src/generated/resources/META-INF/org/apache/camel/component/langchain4j/embeddings/langchain4j-embeddings.json
+++
b/components/camel-ai/camel-langchain4j-embeddings/src/generated/resources/META-INF/org/apache/camel/component/langchain4j/embeddings/langchain4j-embeddings.json
@@ -34,8 +34,9 @@
"CamelLangChain4jEmbeddingsInputTokenCount": { "index": 1, "kind":
"header", "displayName": "", "group": "producer", "label": "", "required":
false, "javaType": "int", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The Input Token Count.",
"constantName":
"org.apache.camel.component.langchain4j.embeddings.LangChain4jEmbeddings$Headers#INPUT_TOKEN_COUNT"
},
"CamelLangChain4jEmbeddingsOutputTokenCount": { "index": 2, "kind":
"header", "displayName": "", "group": "producer", "label": "", "required":
false, "javaType": "int", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The Output Token Count.",
"constantName":
"org.apache.camel.component.langchain4j.embeddings.LangChain4jEmbeddings$Headers#OUTPUT_TOKEN_COUNT"
},
"CamelLangChain4jEmbeddingsTotalTokenCount": { "index": 3, "kind":
"header", "displayName": "", "group": "producer", "label": "", "required":
false, "javaType": "int", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The Total Token Count.",
"constantName":
"org.apache.camel.component.langchain4j.embeddings.LangChain4jEmbeddings$Headers#TOTAL_TOKEN_COUNT"
},
- "CamelLangChain4jEmbeddingsVector": { "index": 4, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": "float[]", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "A dense vector embedding of a text",
"constantName":
"org.apache.camel.component.langchain4j.embeddings.LangChain4jEmbeddings$Headers#VECTOR"
},
- "CamelLangChain4jEmbeddingsTextSegment": { "index": 5, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": " dev.langchain4j.data.segment.TextSegment", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "A
TextSegment representation of the vector embedding input text", "constantName":
"org.apache.camel.component.langchain4j.embeddings.LangChain4jEmbeddings$Headers#TEXT_SEGMENT"
}
+ "CamelLangChain4jEmbeddingsEmbedding": { "index": 4, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": "dev.langchain4j.data.embedding.Embedding", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description":
"Embedding representation of a text", "constantName":
"org.apache.camel.component.langchain4j.embeddings.LangChain4jEmbeddings$Headers#EMBEDDING"
},
+ "CamelLangChain4jEmbeddingsVector": { "index": 5, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": "float[]", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "A dense vector embedding of a text",
"constantName":
"org.apache.camel.component.langchain4j.embeddings.LangChain4jEmbeddings$Headers#VECTOR"
},
+ "CamelLangChain4jEmbeddingsTextSegment": { "index": 6, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": " dev.langchain4j.data.segment.TextSegment", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "A
TextSegment representation of the vector embedding input text", "constantName":
"org.apache.camel.component.langchain4j.embeddings.LangChain4jEmbeddings$Headers#TEXT_SEGMENT"
}
},
"properties": {
"embeddingId": { "index": 0, "kind": "path", "displayName": "Embedding
Id", "group": "producer", "label": "", "required": true, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The id" },
diff --git
a/components/camel-ai/camel-langchain4j-embeddings/src/main/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddings.java
b/components/camel-ai/camel-langchain4j-embeddings/src/main/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddings.java
index b2263a38a53..fae1db335fc 100644
---
a/components/camel-ai/camel-langchain4j-embeddings/src/main/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddings.java
+++
b/components/camel-ai/camel-langchain4j-embeddings/src/main/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddings.java
@@ -38,6 +38,9 @@ public final class LangChain4jEmbeddings {
@Metadata(description = "The Total Token Count.", javaType = "int")
public static final String TOTAL_TOKEN_COUNT =
"CamelLangChain4jEmbeddingsTotalTokenCount";
+ @Metadata(description = "Embedding representation of a text", javaType
= "dev.langchain4j.data.embedding.Embedding")
+ public static final String EMBEDDING =
CamelLangchain4jAttributes.CAMEL_LANGCHAIN4J_EMBEDDING;
+
@Metadata(description = "A dense vector embedding of a text", javaType
= "float[]")
public static final String VECTOR =
CamelLangchain4jAttributes.CAMEL_LANGCHAIN4J_EMBEDDING_VECTOR;
diff --git
a/components/camel-ai/camel-langchain4j-embeddings/src/main/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsProducer.java
b/components/camel-ai/camel-langchain4j-embeddings/src/main/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsProducer.java
index 2a96eb0759c..feca1e4666a 100644
---
a/components/camel-ai/camel-langchain4j-embeddings/src/main/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsProducer.java
+++
b/components/camel-ai/camel-langchain4j-embeddings/src/main/java/org/apache/camel/component/langchain4j/embeddings/LangChain4jEmbeddingsProducer.java
@@ -53,5 +53,6 @@ public class LangChain4jEmbeddingsProducer extends
DefaultProducer {
message.setHeader(LangChain4jEmbeddings.Headers.VECTOR,
result.content().vector());
message.setHeader(LangChain4jEmbeddings.Headers.TEXT_SEGMENT, in);
+ message.setHeader(LangChain4jEmbeddings.Headers.EMBEDDING,
result.content());
}
}
diff --git
a/core/camel-api/src/main/java/org/apache/camel/ai/CamelLangchain4jAttributes.java
b/core/camel-api/src/main/java/org/apache/camel/ai/CamelLangchain4jAttributes.java
index 592c2dc4847..f3763dc3b73 100644
---
a/core/camel-api/src/main/java/org/apache/camel/ai/CamelLangchain4jAttributes.java
+++
b/core/camel-api/src/main/java/org/apache/camel/ai/CamelLangchain4jAttributes.java
@@ -20,6 +20,7 @@ package org.apache.camel.ai;
* Common Langchain4j Attributes shared by multiple components
*/
public interface CamelLangchain4jAttributes {
+ String CAMEL_LANGCHAIN4J_EMBEDDING = "CamelLangChain4jEmbeddingsEmbedding";
String CAMEL_LANGCHAIN4J_EMBEDDING_VECTOR =
"CamelLangChain4jEmbeddingsVector";
String CAMEL_LANGCHAIN4J_TEXT_SEGMENT =
"CamelLangChain4jEmbeddingsTextSegment";
}
diff --git
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LangChain4jEmbeddingsEndpointBuilderFactory.java
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LangChain4jEmbeddingsEndpointBuilderFactory.java
index 2e8024bb03a..e394e7c31f0 100644
---
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LangChain4jEmbeddingsEndpointBuilderFactory.java
+++
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LangChain4jEmbeddingsEndpointBuilderFactory.java
@@ -255,6 +255,20 @@ public interface
LangChain4jEmbeddingsEndpointBuilderFactory {
public String langChain4jEmbeddingsTotalTokenCount() {
return "CamelLangChain4jEmbeddingsTotalTokenCount";
}
+ /**
+ * Embedding representation of a text.
+ *
+ * The option is a: {@code dev.langchain4j.data.embedding.Embedding}
+ * type.
+ *
+ * Group: producer
+ *
+ * @return the name of the header {@code
+ * LangChain4jEmbeddingsEmbedding}.
+ */
+ public String langChain4jEmbeddingsEmbedding() {
+ return "CamelLangChain4jEmbeddingsEmbedding";
+ }
/**
* A dense vector embedding of a text.
*