Skip to content

Commit e438330

Browse files
committed
Simplify code and adapt jacoco coverage
1 parent d91ca3b commit e438330

File tree

3 files changed

+38
-43
lines changed

3 files changed

+38
-43
lines changed

orchestration/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@
3131
</developers>
3232
<properties>
3333
<project.rootdir>${project.basedir}/../</project.rootdir>
34-
<coverage.complexity>81%</coverage.complexity>
34+
<coverage.complexity>80%</coverage.complexity>
3535
<coverage.line>93%</coverage.line>
3636
<coverage.instruction>93%</coverage.instruction>
37-
<coverage.branch>70%</coverage.branch>
37+
<coverage.branch>71%</coverage.branch>
3838
<coverage.method>95%</coverage.method>
3939
<coverage.class>100%</coverage.class>
4040
</properties>

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

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55
import com.sap.ai.sdk.orchestration.model.ImageContent;
66
import com.sap.ai.sdk.orchestration.model.ImageContentImageUrl;
77
import com.sap.ai.sdk.orchestration.model.MultiChatMessage;
8+
import com.sap.ai.sdk.orchestration.model.MultiChatMessageContent;
89
import com.sap.ai.sdk.orchestration.model.SingleChatMessage;
910
import com.sap.ai.sdk.orchestration.model.TextContent;
11+
import java.util.LinkedList;
1012
import java.util.List;
1113
import javax.annotation.Nonnull;
1214

@@ -67,28 +69,18 @@ default ChatMessage createChatMessage() {
6769
final var itemList = this.content().contentItemList();
6870
if (itemList.size() == 1 && itemList.get(0) instanceof TextItem textItem) {
6971
return SingleChatMessage.create().role(role()).content(textItem.text());
70-
} else {
71-
return MultiChatMessage.create()
72-
.role(role())
73-
.content(
74-
itemList.stream()
75-
.map(
76-
contentItem -> {
77-
if (contentItem instanceof ImageItem imageItem) {
78-
return ImageContent.create()
79-
.type(ImageContent.TypeEnum.IMAGE_URL)
80-
.imageUrl(
81-
ImageContentImageUrl.create()
82-
.url(imageItem.imageUrl())
83-
.detail(imageItem.detailLevel().toString()));
84-
} else {
85-
return TextContent.create()
86-
.type(TextContent.TypeEnum.TEXT)
87-
.text(((TextItem) contentItem).text());
88-
}
89-
})
90-
.toList());
9172
}
73+
final var contentList = new LinkedList<MultiChatMessageContent>();
74+
for (final ContentItem item : itemList) {
75+
if (item instanceof TextItem textItem) {
76+
contentList.add(TextContent.create().type(TextContent.TypeEnum.TEXT).text(textItem.text()));
77+
} else if (item instanceof ImageItem imageItem) {
78+
final var detail = imageItem.detailLevel().toString();
79+
final var img = ImageContentImageUrl.create().url(imageItem.imageUrl()).detail(detail);
80+
contentList.add(ImageContent.create().type(ImageContent.TypeEnum.IMAGE_URL).imageUrl(img));
81+
}
82+
}
83+
return MultiChatMessage.create().role(role()).content(contentList);
9284
}
9385

9486
/**

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

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -58,38 +58,41 @@ public TokenUsage getTokenUsage() {
5858
@Nonnull
5959
public List<Message> getAllMessages() throws IllegalArgumentException {
6060
final var messages = new ArrayList<Message>();
61-
6261
for (final ChatMessage chatMessage : originalResponse.getModuleResults().getTemplating()) {
6362
if (chatMessage instanceof SingleChatMessage simpleMsg) {
64-
final var message =
65-
switch (simpleMsg.getRole()) {
66-
case "user" -> Message.user(simpleMsg.getContent());
67-
case "assistant" -> Message.assistant(simpleMsg.getContent());
68-
case "system" -> Message.system(simpleMsg.getContent());
69-
default -> throw new IllegalStateException("Unexpected role: " + simpleMsg.getRole());
70-
};
71-
messages.add(message);
63+
messages.add(chatMessageIntoMessage(simpleMsg));
7264
} else if (chatMessage instanceof MultiChatMessage mCMessage) {
73-
messages.add(
74-
switch (mCMessage.getRole()) {
75-
case "user" ->
76-
new UserMessage(MessageContent.fromMCMContentList(mCMessage.getContent()));
77-
case "system" ->
78-
new SystemMessage(MessageContent.fromMCMContentList(mCMessage.getContent()));
79-
default ->
80-
throw new IllegalStateException(
81-
"Unexpected role with complex message: " + mCMessage.getRole());
82-
});
65+
messages.add(chatMessageIntoMessage(mCMessage));
8366
} else {
8467
throw new IllegalArgumentException(
8568
"Messages of type " + chatMessage.getClass() + " are not supported by convenience API");
8669
}
8770
}
88-
8971
messages.add(Message.assistant(getChoice().getMessage().getContent()));
9072
return messages;
9173
}
9274

75+
@Nonnull
76+
private Message chatMessageIntoMessage(@Nonnull final SingleChatMessage simpleMsg) {
77+
return switch (simpleMsg.getRole()) {
78+
case "user" -> Message.user(simpleMsg.getContent());
79+
case "assistant" -> Message.assistant(simpleMsg.getContent());
80+
case "system" -> Message.system(simpleMsg.getContent());
81+
default -> throw new IllegalStateException("Unexpected role: " + simpleMsg.getRole());
82+
};
83+
}
84+
85+
@Nonnull
86+
private Message chatMessageIntoMessage(@Nonnull final MultiChatMessage mCMessage) {
87+
return switch (mCMessage.getRole()) {
88+
case "user" -> new UserMessage(MessageContent.fromMCMContentList(mCMessage.getContent()));
89+
case "system" -> new SystemMessage(MessageContent.fromMCMContentList(mCMessage.getContent()));
90+
default ->
91+
throw new IllegalStateException(
92+
"Unexpected role with complex message: " + mCMessage.getRole());
93+
};
94+
}
95+
9396
/**
9497
* Get the LLM response. Useful for accessing the finish reason or further data like logprobs.
9598
*

0 commit comments

Comments
 (0)