Skip to content

Commit fb2e716

Browse files
rpanackalnewtork
andauthored
chore: [OpenAI] Embedding type change to float[] (#353)
* Changing from List<BigDecimal> to float[] for embeddings * Changing from List<BigDecimal> to float[] for embeddings * Update EmbeddingsCreate200ResponseDataInner.java * Change embedding type in convenience --------- Co-authored-by: Roshin Rajan Panackal <[email protected]> Co-authored-by: Alexander Dümont <[email protected]>
1 parent 6948a05 commit fb2e716

File tree

3 files changed

+9
-38
lines changed

3 files changed

+9
-38
lines changed

foundation-models/openai/src/main/java/com/sap/ai/sdk/foundationmodels/openai/OpenAiEmbeddingResponse.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,8 @@ public class OpenAiEmbeddingResponse {
3838
public List<float[]> getEmbeddingVectors() {
3939
final var embeddings = new ArrayList<float[]>();
4040
for (final var container : originalResponse.getData()) {
41+
final var embeddingFloats = container.getEmbedding();
4142

42-
final var embeddingDecimals = container.getEmbedding();
43-
final var embeddingFloats = new float[embeddingDecimals.size()];
44-
45-
for (int i = 0; i < embeddingDecimals.size(); i++) {
46-
embeddingFloats[i] = embeddingDecimals.get(i).floatValue();
47-
}
4843
embeddings.add(embeddingFloats);
4944
}
5045
return embeddings;

foundation-models/openai/src/main/java/com/sap/ai/sdk/foundationmodels/openai/generated/model/EmbeddingsCreate200ResponseDataInner.java

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,8 @@
2020
import com.fasterxml.jackson.annotation.JsonAnySetter;
2121
import com.fasterxml.jackson.annotation.JsonIgnore;
2222
import com.fasterxml.jackson.annotation.JsonProperty;
23-
import java.math.BigDecimal;
24-
import java.util.ArrayList;
23+
import java.util.Arrays;
2524
import java.util.LinkedHashMap;
26-
import java.util.List;
2725
import java.util.Map;
2826
import java.util.NoSuchElementException;
2927
import java.util.Objects;
@@ -44,7 +42,7 @@ public class EmbeddingsCreate200ResponseDataInner
4442
private String _object;
4543

4644
@JsonProperty("embedding")
47-
private List<BigDecimal> embedding = new ArrayList<>(); //
45+
private float[] embedding;
4846

4947
@JsonAnySetter @JsonAnyGetter
5048
private final Map<String, Object> cloudSdkCustomFields = new LinkedHashMap<>();
@@ -121,34 +119,18 @@ public void setObject(@Nonnull final String _object) {
121119
* @return The same instance of this {@link EmbeddingsCreate200ResponseDataInner} class
122120
*/
123121
@Nonnull
124-
public EmbeddingsCreate200ResponseDataInner embedding(@Nonnull final List<BigDecimal> embedding) {
122+
public EmbeddingsCreate200ResponseDataInner embedding(@Nonnull final float[] embedding) {
125123
this.embedding = embedding;
126124
return this;
127125
}
128126

129-
/**
130-
* Add one embedding instance to this {@link EmbeddingsCreate200ResponseDataInner}.
131-
*
132-
* @param embeddingItem The embedding that should be added
133-
* @return The same instance of type {@link EmbeddingsCreate200ResponseDataInner}
134-
*/
135-
@Nonnull
136-
public EmbeddingsCreate200ResponseDataInner addEmbeddingItem(
137-
@Nonnull final BigDecimal embeddingItem) {
138-
if (this.embedding == null) {
139-
this.embedding = new ArrayList<>();
140-
}
141-
this.embedding.add(embeddingItem);
142-
return this;
143-
}
144-
145127
/**
146128
* Get embedding
147129
*
148130
* @return embedding The embedding of this {@link EmbeddingsCreate200ResponseDataInner} instance.
149131
*/
150132
@Nonnull
151-
public List<BigDecimal> getEmbedding() {
133+
public float[] getEmbedding() {
152134
return embedding;
153135
}
154136

@@ -157,7 +139,7 @@ public List<BigDecimal> getEmbedding() {
157139
*
158140
* @param embedding The embedding of this {@link EmbeddingsCreate200ResponseDataInner}
159141
*/
160-
public void setEmbedding(@Nonnull final List<BigDecimal> embedding) {
142+
public void setEmbedding(@Nonnull final float[] embedding) {
161143
this.embedding = embedding;
162144
}
163145

@@ -217,12 +199,12 @@ public boolean equals(@Nullable final Object o) {
217199
this.cloudSdkCustomFields, embeddingsCreate200ResponseDataInner.cloudSdkCustomFields)
218200
&& Objects.equals(this.index, embeddingsCreate200ResponseDataInner.index)
219201
&& Objects.equals(this._object, embeddingsCreate200ResponseDataInner._object)
220-
&& Objects.equals(this.embedding, embeddingsCreate200ResponseDataInner.embedding);
202+
&& Arrays.equals(this.embedding, embeddingsCreate200ResponseDataInner.embedding);
221203
}
222204

223205
@Override
224206
public int hashCode() {
225-
return Objects.hash(index, _object, embedding, cloudSdkCustomFields);
207+
return Objects.hash(index, _object, Arrays.hashCode(embedding), cloudSdkCustomFields);
226208
}
227209

228210
@Override

foundation-models/openai/src/test/java/com/sap/ai/sdk/foundationmodels/openai/OpenAiClientGeneratedTest.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import com.sap.ai.sdk.foundationmodels.openai.generated.model.PromptFilterResult;
3535
import io.vavr.control.Try;
3636
import java.io.IOException;
37-
import java.math.BigDecimal;
3837
import java.util.List;
3938
import java.util.Map;
4039
import java.util.stream.Stream;
@@ -261,12 +260,7 @@ void embedding() {
261260
assertThat(embeddingData.getEmbedding())
262261
.isNotNull()
263262
.isNotEmpty()
264-
.containsExactly(
265-
new BigDecimal("0.0"),
266-
new BigDecimal("3.4028235E+38"),
267-
new BigDecimal("1.4E-45"),
268-
new BigDecimal("1.23"),
269-
new BigDecimal("-4.56"));
263+
.isEqualTo(new float[] {0.0f, 3.4028235E+38f, 1.4E-45f, 1.23f, -4.56f});
270264

271265
verify(
272266
postRequestedFor(urlPathEqualTo("/embeddings"))

0 commit comments

Comments
 (0)