You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ts...@apache.org on 2024/07/19 07:56:24 UTC

(camel) branch main updated: camel-djl - Add query parameter showProgress for controlling progress display

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

tsato 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 fbbfce720f2 camel-djl - Add query parameter showProgress for controlling progress display
fbbfce720f2 is described below

commit fbbfce720f291a4d0a09bcdbeab1f3d83c3adfbd
Author: Tadayoshi Sato <sa...@gmail.com>
AuthorDate: Fri Jul 19 16:20:36 2024 +0900

    camel-djl - Add query parameter showProgress for controlling progress display
---
 .../org/apache/camel/catalog/components/djl.json   |   5 +-
 .../camel/component/djl/DJLEndpointConfigurer.java |   6 ++
 .../camel/component/djl/DJLEndpointUriFactory.java |   3 +-
 .../org/apache/camel/component/djl/djl.json        |   5 +-
 .../apache/camel/component/djl/DJLEndpoint.java    |  14 ++-
 .../apache/camel/component/djl/DJLProducer.java    |   6 +-
 .../component/djl/model/AbstractPredictor.java     |  10 ++
 .../djl/model/ModelPredictorProducer.java          | 101 +++++++++++----------
 .../djl/model/audio/CustomAudioPredictor.java      |   8 +-
 .../djl/model/audio/ZooAudioPredictor.java         |  16 +++-
 .../djl/model/cv/AbstractCvZooPredictor.java       |   5 +
 .../component/djl/model/cv/CustomCvPredictor.java  |   8 +-
 .../model/cv/CustomImageGenerationPredictor.java   |   8 +-
 .../model/cv/ZooActionRecognitionPredictor.java    |  18 ++--
 .../model/cv/ZooImageClassificationPredictor.java  |  18 ++--
 .../djl/model/cv/ZooImageEnhancementPredictor.java |  18 ++--
 .../djl/model/cv/ZooImageGenerationPredictor.java  |  18 ++--
 .../model/cv/ZooInstanceSegmentationPredictor.java |  18 ++--
 .../djl/model/cv/ZooObjectDetectionPredictor.java  |  17 +++-
 .../djl/model/cv/ZooPoseEstimationPredictor.java   |  17 +++-
 .../model/cv/ZooSemanticSegmentationPredictor.java |  18 ++--
 .../djl/model/cv/ZooWordRecognitionPredictor.java  |  18 ++--
 .../djl/model/nlp/AbstractNlpZooPredictor.java     |   5 +
 .../djl/model/nlp/CustomNlpPredictor.java          |   8 +-
 .../model/nlp/CustomQuestionAnswerPredictor.java   |   8 +-
 .../model/nlp/CustomWordEmbeddingPredictor.java    |   5 +-
 .../djl/model/nlp/ZooFillMaskPredictor.java        |  16 +++-
 .../model/nlp/ZooMachineTranslationPredictor.java  |  18 ++--
 .../djl/model/nlp/ZooMultipleChoicePredictor.java  |  18 ++--
 .../djl/model/nlp/ZooQuestionAnswerPredictor.java  |  17 +++-
 .../model/nlp/ZooSentimentAnalysisPredictor.java   |  18 ++--
 .../model/nlp/ZooTextClassificationPredictor.java  |  18 ++--
 .../djl/model/nlp/ZooTextEmbeddingPredictor.java   |  18 ++--
 .../djl/model/nlp/ZooTextGenerationPredictor.java  |  18 ++--
 .../model/nlp/ZooTokenClassificationPredictor.java |  18 ++--
 .../djl/model/nlp/ZooWordEmbeddingPredictor.java   |  18 ++--
 .../djl/model/tabular/CustomTabularPredictor.java  |   8 +-
 .../tabular/ZooLinearRegressionPredictor.java      |   5 +-
 .../tabular/ZooSoftmaxRegressionPredictor.java     |   5 +-
 .../timeseries/CustomForecastingPredictor.java     |   8 +-
 .../model/timeseries/ZooForecastingPredictor.java  |  15 ++-
 .../component/djl/CvImageClassificationTest.java   |   2 +-
 .../djl/model/ModelPredictorProducerTest.java      |  82 ++++++++++-------
 .../endpoint/dsl/DJLEndpointBuilderFactory.java    |  32 +++++++
 .../apache/camel/kotlin/components/DjlUriDsl.kt    |  14 +++
 45 files changed, 490 insertions(+), 239 deletions(-)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/djl.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/djl.json
index fa3488ad131..cc6c624650b 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/djl.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/djl.json
@@ -33,7 +33,8 @@
     "application": { "index": 0, "kind": "path", "displayName": "Application", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Application name" },
     "artifactId": { "index": 1, "kind": "parameter", "displayName": "Artifact Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Model Artifact" },
     "model": { "index": 2, "kind": "parameter", "displayName": "Model", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Model" },
-    "translator": { "index": 3, "kind": "parameter", "displayName": "Translator", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Translator" },
-    "lazyStartProducer": { "index": 4, "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 [...]
+    "showProgress": { "index": 3, "kind": "parameter", "displayName": "Show Progress", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Show progress while loading zoo models. This parameter takes effect only with zoo models" },
+    "translator": { "index": 4, "kind": "parameter", "displayName": "Translator", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Translator" },
+    "lazyStartProducer": { "index": 5, "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-djl/src/generated/java/org/apache/camel/component/djl/DJLEndpointConfigurer.java b/components/camel-ai/camel-djl/src/generated/java/org/apache/camel/component/djl/DJLEndpointConfigurer.java
index 37227ac0024..b6c2e92d257 100644
--- a/components/camel-ai/camel-djl/src/generated/java/org/apache/camel/component/djl/DJLEndpointConfigurer.java
+++ b/components/camel-ai/camel-djl/src/generated/java/org/apache/camel/component/djl/DJLEndpointConfigurer.java
@@ -28,6 +28,8 @@ public class DJLEndpointConfigurer extends PropertyConfigurerSupport implements
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         case "model": target.setModel(property(camelContext, java.lang.String.class, value)); return true;
+        case "showprogress":
+        case "showProgress": target.setShowProgress(property(camelContext, boolean.class, value)); return true;
         case "translator": target.setTranslator(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
@@ -41,6 +43,8 @@ public class DJLEndpointConfigurer extends PropertyConfigurerSupport implements
         case "lazystartproducer":
         case "lazyStartProducer": return boolean.class;
         case "model": return java.lang.String.class;
+        case "showprogress":
+        case "showProgress": return boolean.class;
         case "translator": return java.lang.String.class;
         default: return null;
         }
@@ -55,6 +59,8 @@ public class DJLEndpointConfigurer extends PropertyConfigurerSupport implements
         case "lazystartproducer":
         case "lazyStartProducer": return target.isLazyStartProducer();
         case "model": return target.getModel();
+        case "showprogress":
+        case "showProgress": return target.isShowProgress();
         case "translator": return target.getTranslator();
         default: return null;
         }
diff --git a/components/camel-ai/camel-djl/src/generated/java/org/apache/camel/component/djl/DJLEndpointUriFactory.java b/components/camel-ai/camel-djl/src/generated/java/org/apache/camel/component/djl/DJLEndpointUriFactory.java
index 1a595362a0c..88913e35131 100644
--- a/components/camel-ai/camel-djl/src/generated/java/org/apache/camel/component/djl/DJLEndpointUriFactory.java
+++ b/components/camel-ai/camel-djl/src/generated/java/org/apache/camel/component/djl/DJLEndpointUriFactory.java
@@ -23,11 +23,12 @@ public class DJLEndpointUriFactory extends org.apache.camel.support.component.En
     private static final Set<String> SECRET_PROPERTY_NAMES;
     private static final Set<String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(5);
+        Set<String> props = new HashSet<>(6);
         props.add("application");
         props.add("artifactId");
         props.add("lazyStartProducer");
         props.add("model");
+        props.add("showProgress");
         props.add("translator");
         PROPERTY_NAMES = Collections.unmodifiableSet(props);
         SECRET_PROPERTY_NAMES = Collections.emptySet();
diff --git a/components/camel-ai/camel-djl/src/generated/resources/META-INF/org/apache/camel/component/djl/djl.json b/components/camel-ai/camel-djl/src/generated/resources/META-INF/org/apache/camel/component/djl/djl.json
index fa3488ad131..cc6c624650b 100644
--- a/components/camel-ai/camel-djl/src/generated/resources/META-INF/org/apache/camel/component/djl/djl.json
+++ b/components/camel-ai/camel-djl/src/generated/resources/META-INF/org/apache/camel/component/djl/djl.json
@@ -33,7 +33,8 @@
     "application": { "index": 0, "kind": "path", "displayName": "Application", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Application name" },
     "artifactId": { "index": 1, "kind": "parameter", "displayName": "Artifact Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Model Artifact" },
     "model": { "index": 2, "kind": "parameter", "displayName": "Model", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Model" },
-    "translator": { "index": 3, "kind": "parameter", "displayName": "Translator", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Translator" },
-    "lazyStartProducer": { "index": 4, "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 [...]
+    "showProgress": { "index": 3, "kind": "parameter", "displayName": "Show Progress", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Show progress while loading zoo models. This parameter takes effect only with zoo models" },
+    "translator": { "index": 4, "kind": "parameter", "displayName": "Translator", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Translator" },
+    "lazyStartProducer": { "index": 5, "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-djl/src/main/java/org/apache/camel/component/djl/DJLEndpoint.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/DJLEndpoint.java
index 4f20b84579c..04487a883de 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/DJLEndpoint.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/DJLEndpoint.java
@@ -36,12 +36,16 @@ public class DJLEndpoint extends DefaultEndpoint {
     @UriPath
     @Metadata(required = true, description = "Application name")
     private String application;
+
     @UriParam(description = "Model Artifact")
     private String artifactId;
     @UriParam(description = "Model")
     private String model;
     @UriParam(description = "Translator")
     private String translator;
+    @UriParam(description = "Show progress while loading zoo models. This parameter takes effect only with zoo models",
+              defaultValue = "false")
+    private boolean showProgress;
 
     public DJLEndpoint(String uri, DJLComponent component, String application) {
         super(uri, component);
@@ -57,7 +61,7 @@ public class DJLEndpoint extends DefaultEndpoint {
         return new DJLProducer(this);
     }
 
-    public Consumer createConsumer(Processor processor) throws Exception {
+    public Consumer createConsumer(Processor processor) {
         throw new UnsupportedOperationException("Consumer not supported");
     }
 
@@ -92,4 +96,12 @@ public class DJLEndpoint extends DefaultEndpoint {
     public void setTranslator(String translator) {
         this.translator = translator;
     }
+
+    public boolean isShowProgress() {
+        return showProgress;
+    }
+
+    public void setShowProgress(boolean showProgress) {
+        this.showProgress = showProgress;
+    }
 }
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/DJLProducer.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/DJLProducer.java
index 584c6af394d..d82c57fac13 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/DJLProducer.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/DJLProducer.java
@@ -27,11 +27,9 @@ public class DJLProducer extends DefaultProducer {
     public DJLProducer(DJLEndpoint endpoint) throws Exception {
         super(endpoint);
         if (endpoint.getArtifactId() != null) {
-            this.predictor = ModelPredictorProducer.getZooPredictor(
-                    endpoint.getApplication(), endpoint.getArtifactId());
+            this.predictor = ModelPredictorProducer.getZooPredictor(endpoint);
         } else {
-            this.predictor = ModelPredictorProducer.getCustomPredictor(
-                    endpoint.getApplication(), endpoint.getModel(), endpoint.getTranslator());
+            this.predictor = ModelPredictorProducer.getCustomPredictor(endpoint);
         }
     }
 
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/AbstractPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/AbstractPredictor.java
index 87bc1d30bcc..ab3c489feb2 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/AbstractPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/AbstractPredictor.java
@@ -17,11 +17,21 @@
 package org.apache.camel.component.djl.model;
 
 import org.apache.camel.Exchange;
+import org.apache.camel.component.djl.DJLEndpoint;
 
 public abstract class AbstractPredictor {
 
     protected static final String FAILED_TO_TRANSFORM_MESSAGE = "Couldn't transform input into a BufferedImage";
 
+    private final DJLEndpoint endpoint;
+
+    public AbstractPredictor(DJLEndpoint endpoint) {
+        this.endpoint = endpoint;
+    }
+
     public abstract void process(Exchange exchange) throws Exception;
 
+    protected DJLEndpoint getEndpoint() {
+        return endpoint;
+    }
 }
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/ModelPredictorProducer.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/ModelPredictorProducer.java
index bf52aaefabf..3cf86bbcf71 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/ModelPredictorProducer.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/ModelPredictorProducer.java
@@ -28,6 +28,7 @@ import ai.djl.modality.cv.output.Joints;
 import ai.djl.ndarray.NDArray;
 import ai.djl.repository.zoo.ModelNotFoundException;
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.component.djl.DJLEndpoint;
 import org.apache.camel.component.djl.model.audio.CustomAudioPredictor;
 import org.apache.camel.component.djl.model.audio.ZooAudioPredictor;
 import org.apache.camel.component.djl.model.cv.CustomCvPredictor;
@@ -89,132 +90,136 @@ public final class ModelPredictorProducer {
         // No-op; won't be called
     }
 
-    public static AbstractPredictor getZooPredictor(String applicationPath, String artifactId)
+    public static AbstractPredictor getZooPredictor(DJLEndpoint endpoint)
             throws ModelNotFoundException, MalformedModelException, IOException {
+        String applicationPath = endpoint.getApplication();
+
         // CV
         if (IMAGE_CLASSIFICATION.getPath().equals(applicationPath)) {
-            return new ZooImageClassificationPredictor(artifactId);
+            return new ZooImageClassificationPredictor(endpoint);
         } else if (OBJECT_DETECTION.getPath().equals(applicationPath)) {
-            return new ZooObjectDetectionPredictor(artifactId);
+            return new ZooObjectDetectionPredictor(endpoint);
         } else if (SEMANTIC_SEGMENTATION.getPath().equals(applicationPath)) {
-            return new ZooSemanticSegmentationPredictor(artifactId);
+            return new ZooSemanticSegmentationPredictor(endpoint);
         } else if (INSTANCE_SEGMENTATION.getPath().equals(applicationPath)) {
-            return new ZooInstanceSegmentationPredictor(artifactId);
+            return new ZooInstanceSegmentationPredictor(endpoint);
         } else if (POSE_ESTIMATION.getPath().equals(applicationPath)) {
-            return new ZooPoseEstimationPredictor(artifactId);
+            return new ZooPoseEstimationPredictor(endpoint);
         } else if (ACTION_RECOGNITION.getPath().equals(applicationPath)) {
-            return new ZooActionRecognitionPredictor(artifactId);
+            return new ZooActionRecognitionPredictor(endpoint);
         } else if (WORD_RECOGNITION.getPath().equals(applicationPath)) {
-            return new ZooWordRecognitionPredictor(artifactId);
+            return new ZooWordRecognitionPredictor(endpoint);
         } else if (IMAGE_GENERATION.getPath().equals(applicationPath)) {
-            return new ZooImageGenerationPredictor(artifactId);
+            return new ZooImageGenerationPredictor(endpoint);
         } else if (IMAGE_ENHANCEMENT.getPath().equals(applicationPath)) {
-            return new ZooImageEnhancementPredictor(artifactId);
+            return new ZooImageEnhancementPredictor(endpoint);
         }
 
         // NLP
         if (FILL_MASK.getPath().equals(applicationPath)) {
-            return new ZooFillMaskPredictor(artifactId);
+            return new ZooFillMaskPredictor(endpoint);
         } else if (QUESTION_ANSWER.getPath().equals(applicationPath)) {
-            return new ZooQuestionAnswerPredictor(artifactId);
+            return new ZooQuestionAnswerPredictor(endpoint);
         } else if (TEXT_CLASSIFICATION.getPath().equals(applicationPath)) {
-            return new ZooTextClassificationPredictor(artifactId);
+            return new ZooTextClassificationPredictor(endpoint);
         } else if (SENTIMENT_ANALYSIS.getPath().equals(applicationPath)) {
-            return new ZooSentimentAnalysisPredictor(artifactId);
+            return new ZooSentimentAnalysisPredictor(endpoint);
         } else if (TOKEN_CLASSIFICATION.getPath().equals(applicationPath)) {
-            return new ZooTokenClassificationPredictor(artifactId);
+            return new ZooTokenClassificationPredictor(endpoint);
         } else if (WORD_EMBEDDING.getPath().equals(applicationPath)) {
-            return new ZooWordEmbeddingPredictor(artifactId);
+            return new ZooWordEmbeddingPredictor(endpoint);
         } else if (TEXT_GENERATION.getPath().equals(applicationPath)) {
-            return new ZooTextGenerationPredictor(artifactId);
+            return new ZooTextGenerationPredictor(endpoint);
         } else if (MACHINE_TRANSLATION.getPath().equals(applicationPath)) {
-            return new ZooMachineTranslationPredictor(artifactId);
+            return new ZooMachineTranslationPredictor(endpoint);
         } else if (MULTIPLE_CHOICE.getPath().equals(applicationPath)) {
-            return new ZooMultipleChoicePredictor(artifactId);
+            return new ZooMultipleChoicePredictor(endpoint);
         } else if (TEXT_EMBEDDING.getPath().equals(applicationPath)) {
-            return new ZooTextEmbeddingPredictor(artifactId);
+            return new ZooTextEmbeddingPredictor(endpoint);
         }
 
         // Tabular
         if (LINEAR_REGRESSION.getPath().equals(applicationPath)) {
-            return new ZooLinearRegressionPredictor(artifactId);
+            return new ZooLinearRegressionPredictor(endpoint);
         } else if (SOFTMAX_REGRESSION.getPath().equals(applicationPath)) {
-            return new ZooSoftmaxRegressionPredictor(artifactId);
+            return new ZooSoftmaxRegressionPredictor(endpoint);
         }
 
         // Audio
         if (Application.Audio.ANY.getPath().equals(applicationPath)) {
-            return new ZooAudioPredictor(artifactId);
+            return new ZooAudioPredictor(endpoint);
         }
 
         // Time Series
         if (FORECASTING.getPath().equals(applicationPath)) {
-            return new ZooForecastingPredictor(artifactId);
+            return new ZooForecastingPredictor(endpoint);
         }
 
         throw new RuntimeCamelException("Application not supported: " + applicationPath);
     }
 
-    public static AbstractPredictor getCustomPredictor(String applicationPath, String model, String translator) {
+    public static AbstractPredictor getCustomPredictor(DJLEndpoint endpoint) {
+        String applicationPath = endpoint.getApplication();
+
         // CV
         if (applicationPath.equals(IMAGE_CLASSIFICATION.getPath())) {
-            return new CustomCvPredictor<Classifications>(model, translator);
+            return new CustomCvPredictor<Classifications>(endpoint);
         } else if (applicationPath.equals(OBJECT_DETECTION.getPath())) {
-            return new CustomCvPredictor<DetectedObjects>(model, translator);
+            return new CustomCvPredictor<DetectedObjects>(endpoint);
         } else if (SEMANTIC_SEGMENTATION.getPath().equals(applicationPath)) {
-            return new CustomCvPredictor<CategoryMask>(model, translator);
+            return new CustomCvPredictor<CategoryMask>(endpoint);
         } else if (INSTANCE_SEGMENTATION.getPath().equals(applicationPath)) {
-            return new CustomCvPredictor<DetectedObjects>(model, translator);
+            return new CustomCvPredictor<DetectedObjects>(endpoint);
         } else if (POSE_ESTIMATION.getPath().equals(applicationPath)) {
-            return new CustomCvPredictor<Joints>(model, translator);
+            return new CustomCvPredictor<Joints>(endpoint);
         } else if (ACTION_RECOGNITION.getPath().equals(applicationPath)) {
-            return new CustomCvPredictor<Classifications>(model, translator);
+            return new CustomCvPredictor<Classifications>(endpoint);
         } else if (WORD_RECOGNITION.getPath().equals(applicationPath)) {
-            return new CustomCvPredictor<String>(model, translator);
+            return new CustomCvPredictor<String>(endpoint);
         } else if (IMAGE_GENERATION.getPath().equals(applicationPath)) {
-            return new CustomImageGenerationPredictor(model, translator);
+            return new CustomImageGenerationPredictor(endpoint);
         } else if (IMAGE_ENHANCEMENT.getPath().equals(applicationPath)) {
-            return new CustomCvPredictor<Image>(model, translator);
+            return new CustomCvPredictor<Image>(endpoint);
         }
 
         // NLP
         if (FILL_MASK.getPath().equals(applicationPath)) {
-            return new CustomNlpPredictor<String[]>(model, translator);
+            return new CustomNlpPredictor<String[]>(endpoint);
         } else if (QUESTION_ANSWER.getPath().equals(applicationPath)) {
-            return new CustomQuestionAnswerPredictor(model, translator);
+            return new CustomQuestionAnswerPredictor(endpoint);
         } else if (TEXT_CLASSIFICATION.getPath().equals(applicationPath)) {
-            return new CustomNlpPredictor<Classifications>(model, translator);
+            return new CustomNlpPredictor<Classifications>(endpoint);
         } else if (SENTIMENT_ANALYSIS.getPath().equals(applicationPath)) {
-            return new CustomNlpPredictor<Classifications>(model, translator);
+            return new CustomNlpPredictor<Classifications>(endpoint);
         } else if (TOKEN_CLASSIFICATION.getPath().equals(applicationPath)) {
-            return new CustomNlpPredictor<Classifications>(model, translator);
+            return new CustomNlpPredictor<Classifications>(endpoint);
         } else if (WORD_EMBEDDING.getPath().equals(applicationPath)) {
-            return new CustomWordEmbeddingPredictor(model, translator);
+            return new CustomWordEmbeddingPredictor(endpoint);
         } else if (TEXT_GENERATION.getPath().equals(applicationPath)) {
-            return new CustomNlpPredictor<String>(model, translator);
+            return new CustomNlpPredictor<String>(endpoint);
         } else if (MACHINE_TRANSLATION.getPath().equals(applicationPath)) {
-            return new CustomNlpPredictor<String>(model, translator);
+            return new CustomNlpPredictor<String>(endpoint);
         } else if (MULTIPLE_CHOICE.getPath().equals(applicationPath)) {
-            return new CustomNlpPredictor<String>(model, translator);
+            return new CustomNlpPredictor<String>(endpoint);
         } else if (TEXT_EMBEDDING.getPath().equals(applicationPath)) {
-            return new CustomNlpPredictor<NDArray>(model, translator);
+            return new CustomNlpPredictor<NDArray>(endpoint);
         }
 
         // Tabular
         if (LINEAR_REGRESSION.getPath().equals(applicationPath)) {
-            return new CustomTabularPredictor(model, translator);
+            return new CustomTabularPredictor(endpoint);
         } else if (SOFTMAX_REGRESSION.getPath().equals(applicationPath)) {
-            return new CustomTabularPredictor(model, translator);
+            return new CustomTabularPredictor(endpoint);
         }
 
         // Audio
         if (Application.Audio.ANY.getPath().equals(applicationPath)) {
-            return new CustomAudioPredictor(model, translator);
+            return new CustomAudioPredictor(endpoint);
         }
 
         // Time Series
         if (FORECASTING.getPath().equals(applicationPath)) {
-            return new CustomForecastingPredictor(model, translator);
+            return new CustomForecastingPredictor(endpoint);
         }
 
         throw new RuntimeCamelException("Application not supported: " + applicationPath);
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/audio/CustomAudioPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/audio/CustomAudioPredictor.java
index a2f390e8815..3b2bb48dd1f 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/audio/CustomAudioPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/audio/CustomAudioPredictor.java
@@ -31,6 +31,7 @@ import ai.djl.translate.Translator;
 import org.apache.camel.Exchange;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.component.djl.DJLConstants;
+import org.apache.camel.component.djl.DJLEndpoint;
 import org.apache.camel.component.djl.model.AbstractPredictor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -42,9 +43,10 @@ public class CustomAudioPredictor extends AbstractPredictor {
     protected final String modelName;
     protected final String translatorName;
 
-    public CustomAudioPredictor(String modelName, String translatorName) {
-        this.modelName = modelName;
-        this.translatorName = translatorName;
+    public CustomAudioPredictor(DJLEndpoint endpoint) {
+        super(endpoint);
+        this.modelName = endpoint.getModel();
+        this.translatorName = endpoint.getTranslator();
     }
 
     @Override
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/audio/ZooAudioPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/audio/ZooAudioPredictor.java
index 3bd18a049e6..e8750976383 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/audio/ZooAudioPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/audio/ZooAudioPredictor.java
@@ -36,6 +36,7 @@ import ai.djl.translate.TranslateException;
 import org.apache.camel.Exchange;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.component.djl.DJLConstants;
+import org.apache.camel.component.djl.DJLEndpoint;
 import org.apache.camel.component.djl.model.AbstractPredictor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -46,13 +47,18 @@ public class ZooAudioPredictor extends AbstractPredictor {
 
     private final ZooModel<Audio, String> model;
 
-    public ZooAudioPredictor(String artifactId) throws ModelNotFoundException, MalformedModelException, IOException {
-        Criteria<Audio, String> criteria = Criteria.builder()
+    public ZooAudioPredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException, IOException {
+        super(endpoint);
+
+        Criteria.Builder<Audio, String> builder = Criteria.builder()
                 .optApplication(Application.Audio.ANY)
                 .setTypes(Audio.class, String.class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
-                .build();
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<Audio, String> criteria = builder.build();
         this.model = ModelZoo.loadModel(criteria);
     }
 
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/AbstractCvZooPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/AbstractCvZooPredictor.java
index 12a1aad8915..737183d7692 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/AbstractCvZooPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/AbstractCvZooPredictor.java
@@ -30,6 +30,7 @@ import ai.djl.translate.TranslateException;
 import org.apache.camel.Exchange;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.component.djl.DJLConstants;
+import org.apache.camel.component.djl.DJLEndpoint;
 import org.apache.camel.component.djl.model.AbstractPredictor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -40,6 +41,10 @@ public abstract class AbstractCvZooPredictor<T> extends AbstractPredictor {
 
     protected ZooModel<Image, T> model;
 
+    public AbstractCvZooPredictor(DJLEndpoint endpoint) {
+        super(endpoint);
+    }
+
     @Override
     public void process(Exchange exchange) {
         Object body = exchange.getIn().getBody();
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/CustomCvPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/CustomCvPredictor.java
index 56c3d9a54b0..3f4905798af 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/CustomCvPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/CustomCvPredictor.java
@@ -31,6 +31,7 @@ import ai.djl.translate.Translator;
 import org.apache.camel.Exchange;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.component.djl.DJLConstants;
+import org.apache.camel.component.djl.DJLEndpoint;
 import org.apache.camel.component.djl.model.AbstractPredictor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -42,9 +43,10 @@ public class CustomCvPredictor<T> extends AbstractPredictor {
     protected final String modelName;
     protected final String translatorName;
 
-    public CustomCvPredictor(String modelName, String translatorName) {
-        this.modelName = modelName;
-        this.translatorName = translatorName;
+    public CustomCvPredictor(DJLEndpoint endpoint) {
+        super(endpoint);
+        this.modelName = endpoint.getModel();
+        this.translatorName = endpoint.getTranslator();
     }
 
     @Override
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/CustomImageGenerationPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/CustomImageGenerationPredictor.java
index 8bfa1dbcd5e..a2f5197503d 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/CustomImageGenerationPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/CustomImageGenerationPredictor.java
@@ -24,6 +24,7 @@ import ai.djl.translate.Translator;
 import org.apache.camel.Exchange;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.component.djl.DJLConstants;
+import org.apache.camel.component.djl.DJLEndpoint;
 import org.apache.camel.component.djl.model.AbstractPredictor;
 
 public class CustomImageGenerationPredictor extends AbstractPredictor {
@@ -31,9 +32,10 @@ public class CustomImageGenerationPredictor extends AbstractPredictor {
     private final String modelName;
     private final String translatorName;
 
-    public CustomImageGenerationPredictor(String modelName, String translatorName) {
-        this.modelName = modelName;
-        this.translatorName = translatorName;
+    public CustomImageGenerationPredictor(DJLEndpoint endpoint) {
+        super(endpoint);
+        this.modelName = endpoint.getModel();
+        this.translatorName = endpoint.getTranslator();
     }
 
     @Override
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooActionRecognitionPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooActionRecognitionPredictor.java
index 6965ff4ba85..88d021cfb5b 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooActionRecognitionPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooActionRecognitionPredictor.java
@@ -26,16 +26,22 @@ import ai.djl.repository.zoo.Criteria;
 import ai.djl.repository.zoo.ModelNotFoundException;
 import ai.djl.repository.zoo.ModelZoo;
 import ai.djl.training.util.ProgressBar;
+import org.apache.camel.component.djl.DJLEndpoint;
 
 public class ZooActionRecognitionPredictor extends AbstractCvZooPredictor<Classifications> {
-    public ZooActionRecognitionPredictor(String artifactId) throws ModelNotFoundException, MalformedModelException,
-                                                            IOException {
-        Criteria<Image, Classifications> criteria = Criteria.builder()
+    public ZooActionRecognitionPredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException,
+                                                               IOException {
+        super(endpoint);
+
+        Criteria.Builder<Image, Classifications> builder = Criteria.builder()
                 .optApplication(Application.CV.ACTION_RECOGNITION)
                 .setTypes(Image.class, Classifications.class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
-                .build();
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<Image, Classifications> criteria = builder.build();
         this.model = ModelZoo.loadModel(criteria);
     }
 }
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooImageClassificationPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooImageClassificationPredictor.java
index f4555950dba..0e1f387ff7c 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooImageClassificationPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooImageClassificationPredictor.java
@@ -26,17 +26,23 @@ import ai.djl.repository.zoo.Criteria;
 import ai.djl.repository.zoo.ModelNotFoundException;
 import ai.djl.repository.zoo.ModelZoo;
 import ai.djl.training.util.ProgressBar;
+import org.apache.camel.component.djl.DJLEndpoint;
 
 public class ZooImageClassificationPredictor extends AbstractCvZooPredictor<Classifications> {
 
-    public ZooImageClassificationPredictor(String artifactId) throws ModelNotFoundException, MalformedModelException,
-                                                              IOException {
-        Criteria<Image, Classifications> criteria = Criteria.builder()
+    public ZooImageClassificationPredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException,
+                                                                 IOException {
+        super(endpoint);
+
+        Criteria.Builder<Image, Classifications> builder = Criteria.builder()
                 .optApplication(Application.CV.IMAGE_CLASSIFICATION)
                 .setTypes(Image.class, Classifications.class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
-                .build();
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<Image, Classifications> criteria = builder.build();
         this.model = ModelZoo.loadModel(criteria);
     }
 }
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooImageEnhancementPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooImageEnhancementPredictor.java
index 8b4fdc98abe..05ecd581810 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooImageEnhancementPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooImageEnhancementPredictor.java
@@ -25,17 +25,23 @@ import ai.djl.repository.zoo.Criteria;
 import ai.djl.repository.zoo.ModelNotFoundException;
 import ai.djl.repository.zoo.ModelZoo;
 import ai.djl.training.util.ProgressBar;
+import org.apache.camel.component.djl.DJLEndpoint;
 
 public class ZooImageEnhancementPredictor extends AbstractCvZooPredictor<Image> {
 
-    public ZooImageEnhancementPredictor(String artifactId) throws ModelNotFoundException, MalformedModelException,
-                                                           IOException {
-        Criteria<Image, Image> criteria = Criteria.builder()
+    public ZooImageEnhancementPredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException,
+                                                              IOException {
+        super(endpoint);
+
+        Criteria.Builder<Image, Image> builder = Criteria.builder()
                 .optApplication(Application.CV.IMAGE_ENHANCEMENT)
                 .setTypes(Image.class, Image.class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
-                .build();
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<Image, Image> criteria = builder.build();
         this.model = ModelZoo.loadModel(criteria);
     }
 }
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooImageGenerationPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooImageGenerationPredictor.java
index 7e3a77e84cc..9101e7fd22b 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooImageGenerationPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooImageGenerationPredictor.java
@@ -31,20 +31,26 @@ import ai.djl.translate.TranslateException;
 import org.apache.camel.Exchange;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.component.djl.DJLConstants;
+import org.apache.camel.component.djl.DJLEndpoint;
 import org.apache.camel.component.djl.model.AbstractPredictor;
 
 public class ZooImageGenerationPredictor extends AbstractPredictor {
 
     protected ZooModel<int[], Image[]> model;
 
-    public ZooImageGenerationPredictor(String artifactId) throws ModelNotFoundException, MalformedModelException,
-                                                          IOException {
-        Criteria<int[], Image[]> criteria = Criteria.builder()
+    public ZooImageGenerationPredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException,
+                                                             IOException {
+        super(endpoint);
+
+        Criteria.Builder<int[], Image[]> builder = Criteria.builder()
                 .optApplication(Application.CV.IMAGE_GENERATION)
                 .setTypes(int[].class, Image[].class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
-                .build();
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<int[], Image[]> criteria = builder.build();
         this.model = ModelZoo.loadModel(criteria);
     }
 
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooInstanceSegmentationPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooInstanceSegmentationPredictor.java
index 9741b1e7dda..dbb11b3e502 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooInstanceSegmentationPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooInstanceSegmentationPredictor.java
@@ -26,17 +26,23 @@ import ai.djl.repository.zoo.Criteria;
 import ai.djl.repository.zoo.ModelNotFoundException;
 import ai.djl.repository.zoo.ModelZoo;
 import ai.djl.training.util.ProgressBar;
+import org.apache.camel.component.djl.DJLEndpoint;
 
 public class ZooInstanceSegmentationPredictor extends AbstractCvZooPredictor<DetectedObjects> {
 
-    public ZooInstanceSegmentationPredictor(String artifactId) throws ModelNotFoundException, MalformedModelException,
-                                                               IOException {
-        Criteria<Image, DetectedObjects> criteria = Criteria.builder()
+    public ZooInstanceSegmentationPredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException,
+                                                                  IOException {
+        super(endpoint);
+
+        Criteria.Builder<Image, DetectedObjects> builder = Criteria.builder()
                 .optApplication(Application.CV.INSTANCE_SEGMENTATION)
                 .setTypes(Image.class, DetectedObjects.class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
-                .build();
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<Image, DetectedObjects> criteria = builder.build();
         this.model = ModelZoo.loadModel(criteria);
     }
 }
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooObjectDetectionPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooObjectDetectionPredictor.java
index 7e918a7cb50..ab24c407fd1 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooObjectDetectionPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooObjectDetectionPredictor.java
@@ -26,16 +26,23 @@ import ai.djl.repository.zoo.Criteria;
 import ai.djl.repository.zoo.ModelNotFoundException;
 import ai.djl.repository.zoo.ModelZoo;
 import ai.djl.training.util.ProgressBar;
+import org.apache.camel.component.djl.DJLEndpoint;
 
 public class ZooObjectDetectionPredictor extends AbstractCvZooPredictor<DetectedObjects> {
 
-    public ZooObjectDetectionPredictor(String artifactId) throws ModelNotFoundException, MalformedModelException, IOException {
-        Criteria<Image, DetectedObjects> criteria = Criteria.builder()
+    public ZooObjectDetectionPredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException,
+                                                             IOException {
+        super(endpoint);
+
+        Criteria.Builder<Image, DetectedObjects> builder = Criteria.builder()
                 .optApplication(Application.CV.OBJECT_DETECTION)
                 .setTypes(Image.class, DetectedObjects.class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
-                .build();
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<Image, DetectedObjects> criteria = builder.build();
         this.model = ModelZoo.loadModel(criteria);
     }
 }
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooPoseEstimationPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooPoseEstimationPredictor.java
index 3edf7659957..5e2794f63af 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooPoseEstimationPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooPoseEstimationPredictor.java
@@ -26,15 +26,22 @@ import ai.djl.repository.zoo.Criteria;
 import ai.djl.repository.zoo.ModelNotFoundException;
 import ai.djl.repository.zoo.ModelZoo;
 import ai.djl.training.util.ProgressBar;
+import org.apache.camel.component.djl.DJLEndpoint;
 
 public class ZooPoseEstimationPredictor extends AbstractCvZooPredictor<Joints> {
-    public ZooPoseEstimationPredictor(String artifactId) throws ModelNotFoundException, MalformedModelException, IOException {
-        Criteria<Image, Joints> criteria = Criteria.builder()
+    public ZooPoseEstimationPredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException,
+                                                            IOException {
+        super(endpoint);
+
+        Criteria.Builder<Image, Joints> builder = Criteria.builder()
                 .optApplication(Application.CV.POSE_ESTIMATION)
                 .setTypes(Image.class, Joints.class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
-                .build();
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<Image, Joints> criteria = builder.build();
         this.model = ModelZoo.loadModel(criteria);
     }
 }
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooSemanticSegmentationPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooSemanticSegmentationPredictor.java
index d1d8143d103..7c4fa5c8ac4 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooSemanticSegmentationPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooSemanticSegmentationPredictor.java
@@ -26,17 +26,23 @@ import ai.djl.repository.zoo.Criteria;
 import ai.djl.repository.zoo.ModelNotFoundException;
 import ai.djl.repository.zoo.ModelZoo;
 import ai.djl.training.util.ProgressBar;
+import org.apache.camel.component.djl.DJLEndpoint;
 
 public class ZooSemanticSegmentationPredictor extends AbstractCvZooPredictor<CategoryMask> {
 
-    public ZooSemanticSegmentationPredictor(String artifactId) throws ModelNotFoundException, MalformedModelException,
-                                                               IOException {
-        Criteria<Image, CategoryMask> criteria = Criteria.builder()
+    public ZooSemanticSegmentationPredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException,
+                                                                  IOException {
+        super(endpoint);
+
+        Criteria.Builder<Image, CategoryMask> builder = Criteria.builder()
                 .optApplication(Application.CV.SEMANTIC_SEGMENTATION)
                 .setTypes(Image.class, CategoryMask.class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
-                .build();
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<Image, CategoryMask> criteria = builder.build();
         this.model = ModelZoo.loadModel(criteria);
     }
 }
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooWordRecognitionPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooWordRecognitionPredictor.java
index 682e9336898..67df9996368 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooWordRecognitionPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/cv/ZooWordRecognitionPredictor.java
@@ -25,17 +25,23 @@ import ai.djl.repository.zoo.Criteria;
 import ai.djl.repository.zoo.ModelNotFoundException;
 import ai.djl.repository.zoo.ModelZoo;
 import ai.djl.training.util.ProgressBar;
+import org.apache.camel.component.djl.DJLEndpoint;
 
 public class ZooWordRecognitionPredictor extends AbstractCvZooPredictor<String> {
 
-    public ZooWordRecognitionPredictor(String artifactId) throws ModelNotFoundException, MalformedModelException,
-                                                          IOException {
-        Criteria<Image, String> criteria = Criteria.builder()
+    public ZooWordRecognitionPredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException,
+                                                             IOException {
+        super(endpoint);
+
+        Criteria.Builder<Image, String> builder = Criteria.builder()
                 .optApplication(Application.CV.WORD_RECOGNITION)
                 .setTypes(Image.class, String.class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
-                .build();
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<Image, String> criteria = builder.build();
         this.model = ModelZoo.loadModel(criteria);
     }
 }
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/AbstractNlpZooPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/AbstractNlpZooPredictor.java
index bed368f64dd..9feeae72ca9 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/AbstractNlpZooPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/AbstractNlpZooPredictor.java
@@ -22,12 +22,17 @@ import ai.djl.translate.TranslateException;
 import org.apache.camel.Exchange;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.component.djl.DJLConstants;
+import org.apache.camel.component.djl.DJLEndpoint;
 import org.apache.camel.component.djl.model.AbstractPredictor;
 
 public abstract class AbstractNlpZooPredictor<T> extends AbstractPredictor {
 
     protected ZooModel<String, T> model;
 
+    public AbstractNlpZooPredictor(DJLEndpoint endpoint) {
+        super(endpoint);
+    }
+
     @Override
     public void process(Exchange exchange) {
         if (exchange.getIn().getBody() instanceof String) {
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/CustomNlpPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/CustomNlpPredictor.java
index 54157ab53b4..dfe3a0a9c0e 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/CustomNlpPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/CustomNlpPredictor.java
@@ -23,6 +23,7 @@ import ai.djl.translate.Translator;
 import org.apache.camel.Exchange;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.component.djl.DJLConstants;
+import org.apache.camel.component.djl.DJLEndpoint;
 import org.apache.camel.component.djl.model.AbstractPredictor;
 
 public class CustomNlpPredictor<T> extends AbstractPredictor {
@@ -30,9 +31,10 @@ public class CustomNlpPredictor<T> extends AbstractPredictor {
     protected final String modelName;
     protected final String translatorName;
 
-    public CustomNlpPredictor(String modelName, String translatorName) {
-        this.modelName = modelName;
-        this.translatorName = translatorName;
+    public CustomNlpPredictor(DJLEndpoint endpoint) {
+        super(endpoint);
+        this.modelName = endpoint.getModel();
+        this.translatorName = endpoint.getTranslator();
     }
 
     @Override
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/CustomQuestionAnswerPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/CustomQuestionAnswerPredictor.java
index ab162c69567..e54d172fa28 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/CustomQuestionAnswerPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/CustomQuestionAnswerPredictor.java
@@ -24,6 +24,7 @@ import ai.djl.translate.Translator;
 import org.apache.camel.Exchange;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.component.djl.DJLConstants;
+import org.apache.camel.component.djl.DJLEndpoint;
 import org.apache.camel.component.djl.model.AbstractPredictor;
 
 public class CustomQuestionAnswerPredictor extends AbstractPredictor {
@@ -31,9 +32,10 @@ public class CustomQuestionAnswerPredictor extends AbstractPredictor {
     private final String modelName;
     private final String translatorName;
 
-    public CustomQuestionAnswerPredictor(String modelName, String translatorName) {
-        this.modelName = modelName;
-        this.translatorName = translatorName;
+    public CustomQuestionAnswerPredictor(DJLEndpoint endpoint) {
+        super(endpoint);
+        this.modelName = endpoint.getModel();
+        this.translatorName = endpoint.getTranslator();
     }
 
     @Override
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/CustomWordEmbeddingPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/CustomWordEmbeddingPredictor.java
index a9df3b4e062..3a83c14a141 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/CustomWordEmbeddingPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/CustomWordEmbeddingPredictor.java
@@ -18,11 +18,12 @@ package org.apache.camel.component.djl.model.nlp;
 
 import ai.djl.ndarray.NDList;
 import org.apache.camel.Exchange;
+import org.apache.camel.component.djl.DJLEndpoint;
 
 public class CustomWordEmbeddingPredictor extends CustomNlpPredictor<NDList> {
 
-    public CustomWordEmbeddingPredictor(String modelName, String translatorName) {
-        super(modelName, translatorName);
+    public CustomWordEmbeddingPredictor(DJLEndpoint endpoint) {
+        super(endpoint);
     }
 
     @Override
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooFillMaskPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooFillMaskPredictor.java
index 4bc85b0d997..691553b0b69 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooFillMaskPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooFillMaskPredictor.java
@@ -24,16 +24,22 @@ import ai.djl.repository.zoo.Criteria;
 import ai.djl.repository.zoo.ModelNotFoundException;
 import ai.djl.repository.zoo.ModelZoo;
 import ai.djl.training.util.ProgressBar;
+import org.apache.camel.component.djl.DJLEndpoint;
 
 public class ZooFillMaskPredictor extends AbstractNlpZooPredictor<String[]> {
 
-    public ZooFillMaskPredictor(String artifactId) throws ModelNotFoundException, MalformedModelException, IOException {
-        Criteria<String, String[]> criteria = Criteria.builder()
+    public ZooFillMaskPredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException, IOException {
+        super(endpoint);
+
+        Criteria.Builder<String, String[]> builder = Criteria.builder()
                 .optApplication(Application.NLP.FILL_MASK)
                 .setTypes(String.class, String[].class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
-                .build();
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<String, String[]> criteria = builder.build();
         this.model = ModelZoo.loadModel(criteria);
     }
 }
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooMachineTranslationPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooMachineTranslationPredictor.java
index e6df6fb109e..666dde0d66a 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooMachineTranslationPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooMachineTranslationPredictor.java
@@ -24,17 +24,23 @@ import ai.djl.repository.zoo.Criteria;
 import ai.djl.repository.zoo.ModelNotFoundException;
 import ai.djl.repository.zoo.ModelZoo;
 import ai.djl.training.util.ProgressBar;
+import org.apache.camel.component.djl.DJLEndpoint;
 
 public class ZooMachineTranslationPredictor extends AbstractNlpZooPredictor<String> {
 
-    public ZooMachineTranslationPredictor(String artifactId) throws ModelNotFoundException, MalformedModelException,
-                                                             IOException {
-        Criteria<String, String> criteria = Criteria.builder()
+    public ZooMachineTranslationPredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException,
+                                                                IOException {
+        super(endpoint);
+
+        Criteria.Builder<String, String> builder = Criteria.builder()
                 .optApplication(Application.NLP.MACHINE_TRANSLATION)
                 .setTypes(String.class, String.class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
-                .build();
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<String, String> criteria = builder.build();
         this.model = ModelZoo.loadModel(criteria);
     }
 }
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooMultipleChoicePredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooMultipleChoicePredictor.java
index 324b4be0192..f10240d97b7 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooMultipleChoicePredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooMultipleChoicePredictor.java
@@ -24,17 +24,23 @@ import ai.djl.repository.zoo.Criteria;
 import ai.djl.repository.zoo.ModelNotFoundException;
 import ai.djl.repository.zoo.ModelZoo;
 import ai.djl.training.util.ProgressBar;
+import org.apache.camel.component.djl.DJLEndpoint;
 
 public class ZooMultipleChoicePredictor extends AbstractNlpZooPredictor<String> {
 
-    public ZooMultipleChoicePredictor(String artifactId) throws ModelNotFoundException, MalformedModelException,
-                                                         IOException {
-        Criteria<String, String> criteria = Criteria.builder()
+    public ZooMultipleChoicePredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException,
+                                                            IOException {
+        super(endpoint);
+
+        Criteria.Builder<String, String> builder = Criteria.builder()
                 .optApplication(Application.NLP.MULTIPLE_CHOICE)
                 .setTypes(String.class, String.class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
-                .build();
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<String, String> criteria = builder.build();
         this.model = ModelZoo.loadModel(criteria);
     }
 }
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooQuestionAnswerPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooQuestionAnswerPredictor.java
index a64e5c579b8..259d2916496 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooQuestionAnswerPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooQuestionAnswerPredictor.java
@@ -31,19 +31,26 @@ import ai.djl.translate.TranslateException;
 import org.apache.camel.Exchange;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.component.djl.DJLConstants;
+import org.apache.camel.component.djl.DJLEndpoint;
 import org.apache.camel.component.djl.model.AbstractPredictor;
 
 public class ZooQuestionAnswerPredictor extends AbstractPredictor {
 
     private final ZooModel<QAInput, String> model;
 
-    public ZooQuestionAnswerPredictor(String artifactId) throws ModelNotFoundException, MalformedModelException, IOException {
-        Criteria<QAInput, String> criteria = Criteria.builder()
+    public ZooQuestionAnswerPredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException,
+                                                            IOException {
+        super(endpoint);
+
+        Criteria.Builder<QAInput, String> builder = Criteria.builder()
                 .optApplication(Application.NLP.QUESTION_ANSWER)
                 .setTypes(QAInput.class, String.class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
-                .build();
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<QAInput, String> criteria = builder.build();
         this.model = ModelZoo.loadModel(criteria);
     }
 
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooSentimentAnalysisPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooSentimentAnalysisPredictor.java
index e43032730b4..9e5f35fd7e3 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooSentimentAnalysisPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooSentimentAnalysisPredictor.java
@@ -25,17 +25,23 @@ import ai.djl.repository.zoo.Criteria;
 import ai.djl.repository.zoo.ModelNotFoundException;
 import ai.djl.repository.zoo.ModelZoo;
 import ai.djl.training.util.ProgressBar;
+import org.apache.camel.component.djl.DJLEndpoint;
 
 public class ZooSentimentAnalysisPredictor extends AbstractNlpZooPredictor<Classifications> {
 
-    public ZooSentimentAnalysisPredictor(String artifactId) throws ModelNotFoundException, MalformedModelException,
-                                                            IOException {
-        Criteria<String, Classifications> criteria = Criteria.builder()
+    public ZooSentimentAnalysisPredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException,
+                                                               IOException {
+        super(endpoint);
+
+        Criteria.Builder<String, Classifications> builder = Criteria.builder()
                 .optApplication(Application.NLP.SENTIMENT_ANALYSIS)
                 .setTypes(String.class, Classifications.class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
-                .build();
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<String, Classifications> criteria = builder.build();
         this.model = ModelZoo.loadModel(criteria);
     }
 }
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooTextClassificationPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooTextClassificationPredictor.java
index 98aca9d19aa..5b1f68ca50c 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooTextClassificationPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooTextClassificationPredictor.java
@@ -25,17 +25,23 @@ import ai.djl.repository.zoo.Criteria;
 import ai.djl.repository.zoo.ModelNotFoundException;
 import ai.djl.repository.zoo.ModelZoo;
 import ai.djl.training.util.ProgressBar;
+import org.apache.camel.component.djl.DJLEndpoint;
 
 public class ZooTextClassificationPredictor extends AbstractNlpZooPredictor<Classifications> {
 
-    public ZooTextClassificationPredictor(String artifactId) throws ModelNotFoundException, MalformedModelException,
-                                                             IOException {
-        Criteria<String, Classifications> criteria = Criteria.builder()
+    public ZooTextClassificationPredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException,
+                                                                IOException {
+        super(endpoint);
+
+        Criteria.Builder<String, Classifications> builder = Criteria.builder()
                 .optApplication(Application.NLP.TEXT_CLASSIFICATION)
                 .setTypes(String.class, Classifications.class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
-                .build();
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<String, Classifications> criteria = builder.build();
         this.model = ModelZoo.loadModel(criteria);
     }
 }
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooTextEmbeddingPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooTextEmbeddingPredictor.java
index 8369bb3ade1..7db40ff9ac4 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooTextEmbeddingPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooTextEmbeddingPredictor.java
@@ -25,17 +25,23 @@ import ai.djl.repository.zoo.Criteria;
 import ai.djl.repository.zoo.ModelNotFoundException;
 import ai.djl.repository.zoo.ModelZoo;
 import ai.djl.training.util.ProgressBar;
+import org.apache.camel.component.djl.DJLEndpoint;
 
 public class ZooTextEmbeddingPredictor extends AbstractNlpZooPredictor<NDArray> {
 
-    public ZooTextEmbeddingPredictor(String artifactId) throws ModelNotFoundException, MalformedModelException,
-                                                        IOException {
-        Criteria<String, NDArray> criteria = Criteria.builder()
+    public ZooTextEmbeddingPredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException,
+                                                           IOException {
+        super(endpoint);
+
+        Criteria.Builder<String, NDArray> builder = Criteria.builder()
                 .optApplication(Application.NLP.TEXT_EMBEDDING)
                 .setTypes(String.class, NDArray.class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
-                .build();
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<String, NDArray> criteria = builder.build();
         this.model = ModelZoo.loadModel(criteria);
     }
 }
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooTextGenerationPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooTextGenerationPredictor.java
index 47574950357..868f14e11b0 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooTextGenerationPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooTextGenerationPredictor.java
@@ -24,17 +24,23 @@ import ai.djl.repository.zoo.Criteria;
 import ai.djl.repository.zoo.ModelNotFoundException;
 import ai.djl.repository.zoo.ModelZoo;
 import ai.djl.training.util.ProgressBar;
+import org.apache.camel.component.djl.DJLEndpoint;
 
 public class ZooTextGenerationPredictor extends AbstractNlpZooPredictor<String> {
 
-    public ZooTextGenerationPredictor(String artifactId) throws ModelNotFoundException, MalformedModelException,
-                                                         IOException {
-        Criteria<String, String> criteria = Criteria.builder()
+    public ZooTextGenerationPredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException,
+                                                            IOException {
+        super(endpoint);
+
+        Criteria.Builder<String, String> builder = Criteria.builder()
                 .optApplication(Application.NLP.TEXT_GENERATION)
                 .setTypes(String.class, String.class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
-                .build();
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<String, String> criteria = builder.build();
         this.model = ModelZoo.loadModel(criteria);
     }
 }
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooTokenClassificationPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooTokenClassificationPredictor.java
index 0084645d33a..a416b9e39a7 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooTokenClassificationPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooTokenClassificationPredictor.java
@@ -25,17 +25,23 @@ import ai.djl.repository.zoo.Criteria;
 import ai.djl.repository.zoo.ModelNotFoundException;
 import ai.djl.repository.zoo.ModelZoo;
 import ai.djl.training.util.ProgressBar;
+import org.apache.camel.component.djl.DJLEndpoint;
 
 public class ZooTokenClassificationPredictor extends AbstractNlpZooPredictor<Classifications> {
 
-    public ZooTokenClassificationPredictor(String artifactId) throws ModelNotFoundException, MalformedModelException,
-                                                              IOException {
-        Criteria<String, Classifications> criteria = Criteria.builder()
+    public ZooTokenClassificationPredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException,
+                                                                 IOException {
+        super(endpoint);
+
+        Criteria.Builder<String, Classifications> builder = Criteria.builder()
                 .optApplication(Application.NLP.TOKEN_CLASSIFICATION)
                 .setTypes(String.class, Classifications.class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
-                .build();
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<String, Classifications> criteria = builder.build();
         this.model = ModelZoo.loadModel(criteria);
     }
 }
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooWordEmbeddingPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooWordEmbeddingPredictor.java
index 88326bd4a32..01bd1c03886 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooWordEmbeddingPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/nlp/ZooWordEmbeddingPredictor.java
@@ -26,17 +26,23 @@ import ai.djl.repository.zoo.ModelNotFoundException;
 import ai.djl.repository.zoo.ModelZoo;
 import ai.djl.training.util.ProgressBar;
 import org.apache.camel.Exchange;
+import org.apache.camel.component.djl.DJLEndpoint;
 
 public class ZooWordEmbeddingPredictor extends AbstractNlpZooPredictor<NDList> {
 
-    public ZooWordEmbeddingPredictor(String artifactId) throws ModelNotFoundException, MalformedModelException,
-                                                        IOException {
-        Criteria<String, NDList> criteria = Criteria.builder()
+    public ZooWordEmbeddingPredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException,
+                                                           IOException {
+        super(endpoint);
+
+        Criteria.Builder<String, NDList> builder = Criteria.builder()
                 .optApplication(Application.NLP.WORD_EMBEDDING)
                 .setTypes(String.class, NDList.class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
-                .build();
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<String, NDList> criteria = builder.build();
         this.model = ModelZoo.loadModel(criteria);
     }
 
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/tabular/CustomTabularPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/tabular/CustomTabularPredictor.java
index c958a715663..1c999c5c52b 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/tabular/CustomTabularPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/tabular/CustomTabularPredictor.java
@@ -23,6 +23,7 @@ import ai.djl.translate.Translator;
 import org.apache.camel.Exchange;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.component.djl.DJLConstants;
+import org.apache.camel.component.djl.DJLEndpoint;
 import org.apache.camel.component.djl.model.AbstractPredictor;
 
 public class CustomTabularPredictor extends AbstractPredictor {
@@ -30,9 +31,10 @@ public class CustomTabularPredictor extends AbstractPredictor {
     protected final String modelName;
     protected final String translatorName;
 
-    public CustomTabularPredictor(String modelName, String translatorName) {
-        this.modelName = modelName;
-        this.translatorName = translatorName;
+    public CustomTabularPredictor(DJLEndpoint endpoint) {
+        super(endpoint);
+        this.modelName = endpoint.getModel();
+        this.translatorName = endpoint.getTranslator();
     }
 
     @Override
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/tabular/ZooLinearRegressionPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/tabular/ZooLinearRegressionPredictor.java
index 7b7f023ddb6..43961f8a28b 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/tabular/ZooLinearRegressionPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/tabular/ZooLinearRegressionPredictor.java
@@ -17,11 +17,12 @@
 package org.apache.camel.component.djl.model.tabular;
 
 import org.apache.camel.Exchange;
+import org.apache.camel.component.djl.DJLEndpoint;
 import org.apache.camel.component.djl.model.AbstractPredictor;
 
 public class ZooLinearRegressionPredictor extends AbstractPredictor {
-    public ZooLinearRegressionPredictor(String artifactId) {
-        super();
+    public ZooLinearRegressionPredictor(DJLEndpoint endpoint) {
+        super(endpoint);
     }
 
     @Override
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/tabular/ZooSoftmaxRegressionPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/tabular/ZooSoftmaxRegressionPredictor.java
index 1e51de5409e..ee2f684e5c5 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/tabular/ZooSoftmaxRegressionPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/tabular/ZooSoftmaxRegressionPredictor.java
@@ -17,11 +17,12 @@
 package org.apache.camel.component.djl.model.tabular;
 
 import org.apache.camel.Exchange;
+import org.apache.camel.component.djl.DJLEndpoint;
 import org.apache.camel.component.djl.model.AbstractPredictor;
 
 public class ZooSoftmaxRegressionPredictor extends AbstractPredictor {
-    public ZooSoftmaxRegressionPredictor(String artifactId) {
-        super();
+    public ZooSoftmaxRegressionPredictor(DJLEndpoint endpoint) {
+        super(endpoint);
     }
 
     @Override
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/timeseries/CustomForecastingPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/timeseries/CustomForecastingPredictor.java
index d54f7e2a74f..34c2ab36b4f 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/timeseries/CustomForecastingPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/timeseries/CustomForecastingPredictor.java
@@ -25,6 +25,7 @@ import ai.djl.translate.Translator;
 import org.apache.camel.Exchange;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.component.djl.DJLConstants;
+import org.apache.camel.component.djl.DJLEndpoint;
 import org.apache.camel.component.djl.model.AbstractPredictor;
 
 public class CustomForecastingPredictor extends AbstractPredictor {
@@ -32,9 +33,10 @@ public class CustomForecastingPredictor extends AbstractPredictor {
     protected final String modelName;
     protected final String translatorName;
 
-    public CustomForecastingPredictor(String modelName, String translatorName) {
-        this.modelName = modelName;
-        this.translatorName = translatorName;
+    public CustomForecastingPredictor(DJLEndpoint endpoint) {
+        super(endpoint);
+        this.modelName = endpoint.getModel();
+        this.translatorName = endpoint.getTranslator();
     }
 
     @Override
diff --git a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/timeseries/ZooForecastingPredictor.java b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/timeseries/ZooForecastingPredictor.java
index d563f3fd946..c79fa3f0a9d 100644
--- a/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/timeseries/ZooForecastingPredictor.java
+++ b/components/camel-ai/camel-djl/src/main/java/org/apache/camel/component/djl/model/timeseries/ZooForecastingPredictor.java
@@ -32,18 +32,25 @@ import ai.djl.translate.TranslateException;
 import org.apache.camel.Exchange;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.component.djl.DJLConstants;
+import org.apache.camel.component.djl.DJLEndpoint;
 import org.apache.camel.component.djl.model.AbstractPredictor;
 
 public class ZooForecastingPredictor extends AbstractPredictor {
 
     private final ZooModel<TimeSeriesData, Forecast> model;
 
-    public ZooForecastingPredictor(String artifactId) throws ModelNotFoundException, MalformedModelException, IOException {
-        Criteria<TimeSeriesData, Forecast> criteria = Criteria.builder()
+    public ZooForecastingPredictor(DJLEndpoint endpoint) throws ModelNotFoundException, MalformedModelException, IOException {
+        super(endpoint);
+
+        Criteria.Builder<TimeSeriesData, Forecast> builder = Criteria.builder()
                 .optApplication(Application.TimeSeries.FORECASTING)
                 .setTypes(TimeSeriesData.class, Forecast.class)
-                .optArtifactId(artifactId)
-                .optProgress(new ProgressBar())
+                .optArtifactId(endpoint.getArtifactId());
+        if (endpoint.isShowProgress()) {
+            builder.optProgress(new ProgressBar());
+        }
+
+        Criteria<TimeSeriesData, Forecast> criteria = builder
                 .build();
         this.model = ModelZoo.loadModel(criteria);
     }
diff --git a/components/camel-ai/camel-djl/src/test/java/org/apache/camel/component/djl/CvImageClassificationTest.java b/components/camel-ai/camel-djl/src/test/java/org/apache/camel/component/djl/CvImageClassificationTest.java
index a567a520a6c..5d04bfc6302 100644
--- a/components/camel-ai/camel-djl/src/test/java/org/apache/camel/component/djl/CvImageClassificationTest.java
+++ b/components/camel-ai/camel-djl/src/test/java/org/apache/camel/component/djl/CvImageClassificationTest.java
@@ -43,7 +43,7 @@ public class CvImageClassificationTest extends CamelTestSupport {
             public void configure() {
                 from("file:src/test/resources/data/mnist?recursive=true&noop=true")
                         .convertBodyTo(byte[].class)
-                        .to("djl:cv/image_classification?artifactId=ai.djl.zoo:mlp:0.0.3")
+                        .to("djl:cv/image_classification?artifactId=ai.djl.zoo:mlp:0.0.3&showProgress=true")
                         .log("${header.CamelFileName} = ${body.best.className}")
                         .to("mock:result");
             }
diff --git a/components/camel-ai/camel-djl/src/test/java/org/apache/camel/component/djl/model/ModelPredictorProducerTest.java b/components/camel-ai/camel-djl/src/test/java/org/apache/camel/component/djl/model/ModelPredictorProducerTest.java
index 136a66ba5f0..05f40e04f9e 100644
--- a/components/camel-ai/camel-djl/src/test/java/org/apache/camel/component/djl/model/ModelPredictorProducerTest.java
+++ b/components/camel-ai/camel-djl/src/test/java/org/apache/camel/component/djl/model/ModelPredictorProducerTest.java
@@ -20,6 +20,7 @@ import java.io.IOException;
 
 import ai.djl.MalformedModelException;
 import ai.djl.repository.zoo.ModelNotFoundException;
+import org.apache.camel.component.djl.DJLEndpoint;
 import org.apache.camel.component.djl.model.audio.CustomAudioPredictor;
 import org.apache.camel.component.djl.model.cv.CustomCvPredictor;
 import org.apache.camel.component.djl.model.cv.CustomImageGenerationPredictor;
@@ -58,32 +59,32 @@ class ModelPredictorProducerTest {
     void testGetZooPredictor() throws ModelNotFoundException, MalformedModelException, IOException {
         // CV
         assertInstanceOf(ZooImageClassificationPredictor.class,
-                getZooPredictor("cv/image_classification", "ai.djl.zoo:mlp:0.0.3"));
+                getZooPredictor(zooEndpoint("cv/image_classification", "ai.djl.zoo:mlp:0.0.3")));
         assertInstanceOf(ZooObjectDetectionPredictor.class,
-                getZooPredictor("cv/object_detection", "ai.djl.zoo:ssd:0.0.2"));
+                getZooPredictor(zooEndpoint("cv/object_detection", "ai.djl.zoo:ssd:0.0.2")));
         assertInstanceOf(ZooSemanticSegmentationPredictor.class,
-                getZooPredictor("cv/semantic_segmentation", "ai.djl.pytorch:deeplabv3:0.0.1"));
+                getZooPredictor(zooEndpoint("cv/semantic_segmentation", "ai.djl.pytorch:deeplabv3:0.0.1")));
         assertInstanceOf(ZooInstanceSegmentationPredictor.class,
-                getZooPredictor("cv/instance_segmentation", "ai.djl.mxnet:mask_rcnn:0.0.1"));
+                getZooPredictor(zooEndpoint("cv/instance_segmentation", "ai.djl.mxnet:mask_rcnn:0.0.1")));
         assertInstanceOf(ZooPoseEstimationPredictor.class,
-                getZooPredictor("cv/pose_estimation", "ai.djl.mxnet:simple_pose:0.0.1"));
+                getZooPredictor(zooEndpoint("cv/pose_estimation", "ai.djl.mxnet:simple_pose:0.0.1")));
         assertInstanceOf(ZooActionRecognitionPredictor.class,
-                getZooPredictor("cv/action_recognition", "ai.djl.mxnet:action_recognition:0.0.1"));
+                getZooPredictor(zooEndpoint("cv/action_recognition", "ai.djl.mxnet:action_recognition:0.0.1")));
         // No builtin zoo model available for "cv/word_recognition"
         assertInstanceOf(ZooImageGenerationPredictor.class,
-                getZooPredictor("cv/image_generation", "ai.djl.pytorch:biggan-deep:0.0.1"));
+                getZooPredictor(zooEndpoint("cv/image_generation", "ai.djl.pytorch:biggan-deep:0.0.1")));
         // No builtin zoo model available for "cv/image_enhancement"
 
         // NLP
         // No builtin zoo model available for "nlp/fill_mask"
         assertInstanceOf(ZooQuestionAnswerPredictor.class,
-                getZooPredictor("nlp/question_answer", "ai.djl.pytorch:bertqa:0.0.1"));
+                getZooPredictor(zooEndpoint("nlp/question_answer", "ai.djl.pytorch:bertqa:0.0.1")));
         // No builtin zoo model available for "nlp/text_classification"
         assertInstanceOf(ZooSentimentAnalysisPredictor.class,
-                getZooPredictor("nlp/sentiment_analysis", "ai.djl.pytorch:distilbert:0.0.1"));
+                getZooPredictor(zooEndpoint("nlp/sentiment_analysis", "ai.djl.pytorch:distilbert:0.0.1")));
         // No builtin zoo model available for "nlp/token_classification"
         assertInstanceOf(ZooWordEmbeddingPredictor.class,
-                getZooPredictor("nlp/word_embedding", "ai.djl.mxnet:glove:0.0.2"));
+                getZooPredictor(zooEndpoint("nlp/word_embedding", "ai.djl.mxnet:glove:0.0.2")));
         // No builtin zoo model available for "nlp/text_generation"
         // No builtin zoo model available for "nlp/machine_translation"
         // No builtin zoo model available for "nlp/multiple_choice"
@@ -98,7 +99,7 @@ class ModelPredictorProducerTest {
 
         // Time Series
         assertInstanceOf(ZooForecastingPredictor.class,
-                getZooPredictor("timeseries/forecasting", "ai.djl.pytorch:deepar:0.0.1"));
+                getZooPredictor(zooEndpoint("timeseries/forecasting", "ai.djl.pytorch:deepar:0.0.1")));
     }
 
     @Test
@@ -108,58 +109,71 @@ class ModelPredictorProducerTest {
 
         // CV
         assertInstanceOf(CustomCvPredictor.class,
-                getCustomPredictor("cv/image_classification", modelName, translatorName));
+                getCustomPredictor(customEndpoint("cv/image_classification", modelName, translatorName)));
         assertInstanceOf(CustomCvPredictor.class,
-                getCustomPredictor("cv/object_detection", modelName, translatorName));
+                getCustomPredictor(customEndpoint("cv/object_detection", modelName, translatorName)));
         assertInstanceOf(CustomCvPredictor.class,
-                getCustomPredictor("cv/semantic_segmentation", modelName, translatorName));
+                getCustomPredictor(customEndpoint("cv/semantic_segmentation", modelName, translatorName)));
         assertInstanceOf(CustomCvPredictor.class,
-                getCustomPredictor("cv/instance_segmentation", modelName, translatorName));
+                getCustomPredictor(customEndpoint("cv/instance_segmentation", modelName, translatorName)));
         assertInstanceOf(CustomCvPredictor.class,
-                getCustomPredictor("cv/pose_estimation", modelName, translatorName));
+                getCustomPredictor(customEndpoint("cv/pose_estimation", modelName, translatorName)));
         assertInstanceOf(CustomCvPredictor.class,
-                getCustomPredictor("cv/action_recognition", modelName, translatorName));
+                getCustomPredictor(customEndpoint("cv/action_recognition", modelName, translatorName)));
         assertInstanceOf(CustomCvPredictor.class,
-                getCustomPredictor("cv/word_recognition", modelName, translatorName));
+                getCustomPredictor(customEndpoint("cv/word_recognition", modelName, translatorName)));
         assertInstanceOf(CustomImageGenerationPredictor.class,
-                getCustomPredictor("cv/image_generation", modelName, translatorName));
+                getCustomPredictor(customEndpoint("cv/image_generation", modelName, translatorName)));
         assertInstanceOf(CustomCvPredictor.class,
-                getCustomPredictor("cv/image_enhancement", modelName, translatorName));
+                getCustomPredictor(customEndpoint("cv/image_enhancement", modelName, translatorName)));
 
         // NLP
         assertInstanceOf(CustomNlpPredictor.class,
-                getCustomPredictor("nlp/fill_mask", modelName, translatorName));
+                getCustomPredictor(customEndpoint("nlp/fill_mask", modelName, translatorName)));
         assertInstanceOf(CustomQuestionAnswerPredictor.class,
-                getCustomPredictor("nlp/question_answer", modelName, translatorName));
+                getCustomPredictor(customEndpoint("nlp/question_answer", modelName, translatorName)));
         assertInstanceOf(CustomNlpPredictor.class,
-                getCustomPredictor("nlp/text_classification", modelName, translatorName));
+                getCustomPredictor(customEndpoint("nlp/text_classification", modelName, translatorName)));
         assertInstanceOf(CustomNlpPredictor.class,
-                getCustomPredictor("nlp/sentiment_analysis", modelName, translatorName));
+                getCustomPredictor(customEndpoint("nlp/sentiment_analysis", modelName, translatorName)));
         assertInstanceOf(CustomNlpPredictor.class,
-                getCustomPredictor("nlp/token_classification", modelName, translatorName));
+                getCustomPredictor(customEndpoint("nlp/token_classification", modelName, translatorName)));
         assertInstanceOf(CustomWordEmbeddingPredictor.class,
-                getCustomPredictor("nlp/word_embedding", modelName, translatorName));
+                getCustomPredictor(customEndpoint("nlp/word_embedding", modelName, translatorName)));
         assertInstanceOf(CustomNlpPredictor.class,
-                getCustomPredictor("nlp/text_generation", modelName, translatorName));
+                getCustomPredictor(customEndpoint("nlp/text_generation", modelName, translatorName)));
         assertInstanceOf(CustomNlpPredictor.class,
-                getCustomPredictor("nlp/machine_translation", modelName, translatorName));
+                getCustomPredictor(customEndpoint("nlp/machine_translation", modelName, translatorName)));
         assertInstanceOf(CustomNlpPredictor.class,
-                getCustomPredictor("nlp/multiple_choice", modelName, translatorName));
+                getCustomPredictor(customEndpoint("nlp/multiple_choice", modelName, translatorName)));
         assertInstanceOf(CustomNlpPredictor.class,
-                getCustomPredictor("nlp/text_embedding", modelName, translatorName));
+                getCustomPredictor(customEndpoint("nlp/text_embedding", modelName, translatorName)));
 
         // Tabular
         assertInstanceOf(CustomTabularPredictor.class,
-                getCustomPredictor("tabular/linear_regression", modelName, translatorName));
+                getCustomPredictor(customEndpoint("tabular/linear_regression", modelName, translatorName)));
         assertInstanceOf(CustomTabularPredictor.class,
-                getCustomPredictor("tabular/softmax_regression", modelName, translatorName));
+                getCustomPredictor(customEndpoint("tabular/softmax_regression", modelName, translatorName)));
 
         // Audio
         assertInstanceOf(CustomAudioPredictor.class,
-                getCustomPredictor("audio", modelName, translatorName));
+                getCustomPredictor(customEndpoint("audio", modelName, translatorName)));
 
         // Time Series
         assertInstanceOf(CustomForecastingPredictor.class,
-                getCustomPredictor("timeseries/forecasting", modelName, translatorName));
+                getCustomPredictor(customEndpoint("timeseries/forecasting", modelName, translatorName)));
+    }
+
+    private static DJLEndpoint zooEndpoint(String application, String artifactId) {
+        DJLEndpoint endpoint = new DJLEndpoint("djl:" + application, null, application);
+        endpoint.setArtifactId(artifactId);
+        return endpoint;
+    }
+
+    private static DJLEndpoint customEndpoint(String application, String model, String translator) {
+        DJLEndpoint endpoint = new DJLEndpoint("djl:" + application, null, application);
+        endpoint.setModel(model);
+        endpoint.setTranslator(translator);
+        return endpoint;
     }
 }
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DJLEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DJLEndpointBuilderFactory.java
index 032c1bee54a..b4351102a4f 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DJLEndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DJLEndpointBuilderFactory.java
@@ -73,6 +73,38 @@ public interface DJLEndpointBuilderFactory {
             doSetProperty("model", model);
             return this;
         }
+        /**
+         * Show progress while loading zoo models. This parameter takes effect
+         * only with zoo models.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         * 
+         * @param showProgress the value to set
+         * @return the dsl builder
+         */
+        default DJLEndpointBuilder showProgress(boolean showProgress) {
+            doSetProperty("showProgress", showProgress);
+            return this;
+        }
+        /**
+         * Show progress while loading zoo models. This parameter takes effect
+         * only with zoo models.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         * 
+         * @param showProgress the value to set
+         * @return the dsl builder
+         */
+        default DJLEndpointBuilder showProgress(String showProgress) {
+            doSetProperty("showProgress", showProgress);
+            return this;
+        }
         /**
          * Translator.
          * 
diff --git a/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/DjlUriDsl.kt b/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/DjlUriDsl.kt
index 89fc6af85a9..269bac39fcb 100644
--- a/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/DjlUriDsl.kt
+++ b/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/DjlUriDsl.kt
@@ -64,6 +64,20 @@ public class DjlUriDsl(
     it.property("model", model)
   }
 
+  /**
+   * Show progress while loading zoo models. This parameter takes effect only with zoo models
+   */
+  public fun showProgress(showProgress: String) {
+    it.property("showProgress", showProgress)
+  }
+
+  /**
+   * Show progress while loading zoo models. This parameter takes effect only with zoo models
+   */
+  public fun showProgress(showProgress: Boolean) {
+    it.property("showProgress", showProgress.toString())
+  }
+
   /**
    * Translator
    */