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: + * <code>org.apache.camel.component.chat.LangchainChatOperations</code> 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 + * <code>org.apache.camel.component.chat.LangchainChatOperations</code> 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: <code>boolean</code> 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 <code>boolean</code> + * 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: + * <code>dev.langchain4j.model.chat.ChatLanguageModel</code> + * 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 + * <code>dev.langchain4j.model.chat.ChatLanguageModel</code> + * 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: + * <code>dev.langchain4j.model.embedding.EmbeddingModel</code> 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 + * <code>dev.langchain4j.model.embedding.EmbeddingModel</code> 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: <code>boolean</code> 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 <code>boolean</code> + * 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":