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 93e4a0c4253 Add camel-ai to the catalog
93e4a0c4253 is described below

commit 93e4a0c4253a4f3f97bf306b2f81e39c790f9c04
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Thu Mar 14 10:09:18 2024 +0100

    Add camel-ai to the catalog
---
 .../org/apache/camel/catalog/components.properties |   2 +
 .../camel/catalog/components/langchain-chat.json   |  41 +++
 .../catalog/components/langchain-embeddings.json   |  43 +++
 components/camel-ai/camel-langchain-chat/pom.xml   |   2 +-
 .../services/org/apache/camel/component.properties |   2 +-
 .../camel-ai/camel-langchain-embeddings/pom.xml    |   2 +-
 .../services/org/apache/camel/component.properties |   2 +-
 .../org/apache/camel/main/components.properties    |   2 +
 .../builder/endpoint/EndpointBuilderFactory.java   |   2 +
 .../camel/builder/endpoint/EndpointBuilders.java   |   2 +
 .../builder/endpoint/StaticEndpointBuilders.java   |  86 ++++++
 .../dsl/LangchainChatEndpointBuilderFactory.java   | 271 +++++++++++++++++++
 .../LangchainEmbeddingsEndpointBuilderFactory.java | 291 +++++++++++++++++++++
 .../camel-component-known-dependencies.properties  |   2 +
 .../camel/kotlin/components/LangchainChatUriDsl.kt |  91 +++++++
 .../kotlin/components/LangchainEmbeddingsUriDsl.kt |  83 ++++++
 .../apache/camel/maven/packaging/MojoHelper.java   |   5 +-
 .../camel/maven/packaging/PrepareCatalogMojo.java  |   1 +
 18 files changed, 924 insertions(+), 6 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
index 673903942e0..568d1cee709 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
@@ -203,6 +203,8 @@ kubernetes-secrets
 kubernetes-service-accounts
 kubernetes-services
 kudu
+langchain-chat
+langchain-embeddings
 language
 ldap
 ldif
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/langchain-chat.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/langchain-chat.json
new file mode 100644
index 00000000000..969a9810cab
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/langchain-chat.json
@@ -0,0 +1,41 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "langchain-chat",
+    "title": "langchain 4j chat",
+    "description": "Langchain4j Chat component",
+    "deprecated": false,
+    "firstVersion": "4.5.0",
+    "label": "ai",
+    "javaType": "org.apache.camel.component.chat.LangchainChatComponent",
+    "supportLevel": "Preview",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-langchain-chat",
+    "version": "4.5.0-SNAPSHOT",
+    "scheme": "langchain-chat",
+    "extendsScheme": "",
+    "syntax": "langchain-chat:chatId",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false,
+    "remote": true
+  },
+  "componentProperties": {
+    "chatOperation": { "index": 0, "kind": "property", "displayName": "Chat 
Operation", "group": "producer", "label": "", "required": true, "type": 
"object", "javaType": 
"org.apache.camel.component.chat.LangchainChatOperations", "enum": [ 
"CHAT_SINGLE_MESSAGE", "CHAT_SINGLE_MESSAGE_WITH_PROMPT", 
"CHAT_MULTIPLE_MESSAGES" ], "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "defaultValue": "CHAT_SINGLE_MESSAGE", 
"configurationClass": "org.apache.camel.compone [...]
+    "configuration": { "index": 1, "kind": "property", "displayName": 
"Configuration", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": 
"org.apache.camel.component.chat.LangchainChatConfiguration", "deprecated": 
false, "autowired": false, "secret": false, "description": "The configuration." 
},
+    "lazyStartProducer": { "index": 2, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fail [...]
+    "autowiredEnabled": { "index": 3, "kind": "property", "displayName": 
"Autowired Enabled", "group": "advanced", "label": "advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Whether autowiring is enabled. This is used for automatic autowiring options 
(the option must be marked as autowired) by looking up in the registry to find 
if there is a single instance of matching t [...]
+    "chatModel": { "index": 4, "kind": "property", "displayName": "Chat 
Model", "group": "advanced", "label": "advanced", "required": false, "type": 
"object", "javaType": "dev.langchain4j.model.chat.ChatLanguageModel", 
"deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.chat.LangchainChatConfiguration", 
"configurationField": "configuration", "description": "Chat Language Model of 
type dev.langchain4j.model.chat [...]
+  },
+  "headers": {
+    "CamelLangchainChatPromptTemplate": { "index": 0, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The prompt Template.", "constantName": 
"org.apache.camel.component.chat.LangchainChat$Headers#PROMPT_TEMPLATE" }
+  },
+  "properties": {
+    "chatId": { "index": 0, "kind": "path", "displayName": "Chat Id", "group": 
"producer", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The id" },
+    "chatOperation": { "index": 1, "kind": "parameter", "displayName": "Chat 
Operation", "group": "producer", "label": "", "required": true, "type": 
"object", "javaType": 
"org.apache.camel.component.chat.LangchainChatOperations", "enum": [ 
"CHAT_SINGLE_MESSAGE", "CHAT_SINGLE_MESSAGE_WITH_PROMPT", 
"CHAT_MULTIPLE_MESSAGES" ], "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "defaultValue": "CHAT_SINGLE_MESSAGE", 
"configurationClass": "org.apache.camel.compon [...]
+    "lazyStartProducer": { "index": 2, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produc [...]
+    "chatModel": { "index": 3, "kind": "parameter", "displayName": "Chat 
Model", "group": "advanced", "label": "advanced", "required": false, "type": 
"object", "javaType": "dev.langchain4j.model.chat.ChatLanguageModel", 
"deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.chat.LangchainChatConfiguration", 
"configurationField": "configuration", "description": "Chat Language Model of 
type dev.langchain4j.model.cha [...]
+  }
+}
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/langchain-embeddings.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/langchain-embeddings.json
new file mode 100644
index 00000000000..00a08f7f076
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/langchain-embeddings.json
@@ -0,0 +1,43 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "langchain-embeddings",
+    "title": "Langchain4j Embeddings",
+    "description": "Perform operations on the Qdrant Vector Database.",
+    "deprecated": false,
+    "firstVersion": "4.5.0",
+    "label": "ai",
+    "javaType": 
"org.apache.camel.component.langchain.embeddings.LangchainEmbeddingsComponent",
+    "supportLevel": "Preview",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-langchain-embeddings",
+    "version": "4.4.0-SNAPSHOT",
+    "scheme": "langchain-embeddings",
+    "extendsScheme": "",
+    "syntax": "langchain-embeddings:embeddingId",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false,
+    "remote": true
+  },
+  "componentProperties": {
+    "configuration": { "index": 0, "kind": "property", "displayName": 
"Configuration", "group": "producer", "label": "", "required": false, "type": 
"object", "javaType": 
"org.apache.camel.component.langchain.embeddings.LangchainEmbeddingsConfiguration",
 "deprecated": false, "autowired": false, "secret": false, "description": "The 
configuration." },
+    "embeddingModel": { "index": 1, "kind": "property", "displayName": 
"Embedding Model", "group": "producer", "label": "", "required": true, "type": 
"object", "javaType": "dev.langchain4j.model.embedding.EmbeddingModel", 
"deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.langchain.embeddings.LangchainEmbeddingsConfiguration",
 "configurationField": "configuration", "description": "The EmbeddingModel 
engine to  [...]
+    "lazyStartProducer": { "index": 2, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fail [...]
+    "autowiredEnabled": { "index": 3, "kind": "property", "displayName": 
"Autowired Enabled", "group": "advanced", "label": "advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Whether autowiring is enabled. This is used for automatic autowiring options 
(the option must be marked as autowired) by looking up in the registry to find 
if there is a single instance of matching t [...]
+  },
+  "headers": {
+    "CamelLangchainEmbeddingsFinishReason": { "index": 0, "kind": "header", 
"displayName": "", "group": "producer", "label": "", "required": false, 
"javaType": "dev.langchain4j.model.output.FinishReason", "enum": [ "STOP", 
"LENGTH", "TOOL_EXECUTION", "CONTENT_FILTER", "OTHER" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
Finish Reason.", "constantName": 
"org.apache.camel.component.langchain.embeddings.LangchainEmbeddings$Headers#F 
[...]
+    "CamelLangchainEmbeddingsInputTokenCount": { "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.langchain.embeddings.LangchainEmbeddings$Headers#INPUT_TOKEN_COUNT"
 },
+    "CamelLangchainEmbeddingsOutputTokenCount": { "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.langchain.embeddings.LangchainEmbeddings$Headers#OUTPUT_TOKEN_COUNT"
 },
+    "CamelLangchainEmbeddingsTotalTokenCount": { "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.langchain.embeddings.LangchainEmbeddings$Headers#TOTAL_TOKEN_COUNT"
 },
+    "CamelLangchainEmbeddingsVector": { "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.langchain.embeddings.LangchainEmbeddings$Headers#VECTOR"
 }
+  },
+  "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" },
+    "embeddingModel": { "index": 1, "kind": "parameter", "displayName": 
"Embedding Model", "group": "producer", "label": "", "required": true, "type": 
"object", "javaType": "dev.langchain4j.model.embedding.EmbeddingModel", 
"deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.langchain.embeddings.LangchainEmbeddingsConfiguration",
 "configurationField": "configuration", "description": "The EmbeddingModel 
engine to [...]
+    "lazyStartProducer": { "index": 2, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produc [...]
+  }
+}
diff --git a/components/camel-ai/camel-langchain-chat/pom.xml 
b/components/camel-ai/camel-langchain-chat/pom.xml
index 3c7fd63dc50..ab61e2c64c6 100644
--- a/components/camel-ai/camel-langchain-chat/pom.xml
+++ b/components/camel-ai/camel-langchain-chat/pom.xml
@@ -28,7 +28,7 @@
   <artifactId>camel-langchain-chat</artifactId>
   <packaging>jar</packaging>
 
-  <name>Camel Langchain</name>
+  <name>Camel :: Langchain :: Chat</name>
   <description>Langchain4j Chat component</description>
 
   <properties>
diff --git 
a/components/camel-ai/camel-langchain-chat/src/generated/resources/META-INF/services/org/apache/camel/component.properties
 
b/components/camel-ai/camel-langchain-chat/src/generated/resources/META-INF/services/org/apache/camel/component.properties
index b122443e700..5f7c71f5bd3 100644
--- 
a/components/camel-ai/camel-langchain-chat/src/generated/resources/META-INF/services/org/apache/camel/component.properties
+++ 
b/components/camel-ai/camel-langchain-chat/src/generated/resources/META-INF/services/org/apache/camel/component.properties
@@ -3,5 +3,5 @@ components=langchain-chat
 groupId=org.apache.camel
 artifactId=camel-langchain-chat
 version=4.5.0-SNAPSHOT
-projectName=Camel Langchain
+projectName=Camel :: Langchain :: Chat
 projectDescription=Langchain4j Chat component
diff --git a/components/camel-ai/camel-langchain-embeddings/pom.xml 
b/components/camel-ai/camel-langchain-embeddings/pom.xml
index 98b2bbfe2f0..6bdf6f1240d 100644
--- a/components/camel-ai/camel-langchain-embeddings/pom.xml
+++ b/components/camel-ai/camel-langchain-embeddings/pom.xml
@@ -28,7 +28,7 @@
   <artifactId>camel-langchain-embeddings</artifactId>
   <packaging>jar</packaging>
 
-  <name>Camel :: Langchain4j Embedding</name>
+  <name>Camel :: Langchain :: Embedding</name>
   <description>Langchain4j Embedding</description>
 
   <dependencies>
diff --git 
a/components/camel-ai/camel-langchain-embeddings/src/generated/resources/META-INF/services/org/apache/camel/component.properties
 
b/components/camel-ai/camel-langchain-embeddings/src/generated/resources/META-INF/services/org/apache/camel/component.properties
index ebe04257dec..779c2ab67b7 100644
--- 
a/components/camel-ai/camel-langchain-embeddings/src/generated/resources/META-INF/services/org/apache/camel/component.properties
+++ 
b/components/camel-ai/camel-langchain-embeddings/src/generated/resources/META-INF/services/org/apache/camel/component.properties
@@ -3,5 +3,5 @@ components=langchain-embeddings
 groupId=org.apache.camel
 artifactId=camel-langchain-embeddings
 version=4.5.0-SNAPSHOT
-projectName=Camel :: Langchain4j Embedding
+projectName=Camel :: Langchain :: Embedding
 projectDescription=Langchain4j Embedding
diff --git 
a/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
 
b/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
index 673903942e0..568d1cee709 100644
--- 
a/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
+++ 
b/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
@@ -203,6 +203,8 @@ kubernetes-secrets
 kubernetes-service-accounts
 kubernetes-services
 kudu
+langchain-chat
+langchain-embeddings
 language
 ldap
 ldif
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
index bc453a81bb0..f249617f366 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
@@ -214,6 +214,8 @@ public interface EndpointBuilderFactory
             
org.apache.camel.builder.endpoint.dsl.KubernetesServicesEndpointBuilderFactory.KubernetesServicesBuilders,
             
org.apache.camel.builder.endpoint.dsl.KuduEndpointBuilderFactory.KuduBuilders,
             
org.apache.camel.builder.endpoint.dsl.Lambda2EndpointBuilderFactory.Lambda2Builders,
+            
org.apache.camel.builder.endpoint.dsl.LangchainChatEndpointBuilderFactory.LangchainChatBuilders,
+            
org.apache.camel.builder.endpoint.dsl.LangchainEmbeddingsEndpointBuilderFactory.LangchainEmbeddingsBuilders,
             
org.apache.camel.builder.endpoint.dsl.LanguageEndpointBuilderFactory.LanguageBuilders,
             
org.apache.camel.builder.endpoint.dsl.LdapEndpointBuilderFactory.LdapBuilders,
             
org.apache.camel.builder.endpoint.dsl.LdifEndpointBuilderFactory.LdifBuilders,
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
index 31746c3295a..2ed9a9de2e0 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
@@ -211,6 +211,8 @@ public interface EndpointBuilders
             
org.apache.camel.builder.endpoint.dsl.KubernetesServicesEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.KuduEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.Lambda2EndpointBuilderFactory,
+            
org.apache.camel.builder.endpoint.dsl.LangchainChatEndpointBuilderFactory,
+            
org.apache.camel.builder.endpoint.dsl.LangchainEmbeddingsEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.LanguageEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.LdapEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.LdifEndpointBuilderFactory,
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
index e2ab6bbb0cb..efe29a29793 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
@@ -9786,6 +9786,92 @@ public class StaticEndpointBuilders {
             String path) {
         return 
org.apache.camel.builder.endpoint.dsl.KuduEndpointBuilderFactory.endpointBuilder(componentName,
 path);
     }
+    /**
+     * langchain 4j chat (camel-langchain-chat)
+     * Langchain4j Chat component
+     * 
+     * Category: ai
+     * Since: 4.5
+     * Maven coordinates: org.apache.camel:camel-langchain-chat
+     * 
+     * Syntax: <code>langchain-chat:chatId</code>
+     * 
+     * Path parameter: chatId (required)
+     * The id
+     * 
+     * @param path chatId
+     * @return the dsl builder
+     */
+    public static 
org.apache.camel.builder.endpoint.dsl.LangchainChatEndpointBuilderFactory.LangchainChatEndpointBuilder
 langchainChat(
+            String path) {
+        return 
org.apache.camel.builder.endpoint.dsl.LangchainChatEndpointBuilderFactory.endpointBuilder("langchain-chat",
 path);
+    }
+    /**
+     * langchain 4j chat (camel-langchain-chat)
+     * Langchain4j Chat component
+     * 
+     * Category: ai
+     * Since: 4.5
+     * Maven coordinates: org.apache.camel:camel-langchain-chat
+     * 
+     * Syntax: <code>langchain-chat:chatId</code>
+     * 
+     * Path parameter: chatId (required)
+     * The id
+     * 
+     * @param componentName to use a custom component name for the endpoint
+     * instead of the default name
+     * @param path chatId
+     * @return the dsl builder
+     */
+    public static 
org.apache.camel.builder.endpoint.dsl.LangchainChatEndpointBuilderFactory.LangchainChatEndpointBuilder
 langchainChat(
+            String componentName,
+            String path) {
+        return 
org.apache.camel.builder.endpoint.dsl.LangchainChatEndpointBuilderFactory.endpointBuilder(componentName,
 path);
+    }
+    /**
+     * Langchain4j Embeddings (camel-langchain-embeddings)
+     * Perform operations on the Qdrant Vector Database.
+     * 
+     * Category: ai
+     * Since: 4.5
+     * Maven coordinates: org.apache.camel:camel-langchain-embeddings
+     * 
+     * Syntax: <code>langchain-embeddings:embeddingId</code>
+     * 
+     * Path parameter: embeddingId (required)
+     * The id
+     * 
+     * @param path embeddingId
+     * @return the dsl builder
+     */
+    public static 
org.apache.camel.builder.endpoint.dsl.LangchainEmbeddingsEndpointBuilderFactory.LangchainEmbeddingsEndpointBuilder
 langchainEmbeddings(
+            String path) {
+        return 
org.apache.camel.builder.endpoint.dsl.LangchainEmbeddingsEndpointBuilderFactory.endpointBuilder("langchain-embeddings",
 path);
+    }
+    /**
+     * Langchain4j Embeddings (camel-langchain-embeddings)
+     * Perform operations on the Qdrant Vector Database.
+     * 
+     * Category: ai
+     * Since: 4.5
+     * Maven coordinates: org.apache.camel:camel-langchain-embeddings
+     * 
+     * Syntax: <code>langchain-embeddings:embeddingId</code>
+     * 
+     * Path parameter: embeddingId (required)
+     * The id
+     * 
+     * @param componentName to use a custom component name for the endpoint
+     * instead of the default name
+     * @param path embeddingId
+     * @return the dsl builder
+     */
+    public static 
org.apache.camel.builder.endpoint.dsl.LangchainEmbeddingsEndpointBuilderFactory.LangchainEmbeddingsEndpointBuilder
 langchainEmbeddings(
+            String componentName,
+            String path) {
+        return 
org.apache.camel.builder.endpoint.dsl.LangchainEmbeddingsEndpointBuilderFactory.endpointBuilder(componentName,
 path);
+    }
     /**
      * Language (camel-language)
      * Execute scripts in any of the languages supported by Camel.
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LangchainChatEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LangchainChatEndpointBuilderFactory.java
new file mode 100644
index 00000000000..0cb8028a919
--- /dev/null
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LangchainChatEndpointBuilderFactory.java
@@ -0,0 +1,271 @@
+/*
+ * 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.builder.endpoint.dsl;
+
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.function.*;
+import java.util.stream.*;
+import javax.annotation.processing.Generated;
+import org.apache.camel.builder.EndpointConsumerBuilder;
+import org.apache.camel.builder.EndpointProducerBuilder;
+import org.apache.camel.builder.endpoint.AbstractEndpointBuilder;
+
+/**
+ * Langchain4j Chat component
+ * 
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.EndpointDslMojo")
+public interface LangchainChatEndpointBuilderFactory {
+
+
+    /**
+     * Builder for endpoint for the langchain 4j chat component.
+     */
+    public interface LangchainChatEndpointBuilder
+            extends
+                EndpointProducerBuilder {
+        default AdvancedLangchainChatEndpointBuilder advanced() {
+            return (AdvancedLangchainChatEndpointBuilder) this;
+        }
+        /**
+         * Operation in case of Endpoint of type CHAT. value is one the values
+         * of org.apache.camel.component.langchain.LangchainChatOperations.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;org.apache.camel.component.chat.LangchainChatOperations&lt;/code&gt;
 type.
+         * 
+         * Required: true
+         * Default: CHAT_SINGLE_MESSAGE
+         * Group: producer
+         * 
+         * @param chatOperation the value to set
+         * @return the dsl builder
+         */
+        default LangchainChatEndpointBuilder chatOperation(
+                org.apache.camel.component.chat.LangchainChatOperations 
chatOperation) {
+            doSetProperty("chatOperation", chatOperation);
+            return this;
+        }
+        /**
+         * Operation in case of Endpoint of type CHAT. value is one the values
+         * of org.apache.camel.component.langchain.LangchainChatOperations.
+         * 
+         * The option will be converted to a
+         * 
&lt;code&gt;org.apache.camel.component.chat.LangchainChatOperations&lt;/code&gt;
 type.
+         * 
+         * Required: true
+         * Default: CHAT_SINGLE_MESSAGE
+         * Group: producer
+         * 
+         * @param chatOperation the value to set
+         * @return the dsl builder
+         */
+        default LangchainChatEndpointBuilder chatOperation(String 
chatOperation) {
+            doSetProperty("chatOperation", chatOperation);
+            return this;
+        }
+    }
+
+    /**
+     * Advanced builder for endpoint for the langchain 4j chat component.
+     */
+    public interface AdvancedLangchainChatEndpointBuilder
+            extends
+                EndpointProducerBuilder {
+        default LangchainChatEndpointBuilder basic() {
+            return (LangchainChatEndpointBuilder) this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes 
to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring 
this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that 
when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing 
time
+         * of the processing.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         * 
+         * @param lazyStartProducer the value to set
+         * @return the dsl builder
+         */
+        default AdvancedLangchainChatEndpointBuilder lazyStartProducer(
+                boolean lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes 
to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring 
this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that 
when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing 
time
+         * of the processing.
+         * 
+         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
+         * type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         * 
+         * @param lazyStartProducer the value to set
+         * @return the dsl builder
+         */
+        default AdvancedLangchainChatEndpointBuilder lazyStartProducer(
+                String lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * Chat Language Model of type
+         * dev.langchain4j.model.chat.ChatLanguageModel.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;dev.langchain4j.model.chat.ChatLanguageModel&lt;/code&gt;
+         * type.
+         * 
+         * Group: advanced
+         * 
+         * @param chatModel the value to set
+         * @return the dsl builder
+         */
+        default AdvancedLangchainChatEndpointBuilder chatModel(
+                dev.langchain4j.model.chat.ChatLanguageModel chatModel) {
+            doSetProperty("chatModel", chatModel);
+            return this;
+        }
+        /**
+         * Chat Language Model of type
+         * dev.langchain4j.model.chat.ChatLanguageModel.
+         * 
+         * The option will be converted to a
+         * 
&lt;code&gt;dev.langchain4j.model.chat.ChatLanguageModel&lt;/code&gt;
+         * type.
+         * 
+         * Group: advanced
+         * 
+         * @param chatModel the value to set
+         * @return the dsl builder
+         */
+        default AdvancedLangchainChatEndpointBuilder chatModel(String 
chatModel) {
+            doSetProperty("chatModel", chatModel);
+            return this;
+        }
+    }
+
+    public interface LangchainChatBuilders {
+        /**
+         * langchain 4j chat (camel-langchain-chat)
+         * Langchain4j Chat component
+         * 
+         * Category: ai
+         * Since: 4.5
+         * Maven coordinates: org.apache.camel:camel-langchain-chat
+         * 
+         * @return the dsl builder for the headers' name.
+         */
+        default LangchainChatHeaderNameBuilder langchainChat() {
+            return LangchainChatHeaderNameBuilder.INSTANCE;
+        }
+        /**
+         * langchain 4j chat (camel-langchain-chat)
+         * Langchain4j Chat component
+         * 
+         * Category: ai
+         * Since: 4.5
+         * Maven coordinates: org.apache.camel:camel-langchain-chat
+         * 
+         * Syntax: <code>langchain-chat:chatId</code>
+         * 
+         * Path parameter: chatId (required)
+         * The id
+         * 
+         * @param path chatId
+         * @return the dsl builder
+         */
+        default LangchainChatEndpointBuilder langchainChat(String path) {
+            return 
LangchainChatEndpointBuilderFactory.endpointBuilder("langchain-chat", path);
+        }
+        /**
+         * langchain 4j chat (camel-langchain-chat)
+         * Langchain4j Chat component
+         * 
+         * Category: ai
+         * Since: 4.5
+         * Maven coordinates: org.apache.camel:camel-langchain-chat
+         * 
+         * Syntax: <code>langchain-chat:chatId</code>
+         * 
+         * Path parameter: chatId (required)
+         * The id
+         * 
+         * @param componentName to use a custom component name for the endpoint
+         * instead of the default name
+         * @param path chatId
+         * @return the dsl builder
+         */
+        default LangchainChatEndpointBuilder langchainChat(
+                String componentName,
+                String path) {
+            return 
LangchainChatEndpointBuilderFactory.endpointBuilder(componentName, path);
+        }
+    }
+
+    /**
+     * The builder of headers' name for the langchain 4j chat component.
+     */
+    public static class LangchainChatHeaderNameBuilder {
+        /**
+         * The internal instance of the builder used to access to all the
+         * methods representing the name of headers.
+         */
+        private static final LangchainChatHeaderNameBuilder INSTANCE = new 
LangchainChatHeaderNameBuilder();
+
+        /**
+         * The prompt Template.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code LangchainChatPromptTemplate}.
+         */
+        public String langchainChatPromptTemplate() {
+            return "CamelLangchainChatPromptTemplate";
+        }
+    }
+    static LangchainChatEndpointBuilder endpointBuilder(
+            String componentName,
+            String path) {
+        class LangchainChatEndpointBuilderImpl extends AbstractEndpointBuilder 
implements LangchainChatEndpointBuilder, AdvancedLangchainChatEndpointBuilder {
+            public LangchainChatEndpointBuilderImpl(String path) {
+                super(componentName, path);
+            }
+        }
+        return new LangchainChatEndpointBuilderImpl(path);
+    }
+}
\ No newline at end of file
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LangchainEmbeddingsEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LangchainEmbeddingsEndpointBuilderFactory.java
new file mode 100644
index 00000000000..1ac10e080e8
--- /dev/null
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LangchainEmbeddingsEndpointBuilderFactory.java
@@ -0,0 +1,291 @@
+/*
+ * 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.builder.endpoint.dsl;
+
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.function.*;
+import java.util.stream.*;
+import javax.annotation.processing.Generated;
+import org.apache.camel.builder.EndpointConsumerBuilder;
+import org.apache.camel.builder.EndpointProducerBuilder;
+import org.apache.camel.builder.endpoint.AbstractEndpointBuilder;
+
+/**
+ * Perform operations on the Qdrant Vector Database.
+ * 
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.EndpointDslMojo")
+public interface LangchainEmbeddingsEndpointBuilderFactory {
+
+
+    /**
+     * Builder for endpoint for the Langchain4j Embeddings component.
+     */
+    public interface LangchainEmbeddingsEndpointBuilder
+            extends
+                EndpointProducerBuilder {
+        default AdvancedLangchainEmbeddingsEndpointBuilder advanced() {
+            return (AdvancedLangchainEmbeddingsEndpointBuilder) this;
+        }
+        /**
+         * The EmbeddingModel engine to use.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;dev.langchain4j.model.embedding.EmbeddingModel&lt;/code&gt; type.
+         * 
+         * Required: true
+         * Group: producer
+         * 
+         * @param embeddingModel the value to set
+         * @return the dsl builder
+         */
+        default LangchainEmbeddingsEndpointBuilder embeddingModel(
+                dev.langchain4j.model.embedding.EmbeddingModel embeddingModel) 
{
+            doSetProperty("embeddingModel", embeddingModel);
+            return this;
+        }
+        /**
+         * The EmbeddingModel engine to use.
+         * 
+         * The option will be converted to a
+         * 
&lt;code&gt;dev.langchain4j.model.embedding.EmbeddingModel&lt;/code&gt; type.
+         * 
+         * Required: true
+         * Group: producer
+         * 
+         * @param embeddingModel the value to set
+         * @return the dsl builder
+         */
+        default LangchainEmbeddingsEndpointBuilder embeddingModel(
+                String embeddingModel) {
+            doSetProperty("embeddingModel", embeddingModel);
+            return this;
+        }
+    }
+
+    /**
+     * Advanced builder for endpoint for the Langchain4j Embeddings component.
+     */
+    public interface AdvancedLangchainEmbeddingsEndpointBuilder
+            extends
+                EndpointProducerBuilder {
+        default LangchainEmbeddingsEndpointBuilder basic() {
+            return (LangchainEmbeddingsEndpointBuilder) this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes 
to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring 
this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that 
when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing 
time
+         * of the processing.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         * 
+         * @param lazyStartProducer the value to set
+         * @return the dsl builder
+         */
+        default AdvancedLangchainEmbeddingsEndpointBuilder lazyStartProducer(
+                boolean lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes 
to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring 
this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that 
when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing 
time
+         * of the processing.
+         * 
+         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
+         * type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         * 
+         * @param lazyStartProducer the value to set
+         * @return the dsl builder
+         */
+        default AdvancedLangchainEmbeddingsEndpointBuilder lazyStartProducer(
+                String lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+    }
+
+    public interface LangchainEmbeddingsBuilders {
+        /**
+         * Langchain4j Embeddings (camel-langchain-embeddings)
+         * Perform operations on the Qdrant Vector Database.
+         * 
+         * Category: ai
+         * Since: 4.5
+         * Maven coordinates: org.apache.camel:camel-langchain-embeddings
+         * 
+         * @return the dsl builder for the headers' name.
+         */
+        default LangchainEmbeddingsHeaderNameBuilder langchainEmbeddings() {
+            return LangchainEmbeddingsHeaderNameBuilder.INSTANCE;
+        }
+        /**
+         * Langchain4j Embeddings (camel-langchain-embeddings)
+         * Perform operations on the Qdrant Vector Database.
+         * 
+         * Category: ai
+         * Since: 4.5
+         * Maven coordinates: org.apache.camel:camel-langchain-embeddings
+         * 
+         * Syntax: <code>langchain-embeddings:embeddingId</code>
+         * 
+         * Path parameter: embeddingId (required)
+         * The id
+         * 
+         * @param path embeddingId
+         * @return the dsl builder
+         */
+        default LangchainEmbeddingsEndpointBuilder langchainEmbeddings(
+                String path) {
+            return 
LangchainEmbeddingsEndpointBuilderFactory.endpointBuilder("langchain-embeddings",
 path);
+        }
+        /**
+         * Langchain4j Embeddings (camel-langchain-embeddings)
+         * Perform operations on the Qdrant Vector Database.
+         * 
+         * Category: ai
+         * Since: 4.5
+         * Maven coordinates: org.apache.camel:camel-langchain-embeddings
+         * 
+         * Syntax: <code>langchain-embeddings:embeddingId</code>
+         * 
+         * Path parameter: embeddingId (required)
+         * The id
+         * 
+         * @param componentName to use a custom component name for the endpoint
+         * instead of the default name
+         * @param path embeddingId
+         * @return the dsl builder
+         */
+        default LangchainEmbeddingsEndpointBuilder langchainEmbeddings(
+                String componentName,
+                String path) {
+            return 
LangchainEmbeddingsEndpointBuilderFactory.endpointBuilder(componentName, path);
+        }
+    }
+
+    /**
+     * The builder of headers' name for the Langchain4j Embeddings component.
+     */
+    public static class LangchainEmbeddingsHeaderNameBuilder {
+        /**
+         * The internal instance of the builder used to access to all the
+         * methods representing the name of headers.
+         */
+        private static final LangchainEmbeddingsHeaderNameBuilder INSTANCE = 
new LangchainEmbeddingsHeaderNameBuilder();
+
+        /**
+         * The Finish Reason.
+         * 
+         * The option is a: {@code dev.langchain4j.model.output.FinishReason}
+         * type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code
+         * LangchainEmbeddingsFinishReason}.
+         */
+        public String langchainEmbeddingsFinishReason() {
+            return "CamelLangchainEmbeddingsFinishReason";
+        }
+
+        /**
+         * The Input Token Count.
+         * 
+         * The option is a: {@code int} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code
+         * LangchainEmbeddingsInputTokenCount}.
+         */
+        public String langchainEmbeddingsInputTokenCount() {
+            return "CamelLangchainEmbeddingsInputTokenCount";
+        }
+
+        /**
+         * The Output Token Count.
+         * 
+         * The option is a: {@code int} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code
+         * LangchainEmbeddingsOutputTokenCount}.
+         */
+        public String langchainEmbeddingsOutputTokenCount() {
+            return "CamelLangchainEmbeddingsOutputTokenCount";
+        }
+
+        /**
+         * The Total Token Count.
+         * 
+         * The option is a: {@code int} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code
+         * LangchainEmbeddingsTotalTokenCount}.
+         */
+        public String langchainEmbeddingsTotalTokenCount() {
+            return "CamelLangchainEmbeddingsTotalTokenCount";
+        }
+
+        /**
+         * A dense vector embedding of a text.
+         * 
+         * The option is a: {@code float[]} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code LangchainEmbeddingsVector}.
+         */
+        public String langchainEmbeddingsVector() {
+            return "CamelLangchainEmbeddingsVector";
+        }
+    }
+    static LangchainEmbeddingsEndpointBuilder endpointBuilder(
+            String componentName,
+            String path) {
+        class LangchainEmbeddingsEndpointBuilderImpl extends 
AbstractEndpointBuilder implements LangchainEmbeddingsEndpointBuilder, 
AdvancedLangchainEmbeddingsEndpointBuilder {
+            public LangchainEmbeddingsEndpointBuilderImpl(String path) {
+                super(componentName, path);
+            }
+        }
+        return new LangchainEmbeddingsEndpointBuilderImpl(path);
+    }
+}
\ No newline at end of file
diff --git 
a/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
 
b/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
index a85163360bd..0c7fdbf2263 100644
--- 
a/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
+++ 
b/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
@@ -72,6 +72,7 @@ org.apache.camel.component.browse.BrowseComponent=camel:browse
 org.apache.camel.component.caffeine.cache.CaffeineCacheComponent=camel:caffeine
 
org.apache.camel.component.caffeine.load.CaffeineLoadCacheComponent=camel:caffeine
 org.apache.camel.component.cassandra.CassandraComponent=camel:cassandraql
+org.apache.camel.component.chat.LangchainChatComponent=camel:langchain-chat
 org.apache.camel.component.chatscript.ChatScriptComponent=camel:chatscript
 org.apache.camel.component.chunk.ChunkComponent=camel:chunk
 org.apache.camel.component.cm.CMComponent=camel:cm-sms
@@ -215,6 +216,7 @@ 
org.apache.camel.component.kubernetes.secrets.KubernetesSecretsComponent=camel:k
 
org.apache.camel.component.kubernetes.service_accounts.KubernetesServiceAccountsComponent=camel:kubernetes
 
org.apache.camel.component.kubernetes.services.KubernetesServicesComponent=camel:kubernetes
 org.apache.camel.component.kudu.KuduComponent=camel:kudu
+org.apache.camel.component.langchain.embeddings.LangchainEmbeddingsComponent=camel:langchain-embeddings
 org.apache.camel.component.language.LanguageComponent=camel:language
 org.apache.camel.component.ldap.LdapComponent=camel:ldap
 org.apache.camel.component.ldif.LdifComponent=camel:ldif
diff --git 
a/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/LangchainChatUriDsl.kt
 
b/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/LangchainChatUriDsl.kt
new file mode 100644
index 00000000000..91126a21b69
--- /dev/null
+++ 
b/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/LangchainChatUriDsl.kt
@@ -0,0 +1,91 @@
+/*
+ * 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.kotlin.components
+
+import kotlin.Boolean
+import kotlin.String
+import kotlin.Unit
+import org.apache.camel.kotlin.CamelDslMarker
+import org.apache.camel.kotlin.UriDsl
+
+/**
+ * Langchain4j Chat component
+ */
+public fun UriDsl.`langchain-chat`(i: LangchainChatUriDsl.() -> Unit) {
+  LangchainChatUriDsl(this).apply(i)
+}
+
+@CamelDslMarker
+public class LangchainChatUriDsl(
+  it: UriDsl,
+) {
+  private val it: UriDsl
+
+  init {
+    this.it = it
+    this.it.component("langchain-chat")
+  }
+
+  private var chatId: String = ""
+
+  /**
+   * The id
+   */
+  public fun chatId(chatId: String) {
+    this.chatId = chatId
+    it.url("$chatId")
+  }
+
+  /**
+   * Operation in case of Endpoint of type CHAT. value is one the values of
+   * org.apache.camel.component.langchain.LangchainChatOperations
+   */
+  public fun chatOperation(chatOperation: String) {
+    it.property("chatOperation", chatOperation)
+  }
+
+  /**
+   * Whether the producer should be started lazy (on the first message). By 
starting lazy you can
+   * use this to allow CamelContext and routes to startup in situations where 
a producer may otherwise
+   * fail during starting and cause the route to fail being started. By 
deferring this startup to be
+   * lazy then the startup failure can be handled during routing messages via 
Camel's routing error
+   * handlers. Beware that when the first message is processed then creating 
and starting the producer
+   * may take a little time and prolong the total processing time of the 
processing.
+   */
+  public fun lazyStartProducer(lazyStartProducer: String) {
+    it.property("lazyStartProducer", lazyStartProducer)
+  }
+
+  /**
+   * Whether the producer should be started lazy (on the first message). By 
starting lazy you can
+   * use this to allow CamelContext and routes to startup in situations where 
a producer may otherwise
+   * fail during starting and cause the route to fail being started. By 
deferring this startup to be
+   * lazy then the startup failure can be handled during routing messages via 
Camel's routing error
+   * handlers. Beware that when the first message is processed then creating 
and starting the producer
+   * may take a little time and prolong the total processing time of the 
processing.
+   */
+  public fun lazyStartProducer(lazyStartProducer: Boolean) {
+    it.property("lazyStartProducer", lazyStartProducer.toString())
+  }
+
+  /**
+   * Chat Language Model of type dev.langchain4j.model.chat.ChatLanguageModel
+   */
+  public fun chatModel(chatModel: String) {
+    it.property("chatModel", chatModel)
+  }
+}
diff --git 
a/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/LangchainEmbeddingsUriDsl.kt
 
b/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/LangchainEmbeddingsUriDsl.kt
new file mode 100644
index 00000000000..696248a9249
--- /dev/null
+++ 
b/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/LangchainEmbeddingsUriDsl.kt
@@ -0,0 +1,83 @@
+/*
+ * 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.kotlin.components
+
+import kotlin.Boolean
+import kotlin.String
+import kotlin.Unit
+import org.apache.camel.kotlin.CamelDslMarker
+import org.apache.camel.kotlin.UriDsl
+
+/**
+ * Perform operations on the Qdrant Vector Database.
+ */
+public fun UriDsl.`langchain-embeddings`(i: LangchainEmbeddingsUriDsl.() -> 
Unit) {
+  LangchainEmbeddingsUriDsl(this).apply(i)
+}
+
+@CamelDslMarker
+public class LangchainEmbeddingsUriDsl(
+  it: UriDsl,
+) {
+  private val it: UriDsl
+
+  init {
+    this.it = it
+    this.it.component("langchain-embeddings")
+  }
+
+  private var embeddingId: String = ""
+
+  /**
+   * The id
+   */
+  public fun embeddingId(embeddingId: String) {
+    this.embeddingId = embeddingId
+    it.url("$embeddingId")
+  }
+
+  /**
+   * The EmbeddingModel engine to use.
+   */
+  public fun embeddingModel(embeddingModel: String) {
+    it.property("embeddingModel", embeddingModel)
+  }
+
+  /**
+   * Whether the producer should be started lazy (on the first message). By 
starting lazy you can
+   * use this to allow CamelContext and routes to startup in situations where 
a producer may otherwise
+   * fail during starting and cause the route to fail being started. By 
deferring this startup to be
+   * lazy then the startup failure can be handled during routing messages via 
Camel's routing error
+   * handlers. Beware that when the first message is processed then creating 
and starting the producer
+   * may take a little time and prolong the total processing time of the 
processing.
+   */
+  public fun lazyStartProducer(lazyStartProducer: String) {
+    it.property("lazyStartProducer", lazyStartProducer)
+  }
+
+  /**
+   * Whether the producer should be started lazy (on the first message). By 
starting lazy you can
+   * use this to allow CamelContext and routes to startup in situations where 
a producer may otherwise
+   * fail during starting and cause the route to fail being started. By 
deferring this startup to be
+   * lazy then the startup failure can be handled during routing messages via 
Camel's routing error
+   * handlers. Beware that when the first message is processed then creating 
and starting the producer
+   * may take a little time and prolong the total processing time of the 
processing.
+   */
+  public fun lazyStartProducer(lazyStartProducer: Boolean) {
+    it.property("lazyStartProducer", lazyStartProducer.toString())
+  }
+}
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java
index f4b742e9985..350579b5fc6 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java
@@ -30,13 +30,14 @@ public final class MojoHelper {
 
     public static List<Path> getComponentPath(Path dir) {
         switch (dir.getFileName().toString()) {
+            case "camel-ai":
+                return Arrays.asList(dir.resolve("camel-langchain-chat"), 
dir.resolve("camel-langchain-embeddings"));
             case "camel-as2":
                 return 
Collections.singletonList(dir.resolve("camel-as2-component"));
             case "camel-avro-rpc":
                 return 
Collections.singletonList(dir.resolve("camel-avro-rpc-component"));
             case "camel-cxf":
-                return Arrays.asList(dir.resolve("camel-cxf-soap"),
-                        dir.resolve("camel-cxf-rest"));
+                return Arrays.asList(dir.resolve("camel-cxf-soap"), 
dir.resolve("camel-cxf-rest"));
             case "camel-salesforce":
                 return 
Collections.singletonList(dir.resolve("camel-salesforce-component"));
             case "camel-dhis2":
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
index fa2fce2ff38..6809cafa0c9 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
@@ -854,6 +854,7 @@ public class PrepareCatalogMojo extends AbstractMojo {
                 case "camel-dsl-support":
                 case "camel-endpointdsl-support":
                     // and components with middle folders
+                case "camel-ai":
                 case "camel-as2":
                 case "camel-avro-rpc":
                 case "camel-aws":

Reply via email to