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

gnodet pushed a commit to branch CAMEL-23205
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 8f7c90296a52ddb9678ed4d9c98357f2d8a1eb27
Author: Guillaume Nodet <[email protected]>
AuthorDate: Wed Mar 18 15:46:01 2026 +0100

    CAMEL-23205: Fix OpenAI embedding tests by changing default encoding format
    
    Change default encodingFormat from "base64" to "float" for the OpenAI
    embeddings endpoint. The producer code assumes embedding.embedding()
    returns List<Float>, which is only true with float encoding. With
    base64, the SDK returns a String, causing ClassCastException.
    
    float is the more natural default since it returns usable float
    vectors directly, and is compatible with Ollama which does not
    support base64 embedding encoding.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
---
 .../resources/org/apache/camel/catalog/components/openai.json         | 2 +-
 .../resources/META-INF/org/apache/camel/component/openai/openai.json  | 2 +-
 .../java/org/apache/camel/component/openai/OpenAIConfiguration.java   | 4 ++--
 .../camel/builder/endpoint/dsl/OpenAIEndpointBuilderFactory.java      | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/openai.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/openai.json
index e9366504a874..1af1912b6cfd 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/openai.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/openai.json
@@ -72,7 +72,7 @@
     "developerMessage": { "index": 7, "kind": "parameter", "displayName": 
"Developer Message", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration", 
"configurationField": "configuration", "description": "Developer message to 
prepend before user messages" },
     "dimensions": { "index": 8, "kind": "parameter", "displayName": 
"Dimensions", "group": "producer", "label": "", "required": false, "type": 
"integer", "javaType": "java.lang.Integer", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration", 
"configurationField": "configuration", "description": "Number of dimensions for 
the embedding output. Only supported by text-embedding-3 models.  [...]
     "embeddingModel": { "index": 9, "kind": "parameter", "displayName": 
"Embedding Model", "group": "producer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration", 
"configurationField": "configuration", "description": "The model to use for 
embeddings" },
-    "encodingFormat": { "index": 10, "kind": "parameter", "displayName": 
"Encoding Format", "group": "producer", "label": "", "required": false, "type": 
"enum", "javaType": "java.lang.String", "enum": [ "float", "base64" ], 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "defaultValue": "base64", "configurationClass": 
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField": 
"configuration", "description": "The format for embedding ou [...]
+    "encodingFormat": { "index": 10, "kind": "parameter", "displayName": 
"Encoding Format", "group": "producer", "label": "", "required": false, "type": 
"enum", "javaType": "java.lang.String", "enum": [ "float", "base64" ], 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "defaultValue": "float", "configurationClass": 
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField": 
"configuration", "description": "The format for embedding out [...]
     "jsonSchema": { "index": 11, "kind": "parameter", "displayName": "Json 
Schema", "group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "supportFileReference": true, 
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration", 
"configurationField": "configuration", "description": "JSON schema for 
structured output validation" },
     "maxTokens": { "index": 12, "kind": "parameter", "displayName": "Max 
Tokens", "group": "producer", "label": "", "required": false, "type": 
"integer", "javaType": "java.lang.Integer", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration", 
"configurationField": "configuration", "description": "Maximum number of tokens 
to generate" },
     "maxToolIterations": { "index": 13, "kind": "parameter", "displayName": 
"Max Tool Iterations", "group": "producer", "label": "", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "defaultValue": 50, 
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration", 
"configurationField": "configuration", "description": "Maximum number of tool 
call loop iterations to prevent infinite loops" },
diff --git 
a/components/camel-ai/camel-openai/src/generated/resources/META-INF/org/apache/camel/component/openai/openai.json
 
b/components/camel-ai/camel-openai/src/generated/resources/META-INF/org/apache/camel/component/openai/openai.json
index e9366504a874..1af1912b6cfd 100644
--- 
a/components/camel-ai/camel-openai/src/generated/resources/META-INF/org/apache/camel/component/openai/openai.json
+++ 
b/components/camel-ai/camel-openai/src/generated/resources/META-INF/org/apache/camel/component/openai/openai.json
@@ -72,7 +72,7 @@
     "developerMessage": { "index": 7, "kind": "parameter", "displayName": 
"Developer Message", "group": "producer", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration", 
"configurationField": "configuration", "description": "Developer message to 
prepend before user messages" },
     "dimensions": { "index": 8, "kind": "parameter", "displayName": 
"Dimensions", "group": "producer", "label": "", "required": false, "type": 
"integer", "javaType": "java.lang.Integer", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration", 
"configurationField": "configuration", "description": "Number of dimensions for 
the embedding output. Only supported by text-embedding-3 models.  [...]
     "embeddingModel": { "index": 9, "kind": "parameter", "displayName": 
"Embedding Model", "group": "producer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration", 
"configurationField": "configuration", "description": "The model to use for 
embeddings" },
-    "encodingFormat": { "index": 10, "kind": "parameter", "displayName": 
"Encoding Format", "group": "producer", "label": "", "required": false, "type": 
"enum", "javaType": "java.lang.String", "enum": [ "float", "base64" ], 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "defaultValue": "base64", "configurationClass": 
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField": 
"configuration", "description": "The format for embedding ou [...]
+    "encodingFormat": { "index": 10, "kind": "parameter", "displayName": 
"Encoding Format", "group": "producer", "label": "", "required": false, "type": 
"enum", "javaType": "java.lang.String", "enum": [ "float", "base64" ], 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "defaultValue": "float", "configurationClass": 
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField": 
"configuration", "description": "The format for embedding out [...]
     "jsonSchema": { "index": 11, "kind": "parameter", "displayName": "Json 
Schema", "group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "supportFileReference": true, 
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration", 
"configurationField": "configuration", "description": "JSON schema for 
structured output validation" },
     "maxTokens": { "index": 12, "kind": "parameter", "displayName": "Max 
Tokens", "group": "producer", "label": "", "required": false, "type": 
"integer", "javaType": "java.lang.Integer", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration", 
"configurationField": "configuration", "description": "Maximum number of tokens 
to generate" },
     "maxToolIterations": { "index": 13, "kind": "parameter", "displayName": 
"Max Tool Iterations", "group": "producer", "label": "", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "defaultValue": 50, 
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration", 
"configurationField": "configuration", "description": "Maximum number of tool 
call loop iterations to prevent infinite loops" },
diff --git 
a/components/camel-ai/camel-openai/src/main/java/org/apache/camel/component/openai/OpenAIConfiguration.java
 
b/components/camel-ai/camel-openai/src/main/java/org/apache/camel/component/openai/OpenAIConfiguration.java
index 6cb9bea4943c..df6f4b5e4650 100644
--- 
a/components/camel-ai/camel-openai/src/main/java/org/apache/camel/component/openai/OpenAIConfiguration.java
+++ 
b/components/camel-ai/camel-openai/src/main/java/org/apache/camel/component/openai/OpenAIConfiguration.java
@@ -148,9 +148,9 @@ public class OpenAIConfiguration implements Cloneable {
                             "Reducing dimensions can lower costs and improve 
performance without significant quality loss.")
     private Integer dimensions;
 
-    @UriParam(enums = "float,base64", defaultValue = "base64")
+    @UriParam(enums = "float,base64", defaultValue = "float")
     @Metadata(description = "The format for embedding output: 'float' for list 
of floats, 'base64' for compressed format")
-    private String encodingFormat = "base64";
+    private String encodingFormat = "float";
 
     public String getApiKey() {
         return apiKey;
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/OpenAIEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/OpenAIEndpointBuilderFactory.java
index 497eff805214..56c7575f4e8c 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/OpenAIEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/OpenAIEndpointBuilderFactory.java
@@ -262,7 +262,7 @@ public interface OpenAIEndpointBuilderFactory {
          * 
          * The option is a: <code>java.lang.String</code> type.
          * 
-         * Default: base64
+         * Default: float
          * Group: producer
          * 
          * @param encodingFormat the value to set

Reply via email to