Skip to content

Commit 4793e69

Browse files
committed
fix things
Signed-off-by: sirivarma <[email protected]>
1 parent 42779c7 commit 4793e69

File tree

1 file changed

+118
-63
lines changed

1 file changed

+118
-63
lines changed

sdk/src/main/java/io/dapr/client/DaprClientImpl.java

Lines changed: 118 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1648,8 +1648,26 @@ private void validateConversationRequest(ConversationRequest conversationRequest
16481648
@Override
16491649
public Mono<ConversationResponseAlpha2> converseAlpha2(ConversationRequestAlpha2 conversationRequestAlpha2) {
16501650
try {
1651-
validateConversationRequestAlpha2(conversationRequestAlpha2);
1652-
DaprProtos.ConversationRequestAlpha2 protoRequest = buildConversationRequestProto(conversationRequestAlpha2);
1651+
if ((conversationRequestAlpha2.getName() == null) || (conversationRequestAlpha2.getName().trim().isEmpty())) {
1652+
throw new IllegalArgumentException("LLM name cannot be null or empty.");
1653+
}
1654+
1655+
DaprProtos.ConversationRequestAlpha2.Builder builder = DaprProtos.ConversationRequestAlpha2
1656+
.newBuilder()
1657+
.setTemperature(conversationRequestAlpha2.getTemperature())
1658+
.setScrubPii(conversationRequestAlpha2.isScrubPii())
1659+
.setName(conversationRequestAlpha2.getName());
1660+
1661+
if (conversationRequestAlpha2.getContextId() != null) {
1662+
builder.setContextId(conversationRequestAlpha2.getContextId());
1663+
}
1664+
1665+
if (conversationRequestAlpha2.getToolChoice() != null) {
1666+
builder.setToolChoice(conversationRequestAlpha2.getToolChoice());
1667+
}
1668+
1669+
DaprProtos.ConversationRequestAlpha2 protoRequest = buildConversationRequestProto(conversationRequestAlpha2,
1670+
builder);
16531671

16541672
Mono<DaprProtos.ConversationResponseAlpha2> conversationResponseMono = Mono.deferContextual(
16551673
context -> this.createMono(
@@ -1666,38 +1684,41 @@ public Mono<ConversationResponseAlpha2> converseAlpha2(ConversationRequestAlpha2
16661684
}
16671685
}
16681686

1669-
private DaprProtos.ConversationRequestAlpha2 buildConversationRequestProto(ConversationRequestAlpha2 request) {
1670-
DaprProtos.ConversationRequestAlpha2.Builder builder = DaprProtos.ConversationRequestAlpha2
1671-
.newBuilder()
1672-
.setTemperature(request.getTemperature())
1673-
.setScrubPii(request.isScrubPii())
1674-
.setName(request.getName());
1675-
1676-
if (request.getContextId() != null) {
1677-
builder.setContextId(request.getContextId());
1678-
}
1679-
1680-
if (request.getToolChoice() != null) {
1681-
builder.setToolChoice(request.getToolChoice());
1682-
}
1683-
1687+
private DaprProtos.ConversationRequestAlpha2 buildConversationRequestProto(ConversationRequestAlpha2 request,
1688+
DaprProtos.ConversationRequestAlpha2.Builder builder) {
16841689
if (request.getTools() != null) {
16851690
buildConversationTools(request.getTools(), builder);
16861691
}
16871692

1688-
for (ConversationInputAlpha2 input : request.getInputs()) {
1689-
DaprProtos.ConversationInputAlpha2.Builder inputBuilder = DaprProtos.ConversationInputAlpha2
1690-
.newBuilder()
1691-
.setScrubPii(input.isScrubPii());
1693+
if (request.getMetadata() != null) {
1694+
builder.putAllMetadata(request.getMetadata());
1695+
}
16921696

1693-
if (input.getMessages() != null) {
1694-
for (ConversationMessage message : input.getMessages()) {
1695-
DaprProtos.ConversationMessage protoMessage = buildConversationMessage(message);
1696-
inputBuilder.addMessages(protoMessage);
1697+
if (request.getParameters() != null) {
1698+
Map<String, Any> parameters = request.getParameters()
1699+
.entrySet().stream()
1700+
.collect(Collectors.toMap(
1701+
Map.Entry::getKey,
1702+
e -> Any.pack((Message) e.getValue())
1703+
));
1704+
builder.putAllParameters(parameters);
1705+
}
1706+
1707+
if (request.getInputs() != null) {
1708+
for (ConversationInputAlpha2 input : request.getInputs()) {
1709+
DaprProtos.ConversationInputAlpha2.Builder inputBuilder = DaprProtos.ConversationInputAlpha2
1710+
.newBuilder()
1711+
.setScrubPii(input.isScrubPii());
1712+
1713+
if (input.getMessages() != null) {
1714+
for (ConversationMessage message : input.getMessages()) {
1715+
DaprProtos.ConversationMessage protoMessage = buildConversationMessage(message);
1716+
inputBuilder.addMessages(protoMessage);
1717+
}
16971718
}
1698-
}
16991719

1700-
builder.addInputs(inputBuilder.build());
1720+
builder.addInputs(inputBuilder.build());
1721+
}
17011722
}
17021723

17031724
return builder.build();
@@ -1707,19 +1728,24 @@ private void buildConversationTools(List<ConversationTools> tools,
17071728
DaprProtos.ConversationRequestAlpha2.Builder builder) {
17081729
for (ConversationTools tool : tools) {
17091730
ConversationFunction function = tool.getFunction();
1710-
1711-
Map<String, Any> protoParameters = function.getParameters()
1712-
.entrySet().stream()
1713-
.collect(Collectors.toMap(
1714-
Map.Entry::getKey,
1715-
e -> Any.pack((Message) e.getValue())
1716-
));
1717-
1718-
DaprProtos.ConversationToolsFunction protoFunction = DaprProtos.ConversationToolsFunction.newBuilder()
1719-
.setName(function.getName())
1720-
.setDescription(function.getDescription())
1721-
.putAllParameters(protoParameters)
1722-
.build();
1731+
1732+
DaprProtos.ConversationToolsFunction.Builder protoFunction = DaprProtos.ConversationToolsFunction.newBuilder()
1733+
.setName(function.getName());
1734+
1735+
if (function.getDescription() != null) {
1736+
protoFunction.setDescription(function.getDescription());
1737+
}
1738+
1739+
if (function.getParameters() != null) {
1740+
Map<String, Any> functionParams = function.getParameters()
1741+
.entrySet().stream()
1742+
.collect(Collectors.toMap(
1743+
Map.Entry::getKey,
1744+
e -> Any.pack((Message) e.getValue())
1745+
));
1746+
1747+
protoFunction.putAllParameters(functionParams);
1748+
}
17231749

17241750
builder.addTools(DaprProtos.ConversationTools.newBuilder()
17251751
.setFunction(protoFunction)
@@ -1729,29 +1755,68 @@ private void buildConversationTools(List<ConversationTools> tools,
17291755

17301756
private DaprProtos.ConversationMessage buildConversationMessage(ConversationMessage message) {
17311757
DaprProtos.ConversationMessage.Builder messageBuilder = DaprProtos.ConversationMessage.newBuilder();
1732-
1758+
17331759
switch (message.getRole()) {
17341760
case TOOL:
1735-
messageBuilder.setOfTool(DaprProtos.ConversationMessageOfTool.newBuilder()
1736-
.setToolId(message.getToolId()).setName(message.getName())
1737-
.addAllContent(getConversationMessageContent(message)).build());
1761+
DaprProtos.ConversationMessageOfTool.Builder toolMessage =
1762+
DaprProtos.ConversationMessageOfTool.newBuilder();
1763+
if (message.getName() != null) {
1764+
toolMessage.setName(message.getName());
1765+
}
1766+
if (message.getContent() != null) {
1767+
toolMessage.addAllContent(getConversationMessageContent(message));
1768+
}
1769+
if (message.getToolId() != null) {
1770+
toolMessage.setToolId(message.getToolId());
1771+
}
1772+
messageBuilder.setOfTool(toolMessage);
17381773
break;
17391774
case USER:
1740-
messageBuilder.setOfUser(DaprProtos.ConversationMessageOfUser.newBuilder()
1741-
.setName(message.getName()).addAllContent(getConversationMessageContent(message)).build());
1775+
DaprProtos.ConversationMessageOfUser.Builder userMessage =
1776+
DaprProtos.ConversationMessageOfUser.newBuilder();
1777+
if (message.getName() != null) {
1778+
userMessage.setName(message.getName());
1779+
}
1780+
if (message.getContent() != null) {
1781+
userMessage.addAllContent(getConversationMessageContent(message));
1782+
}
1783+
messageBuilder.setOfUser(userMessage);
17421784
break;
17431785
case ASSISTANT:
1744-
messageBuilder.setOfAssistant(DaprProtos.ConversationMessageOfAssistant.newBuilder()
1745-
.setName(message.getName()).addAllToolCalls(getConversationToolCalls(message))
1746-
.addAllContent(getConversationMessageContent(message)).build());
1786+
DaprProtos.ConversationMessageOfAssistant.Builder assistantMessage =
1787+
DaprProtos.ConversationMessageOfAssistant.newBuilder();
1788+
if (message.getName() != null) {
1789+
assistantMessage.setName(message.getName());
1790+
}
1791+
if (message.getContent() != null) {
1792+
assistantMessage.addAllContent(getConversationMessageContent(message));
1793+
}
1794+
if (message.getToolCalls() != null) {
1795+
assistantMessage.addAllToolCalls(getConversationToolCalls(message));
1796+
}
1797+
messageBuilder.setOfAssistant(assistantMessage);
17471798
break;
17481799
case DEVELOPER:
1749-
messageBuilder.setOfDeveloper(DaprProtos.ConversationMessageOfDeveloper.newBuilder()
1750-
.setName(message.getName()).addAllContent(getConversationMessageContent(message)).build());
1800+
DaprProtos.ConversationMessageOfDeveloper.Builder developerMessage =
1801+
DaprProtos.ConversationMessageOfDeveloper.newBuilder();
1802+
if (message.getName() != null) {
1803+
developerMessage.setName(message.getName());
1804+
}
1805+
if (message.getContent() != null) {
1806+
developerMessage.addAllContent(getConversationMessageContent(message));
1807+
}
1808+
messageBuilder.setOfDeveloper(developerMessage);
17511809
break;
17521810
case SYSTEM:
1753-
messageBuilder.setOfSystem(DaprProtos.ConversationMessageOfSystem.newBuilder()
1754-
.setName(message.getName()).addAllContent(getConversationMessageContent(message)).build());
1811+
DaprProtos.ConversationMessageOfSystem.Builder systemMessage =
1812+
DaprProtos.ConversationMessageOfSystem.newBuilder();
1813+
if (message.getName() != null) {
1814+
systemMessage.setName(message.getName());
1815+
}
1816+
if (message.getContent() != null) {
1817+
systemMessage.addAllContent(getConversationMessageContent(message));
1818+
}
1819+
messageBuilder.setOfSystem(systemMessage);
17551820
break;
17561821
default:
17571822
throw new IllegalArgumentException("No role of type " + message.getRole() + " found");
@@ -1832,16 +1897,6 @@ private List<DaprProtos.ConversationToolCalls> getConversationToolCalls(
18321897
return conversationToolCalls;
18331898
}
18341899

1835-
private void validateConversationRequestAlpha2(ConversationRequestAlpha2 conversationRequest) {
1836-
if ((conversationRequest.getName() == null) || (conversationRequest.getName().trim().isEmpty())) {
1837-
throw new IllegalArgumentException("LLM name cannot be null or empty.");
1838-
}
1839-
1840-
if ((conversationRequest.getInputs() == null) || (conversationRequest.getInputs().isEmpty())) {
1841-
throw new IllegalArgumentException("Conversation inputs cannot be null or empty.");
1842-
}
1843-
}
1844-
18451900
private DaprMetadata buildDaprMetadata(DaprProtos.GetMetadataResponse response) throws IOException {
18461901
String id = response.getId();
18471902
String runtimeVersion = response.getRuntimeVersion();

0 commit comments

Comments
 (0)