Skip to content

Commit a64a3c1

Browse files
committed
Generate new model classes for float[]
1 parent 2b4e668 commit a64a3c1

13 files changed

+94
-92
lines changed

orchestration/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,7 @@
203203
<useOneOfInterfaces>true</useOneOfInterfaces>
204204
<removeEnumValuePrefix>true</removeEnumValuePrefix>
205205
<useOneOfCreators>true</useOneOfCreators>
206+
<useFloatArrays>true</useFloatArrays>
206207
</additionalProperties>
207208
</configuration>
208209
</execution>

orchestration/src/main/java/com/sap/ai/sdk/orchestration/AssistantMessage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ public ChatMessage createChatMessage() {
105105
.map(item -> (TextItem) item)
106106
.map(item -> TextContent.create().type(TextContent.TypeEnum.TEXT).text(item.text()))
107107
.toList();
108-
text = ChatMessageContent.create(texts);
108+
text = ChatMessageContent.createListOfTextContents(texts);
109109
}
110110
return assistantChatMessage.content(text);
111111
}

orchestration/src/main/java/com/sap/ai/sdk/orchestration/MessageContent.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ static MessageContent fromChatMessageContent(final ChatMessageContent chatMessag
2020
if (chatMessageContent instanceof ChatMessageContent.InnerString innerString) {
2121
return new MessageContent(List.of(new TextItem(innerString.value())));
2222
} else if (chatMessageContent
23-
instanceof ChatMessageContent.InnerTextContents innerTextContents) {
23+
instanceof ChatMessageContent.ListOfTextContents innerTextContents) {
2424
val texts =
2525
innerTextContents.values().stream()
2626
.map(textContent -> ((ContentItem) new TextItem(textContent.getText())))
@@ -37,7 +37,7 @@ static MessageContent fromUserChatMessageContent(
3737
return new MessageContent(List.of(new TextItem(innerString.value())));
3838
} else if (chatMessageContent
3939
instanceof
40-
final UserChatMessageContent.InnerUserChatMessageContentItems innerContentItems) {
40+
final UserChatMessageContent.ListOfUserChatMessageContentItems innerContentItems) {
4141
val items = new ArrayList<ContentItem>();
4242
for (val value : innerContentItems.values()) {
4343
if (value.getType().equals(UserChatMessageContentItem.TypeEnum.TEXT)) {

orchestration/src/main/java/com/sap/ai/sdk/orchestration/OrchestrationEmbeddingRequest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,9 @@ public OrchestrationEmbeddingRequest asQuery() {
140140
EmbeddingsPostRequest createEmbeddingsPostRequest() {
141141

142142
final var input =
143-
EmbeddingsInput.create().text(EmbeddingsInputText.create(inputs)).type(inputType);
143+
EmbeddingsInput.create()
144+
.text(EmbeddingsInputText.createListOfStrings(inputs))
145+
.type(inputType);
144146
final var embeddingsModelConfig =
145147
EmbeddingsModelConfig.create().model(model.createEmbeddingsModelDetails());
146148
final var modules =

orchestration/src/main/java/com/sap/ai/sdk/orchestration/OrchestrationEmbeddingResponse.java

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
import static lombok.AccessLevel.PACKAGE;
44

55
import com.google.common.annotations.Beta;
6-
import com.sap.ai.sdk.orchestration.model.Embedding;
6+
import com.sap.ai.sdk.orchestration.model.Embedding.ArrayOfFloats;
7+
import com.sap.ai.sdk.orchestration.model.EmbeddingResult;
78
import com.sap.ai.sdk.orchestration.model.EmbeddingsPostResponse;
8-
import java.util.ArrayList;
99
import java.util.List;
1010
import javax.annotation.Nonnull;
1111
import lombok.AllArgsConstructor;
@@ -33,16 +33,11 @@ public class OrchestrationEmbeddingResponse {
3333
*/
3434
@Nonnull
3535
public List<float[]> getEmbeddingVectors() {
36-
final var embeddings = new ArrayList<float[]>();
37-
for (final var container : originalResponse.getFinalResult().getData()) {
38-
final var bigDecimals = (Embedding.InnerBigDecimals) container.getEmbedding();
39-
final var values = bigDecimals.values();
40-
final float[] arr = new float[values.size()];
41-
for (int i = 0; i < values.size(); i++) {
42-
arr[i] = values.get(i).floatValue();
43-
}
44-
embeddings.add(arr);
45-
}
46-
return embeddings;
36+
return originalResponse.getFinalResult().getData().stream()
37+
.map(EmbeddingResult::getEmbedding)
38+
.filter(ArrayOfFloats.class::isInstance)
39+
.map(ArrayOfFloats.class::cast)
40+
.map(ArrayOfFloats::values)
41+
.toList();
4742
}
4843
}

orchestration/src/main/java/com/sap/ai/sdk/orchestration/SystemMessage.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ public ChatMessage createChatMessage() {
7070
.map(item -> (TextItem) item)
7171
.map(item -> TextContent.create().type(TextContent.TypeEnum.TEXT).text(item.text()))
7272
.toList();
73-
return SystemChatMessage.create().role(SYSTEM).content(ChatMessageContent.create(texts));
73+
return SystemChatMessage.create()
74+
.role(SYSTEM)
75+
.content(ChatMessageContent.createListOfTextContents(texts));
7476
}
7577
}

orchestration/src/main/java/com/sap/ai/sdk/orchestration/UserMessage.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ public ChatMessage createChatMessage() {
107107
contentList.add(UserChatMessageContentItem.create().type(IMAGE_URL).imageUrl(img));
108108
}
109109
}
110-
return UserChatMessage.create().content(UserChatMessageContent.create(contentList)).role(USER);
110+
return UserChatMessage.create()
111+
.content(UserChatMessageContent.createListOfUserChatMessageContentItems(contentList))
112+
.role(USER);
111113
}
112114
}

orchestration/src/main/java/com/sap/ai/sdk/orchestration/model/ChatMessageContent.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,36 +16,38 @@
1616

1717
/** ChatMessageContent */
1818
public interface ChatMessageContent {
19-
/** Helper class to create a String that implements {@link ChatMessageContent}. */
20-
record InnerString(@com.fasterxml.jackson.annotation.JsonValue @Nonnull String value)
19+
/**
20+
* Helper class to create {@code List<TextContent> } that implements {@link ChatMessageContent}.
21+
*/
22+
record ListOfTextContents(
23+
@com.fasterxml.jackson.annotation.JsonValue @Nonnull List<TextContent> values)
2124
implements ChatMessageContent {}
2225

2326
/**
24-
* Creator to enable deserialization of a String.
27+
* Creator to enable deserialization of {@code List<TextContent> }.
2528
*
2629
* @param val the value to use
27-
* @return a new instance of {@link InnerString}.
30+
* @return a new instance of {@link ListOfTextContents}.
2831
*/
2932
@com.fasterxml.jackson.annotation.JsonCreator
3033
@Nonnull
31-
static InnerString create(@Nonnull final String val) {
32-
return new InnerString(val);
34+
static ListOfTextContents createListOfTextContents(@Nonnull final List<TextContent> val) {
35+
return new ListOfTextContents(val);
3336
}
3437

35-
/** Helper class to create a list of TextContent that implements {@link ChatMessageContent}. */
36-
record InnerTextContents(
37-
@com.fasterxml.jackson.annotation.JsonValue @Nonnull List<TextContent> values)
38+
/** Helper class to create {@code String } that implements {@link ChatMessageContent}. */
39+
record InnerString(@com.fasterxml.jackson.annotation.JsonValue @Nonnull String value)
3840
implements ChatMessageContent {}
3941

4042
/**
41-
* Creator to enable deserialization of a list of TextContent.
43+
* Creator to enable deserialization of {@code String }.
4244
*
4345
* @param val the value to use
44-
* @return a new instance of {@link InnerTextContents}.
46+
* @return a new instance of {@link InnerString}.
4547
*/
4648
@com.fasterxml.jackson.annotation.JsonCreator
4749
@Nonnull
48-
static InnerTextContents create(@Nonnull final List<TextContent> val) {
49-
return new InnerTextContents(val);
50+
static InnerString create(@Nonnull final String val) {
51+
return new InnerString(val);
5052
}
5153
}

orchestration/src/main/java/com/sap/ai/sdk/orchestration/model/Embedding.java

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,42 +11,39 @@
1111

1212
package com.sap.ai.sdk.orchestration.model;
1313

14-
import java.math.BigDecimal;
15-
import java.util.List;
1614
import javax.annotation.Nonnull;
1715

1816
/** Embedding */
1917
public interface Embedding {
20-
/** Helper class to create a String that implements {@link Embedding}. */
21-
record InnerString(@com.fasterxml.jackson.annotation.JsonValue @Nonnull String value)
18+
/** Helper class to create {@code float[] } that implements {@link Embedding}. */
19+
record ArrayOfFloats(@com.fasterxml.jackson.annotation.JsonValue @Nonnull float[] values)
2220
implements Embedding {}
2321

2422
/**
25-
* Creator to enable deserialization of a String.
23+
* Creator to enable deserialization of {@code float[] }.
2624
*
2725
* @param val the value to use
28-
* @return a new instance of {@link InnerString}.
26+
* @return a new instance of {@link ArrayOfFloats}.
2927
*/
3028
@com.fasterxml.jackson.annotation.JsonCreator
3129
@Nonnull
32-
static InnerString create(@Nonnull final String val) {
33-
return new InnerString(val);
30+
static ArrayOfFloats createArrayOfFloats(@Nonnull final float[] val) {
31+
return new ArrayOfFloats(val);
3432
}
3533

36-
/** Helper class to create a list of BigDecimal that implements {@link Embedding}. */
37-
record InnerBigDecimals(
38-
@com.fasterxml.jackson.annotation.JsonValue @Nonnull List<BigDecimal> values)
34+
/** Helper class to create {@code String } that implements {@link Embedding}. */
35+
record InnerString(@com.fasterxml.jackson.annotation.JsonValue @Nonnull String value)
3936
implements Embedding {}
4037

4138
/**
42-
* Creator to enable deserialization of a list of BigDecimal.
39+
* Creator to enable deserialization of {@code String }.
4340
*
4441
* @param val the value to use
45-
* @return a new instance of {@link InnerBigDecimals}.
42+
* @return a new instance of {@link InnerString}.
4643
*/
4744
@com.fasterxml.jackson.annotation.JsonCreator
4845
@Nonnull
49-
static InnerBigDecimals create(@Nonnull final List<BigDecimal> val) {
50-
return new InnerBigDecimals(val);
46+
static InnerString create(@Nonnull final String val) {
47+
return new InnerString(val);
5148
}
5249
}

orchestration/src/main/java/com/sap/ai/sdk/orchestration/model/EmbeddingsInputText.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,35 +16,35 @@
1616

1717
/** Text input for which embeddings need to be generated */
1818
public interface EmbeddingsInputText {
19-
/** Helper class to create a String that implements {@link EmbeddingsInputText}. */
20-
record InnerString(@com.fasterxml.jackson.annotation.JsonValue @Nonnull String value)
19+
/** Helper class to create {@code List<String> } that implements {@link EmbeddingsInputText}. */
20+
record ListOfStrings(@com.fasterxml.jackson.annotation.JsonValue @Nonnull List<String> values)
2121
implements EmbeddingsInputText {}
2222

2323
/**
24-
* Creator to enable deserialization of a String.
24+
* Creator to enable deserialization of {@code List<String> }.
2525
*
2626
* @param val the value to use
27-
* @return a new instance of {@link InnerString}.
27+
* @return a new instance of {@link ListOfStrings}.
2828
*/
2929
@com.fasterxml.jackson.annotation.JsonCreator
3030
@Nonnull
31-
static InnerString create(@Nonnull final String val) {
32-
return new InnerString(val);
31+
static ListOfStrings createListOfStrings(@Nonnull final List<String> val) {
32+
return new ListOfStrings(val);
3333
}
3434

35-
/** Helper class to create a list of String that implements {@link EmbeddingsInputText}. */
36-
record InnerStrings(@com.fasterxml.jackson.annotation.JsonValue @Nonnull List<String> values)
35+
/** Helper class to create {@code String } that implements {@link EmbeddingsInputText}. */
36+
record InnerString(@com.fasterxml.jackson.annotation.JsonValue @Nonnull String value)
3737
implements EmbeddingsInputText {}
3838

3939
/**
40-
* Creator to enable deserialization of a list of String.
40+
* Creator to enable deserialization of {@code String }.
4141
*
4242
* @param val the value to use
43-
* @return a new instance of {@link InnerStrings}.
43+
* @return a new instance of {@link InnerString}.
4444
*/
4545
@com.fasterxml.jackson.annotation.JsonCreator
4646
@Nonnull
47-
static InnerStrings create(@Nonnull final List<String> val) {
48-
return new InnerStrings(val);
47+
static InnerString create(@Nonnull final String val) {
48+
return new InnerString(val);
4949
}
5050
}

0 commit comments

Comments
 (0)