diff --git a/foundation-models/openai/src/main/java/com/sap/ai/sdk/foundationmodels/openai/OpenAiEmbeddingResponse.java b/foundation-models/openai/src/main/java/com/sap/ai/sdk/foundationmodels/openai/OpenAiEmbeddingResponse.java index 3ab02d476..82bba0b45 100644 --- a/foundation-models/openai/src/main/java/com/sap/ai/sdk/foundationmodels/openai/OpenAiEmbeddingResponse.java +++ b/foundation-models/openai/src/main/java/com/sap/ai/sdk/foundationmodels/openai/OpenAiEmbeddingResponse.java @@ -38,13 +38,8 @@ public class OpenAiEmbeddingResponse { public List getEmbeddingVectors() { final var embeddings = new ArrayList(); for (final var container : originalResponse.getData()) { + final var embeddingFloats = container.getEmbedding(); - final var embeddingDecimals = container.getEmbedding(); - final var embeddingFloats = new float[embeddingDecimals.size()]; - - for (int i = 0; i < embeddingDecimals.size(); i++) { - embeddingFloats[i] = embeddingDecimals.get(i).floatValue(); - } embeddings.add(embeddingFloats); } return embeddings; diff --git a/foundation-models/openai/src/main/java/com/sap/ai/sdk/foundationmodels/openai/generated/model/EmbeddingsCreate200ResponseDataInner.java b/foundation-models/openai/src/main/java/com/sap/ai/sdk/foundationmodels/openai/generated/model/EmbeddingsCreate200ResponseDataInner.java index 72a469584..049ed7a17 100644 --- a/foundation-models/openai/src/main/java/com/sap/ai/sdk/foundationmodels/openai/generated/model/EmbeddingsCreate200ResponseDataInner.java +++ b/foundation-models/openai/src/main/java/com/sap/ai/sdk/foundationmodels/openai/generated/model/EmbeddingsCreate200ResponseDataInner.java @@ -20,10 +20,8 @@ import com.fasterxml.jackson.annotation.JsonAnySetter; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; -import java.math.BigDecimal; -import java.util.ArrayList; +import java.util.Arrays; import java.util.LinkedHashMap; -import java.util.List; import java.util.Map; import java.util.NoSuchElementException; import java.util.Objects; @@ -44,7 +42,7 @@ public class EmbeddingsCreate200ResponseDataInner private String _object; @JsonProperty("embedding") - private List embedding = new ArrayList<>(); // + private float[] embedding; @JsonAnySetter @JsonAnyGetter private final Map cloudSdkCustomFields = new LinkedHashMap<>(); @@ -121,34 +119,18 @@ public void setObject(@Nonnull final String _object) { * @return The same instance of this {@link EmbeddingsCreate200ResponseDataInner} class */ @Nonnull - public EmbeddingsCreate200ResponseDataInner embedding(@Nonnull final List embedding) { + public EmbeddingsCreate200ResponseDataInner embedding(@Nonnull final float[] embedding) { this.embedding = embedding; return this; } - /** - * Add one embedding instance to this {@link EmbeddingsCreate200ResponseDataInner}. - * - * @param embeddingItem The embedding that should be added - * @return The same instance of type {@link EmbeddingsCreate200ResponseDataInner} - */ - @Nonnull - public EmbeddingsCreate200ResponseDataInner addEmbeddingItem( - @Nonnull final BigDecimal embeddingItem) { - if (this.embedding == null) { - this.embedding = new ArrayList<>(); - } - this.embedding.add(embeddingItem); - return this; - } - /** * Get embedding * * @return embedding The embedding of this {@link EmbeddingsCreate200ResponseDataInner} instance. */ @Nonnull - public List getEmbedding() { + public float[] getEmbedding() { return embedding; } @@ -157,7 +139,7 @@ public List getEmbedding() { * * @param embedding The embedding of this {@link EmbeddingsCreate200ResponseDataInner} */ - public void setEmbedding(@Nonnull final List embedding) { + public void setEmbedding(@Nonnull final float[] embedding) { this.embedding = embedding; } @@ -217,12 +199,12 @@ public boolean equals(@Nullable final Object o) { this.cloudSdkCustomFields, embeddingsCreate200ResponseDataInner.cloudSdkCustomFields) && Objects.equals(this.index, embeddingsCreate200ResponseDataInner.index) && Objects.equals(this._object, embeddingsCreate200ResponseDataInner._object) - && Objects.equals(this.embedding, embeddingsCreate200ResponseDataInner.embedding); + && Arrays.equals(this.embedding, embeddingsCreate200ResponseDataInner.embedding); } @Override public int hashCode() { - return Objects.hash(index, _object, embedding, cloudSdkCustomFields); + return Objects.hash(index, _object, Arrays.hashCode(embedding), cloudSdkCustomFields); } @Override diff --git a/foundation-models/openai/src/test/java/com/sap/ai/sdk/foundationmodels/openai/OpenAiClientGeneratedTest.java b/foundation-models/openai/src/test/java/com/sap/ai/sdk/foundationmodels/openai/OpenAiClientGeneratedTest.java index 0309bf2da..51acb02d4 100644 --- a/foundation-models/openai/src/test/java/com/sap/ai/sdk/foundationmodels/openai/OpenAiClientGeneratedTest.java +++ b/foundation-models/openai/src/test/java/com/sap/ai/sdk/foundationmodels/openai/OpenAiClientGeneratedTest.java @@ -34,7 +34,6 @@ import com.sap.ai.sdk.foundationmodels.openai.generated.model.PromptFilterResult; import io.vavr.control.Try; import java.io.IOException; -import java.math.BigDecimal; import java.util.List; import java.util.Map; import java.util.stream.Stream; @@ -261,12 +260,7 @@ void embedding() { assertThat(embeddingData.getEmbedding()) .isNotNull() .isNotEmpty() - .containsExactly( - new BigDecimal("0.0"), - new BigDecimal("3.4028235E+38"), - new BigDecimal("1.4E-45"), - new BigDecimal("1.23"), - new BigDecimal("-4.56")); + .isEqualTo(new float[] {0.0f, 3.4028235E+38f, 1.4E-45f, 1.23f, -4.56f}); verify( postRequestedFor(urlPathEqualTo("/embeddings"))