Skip to content

Commit 42779c7

Browse files
committed
Fix pom
Signed-off-by: sirivarma <[email protected]>
1 parent 337d89c commit 42779c7

File tree

1 file changed

+135
-122
lines changed

1 file changed

+135
-122
lines changed

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

Lines changed: 135 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -1647,147 +1647,160 @@ private void validateConversationRequest(ConversationRequest conversationRequest
16471647
*/
16481648
@Override
16491649
public Mono<ConversationResponseAlpha2> converseAlpha2(ConversationRequestAlpha2 conversationRequestAlpha2) {
1650-
16511650
try {
16521651
validateConversationRequestAlpha2(conversationRequestAlpha2);
1652+
DaprProtos.ConversationRequestAlpha2 protoRequest = buildConversationRequestProto(conversationRequestAlpha2);
1653+
1654+
Mono<DaprProtos.ConversationResponseAlpha2> conversationResponseMono = Mono.deferContextual(
1655+
context -> this.createMono(
1656+
it -> intercept(context, asyncStub).converseAlpha2(protoRequest, it)
1657+
)
1658+
);
1659+
1660+
DaprProtos.ConversationResponseAlpha2 conversationResponse = conversationResponseMono.block();
16531661

1654-
DaprProtos.ConversationRequestAlpha2.Builder protosConversationRequestBuilder =
1655-
DaprProtos.ConversationRequestAlpha2
1656-
.newBuilder()
1657-
.setTemperature(conversationRequestAlpha2.getTemperature())
1658-
.setScrubPii(conversationRequestAlpha2.isScrubPii())
1659-
.setName(conversationRequestAlpha2.getName());
1660-
1661-
if (conversationRequestAlpha2.getContextId() != null) {
1662-
protosConversationRequestBuilder.setContextId(conversationRequestAlpha2.getContextId());
1663-
}
1662+
List<ConversationResultAlpha2> results = buildConversationResults(conversationResponse.getOutputsList());
1663+
return Mono.just(new ConversationResponseAlpha2(conversationResponse.getContextId(), results));
1664+
} catch (Exception ex) {
1665+
return DaprException.wrapMono(ex);
1666+
}
1667+
}
16641668

1665-
if (conversationRequestAlpha2.getToolChoice() != null) {
1666-
protosConversationRequestBuilder.setToolChoice(conversationRequestAlpha2.getToolChoice());
1667-
}
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());
16681675

1669-
if (conversationRequestAlpha2.getTools() != null) {
1670-
for (ConversationTools tool : conversationRequestAlpha2.getTools()) {
1676+
if (request.getContextId() != null) {
1677+
builder.setContextId(request.getContextId());
1678+
}
16711679

1672-
ConversationFunction conversationFunction = tool.getFunction();
1680+
if (request.getToolChoice() != null) {
1681+
builder.setToolChoice(request.getToolChoice());
1682+
}
16731683

1674-
Map<String, Any> protosConversationToolFunctionParameters = conversationFunction.getParameters()
1675-
.entrySet().stream()
1676-
.collect(Collectors.toMap(
1677-
Map.Entry::getKey,
1678-
e -> Any.pack((Message) e.getValue())
1679-
));
1680-
DaprProtos.ConversationToolsFunction protosConversationToolsFunction =
1681-
DaprProtos.ConversationToolsFunction.newBuilder()
1682-
.setName(conversationFunction.getName())
1683-
.setDescription(conversationFunction.getDescription())
1684-
.putAllParameters(protosConversationToolFunctionParameters)
1685-
.build();
1684+
if (request.getTools() != null) {
1685+
buildConversationTools(request.getTools(), builder);
1686+
}
16861687

1687-
DaprProtos.ConversationTools conversationTool = DaprProtos.ConversationTools.newBuilder()
1688-
.setFunction(protosConversationToolsFunction).build();
1688+
for (ConversationInputAlpha2 input : request.getInputs()) {
1689+
DaprProtos.ConversationInputAlpha2.Builder inputBuilder = DaprProtos.ConversationInputAlpha2
1690+
.newBuilder()
1691+
.setScrubPii(input.isScrubPii());
16891692

1690-
protosConversationRequestBuilder.addTools(conversationTool);
1693+
if (input.getMessages() != null) {
1694+
for (ConversationMessage message : input.getMessages()) {
1695+
DaprProtos.ConversationMessage protoMessage = buildConversationMessage(message);
1696+
inputBuilder.addMessages(protoMessage);
16911697
}
16921698
}
16931699

1694-
for (ConversationInputAlpha2 input : conversationRequestAlpha2.getInputs()) {
1695-
DaprProtos.ConversationInputAlpha2.Builder conversationInputBuilder = DaprProtos.ConversationInputAlpha2
1696-
.newBuilder()
1697-
.setScrubPii(input.isScrubPii());
1698-
1699-
if (input.getMessages() != null) {
1700-
1701-
for (ConversationMessage conversationMessage : input.getMessages()) {
1702-
DaprProtos.ConversationMessage.Builder messageBuilder =
1703-
DaprProtos.ConversationMessage.newBuilder();
1704-
1705-
ConversationMessage.Role role = conversationMessage.getRole();
1706-
switch (role) {
1707-
case TOOL:
1708-
messageBuilder.setOfTool(DaprProtos.ConversationMessageOfTool.newBuilder()
1709-
.setToolId(conversationMessage.getToolId())
1710-
.setName(conversationMessage.getName())
1711-
.addAllContent(getConversationMessageContent(conversationMessage)).build());
1712-
break;
1713-
case USER:
1714-
messageBuilder.setOfUser(DaprProtos.ConversationMessageOfUser.newBuilder()
1715-
.setName(conversationMessage.getName())
1716-
.addAllContent(getConversationMessageContent(conversationMessage)).build());
1717-
break;
1718-
case ASSISTANT:
1719-
messageBuilder.setOfAssistant(DaprProtos.ConversationMessageOfAssistant.newBuilder()
1720-
.setName(conversationMessage.getName())
1721-
.addAllToolCalls(getConversationToolCalls(conversationMessage))
1722-
.addAllContent(getConversationMessageContent(conversationMessage)).build());
1723-
break;
1724-
case DEVELOPER:
1725-
messageBuilder.setOfDeveloper(DaprProtos.ConversationMessageOfDeveloper.newBuilder()
1726-
.setName(conversationMessage.getName())
1727-
.addAllContent(getConversationMessageContent(conversationMessage)).build());
1728-
break;
1729-
case SYSTEM:
1730-
messageBuilder.setOfSystem(DaprProtos.ConversationMessageOfSystem.newBuilder()
1731-
.setName(conversationMessage.getName())
1732-
.addAllContent(getConversationMessageContent(conversationMessage)).build());
1733-
break;
1734-
default: throw new IllegalArgumentException("No role of type " + role + " found");
1735-
}
1736-
1737-
conversationInputBuilder.addMessages(messageBuilder.build());
1738-
}
1739-
}
1700+
builder.addInputs(inputBuilder.build());
1701+
}
1702+
1703+
return builder.build();
1704+
}
1705+
1706+
private void buildConversationTools(List<ConversationTools> tools,
1707+
DaprProtos.ConversationRequestAlpha2.Builder builder) {
1708+
for (ConversationTools tool : tools) {
1709+
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();
1723+
1724+
builder.addTools(DaprProtos.ConversationTools.newBuilder()
1725+
.setFunction(protoFunction)
1726+
.build());
1727+
}
1728+
}
17401729

1741-
protosConversationRequestBuilder.addInputs(conversationInputBuilder.build());
1742-
}
1730+
private DaprProtos.ConversationMessage buildConversationMessage(ConversationMessage message) {
1731+
DaprProtos.ConversationMessage.Builder messageBuilder = DaprProtos.ConversationMessage.newBuilder();
1732+
1733+
switch (message.getRole()) {
1734+
case TOOL:
1735+
messageBuilder.setOfTool(DaprProtos.ConversationMessageOfTool.newBuilder()
1736+
.setToolId(message.getToolId()).setName(message.getName())
1737+
.addAllContent(getConversationMessageContent(message)).build());
1738+
break;
1739+
case USER:
1740+
messageBuilder.setOfUser(DaprProtos.ConversationMessageOfUser.newBuilder()
1741+
.setName(message.getName()).addAllContent(getConversationMessageContent(message)).build());
1742+
break;
1743+
case ASSISTANT:
1744+
messageBuilder.setOfAssistant(DaprProtos.ConversationMessageOfAssistant.newBuilder()
1745+
.setName(message.getName()).addAllToolCalls(getConversationToolCalls(message))
1746+
.addAllContent(getConversationMessageContent(message)).build());
1747+
break;
1748+
case DEVELOPER:
1749+
messageBuilder.setOfDeveloper(DaprProtos.ConversationMessageOfDeveloper.newBuilder()
1750+
.setName(message.getName()).addAllContent(getConversationMessageContent(message)).build());
1751+
break;
1752+
case SYSTEM:
1753+
messageBuilder.setOfSystem(DaprProtos.ConversationMessageOfSystem.newBuilder()
1754+
.setName(message.getName()).addAllContent(getConversationMessageContent(message)).build());
1755+
break;
1756+
default:
1757+
throw new IllegalArgumentException("No role of type " + message.getRole() + " found");
1758+
}
17431759

1744-
Mono<DaprProtos.ConversationResponseAlpha2> conversationResponseMono = Mono.deferContextual(
1745-
context -> this.createMono(
1746-
it -> intercept(context, asyncStub)
1747-
.converseAlpha2(protosConversationRequestBuilder.build(), it)
1748-
)
1749-
);
1760+
return messageBuilder.build();
1761+
}
17501762

1751-
return conversationResponseMono.map(conversationResponse -> {
1752-
List<ConversationResultAlpha2> results = new ArrayList<>();
1763+
private List<ConversationResultAlpha2> buildConversationResults(
1764+
List<DaprProtos.ConversationResultAlpha2> protoResults) {
1765+
List<ConversationResultAlpha2> results = new ArrayList<>();
1766+
1767+
for (DaprProtos.ConversationResultAlpha2 protoResult : protoResults) {
1768+
List<ConversationResultChoices> choices = new ArrayList<>();
17531769

1754-
for (DaprProtos.ConversationResultAlpha2 result : conversationResponse.getOutputsList()) {
1755-
List<ConversationResultChoices> choices = new ArrayList<>();
1756-
1757-
for (DaprProtos.ConversationResultChoices choice : result.getChoicesList()) {
1758-
ConversationResultMessage message = null;
1759-
if (choice.hasMessage()) {
1760-
List<ConversationToolCalls> toolCalls = new ArrayList<>();
1761-
1762-
for (DaprProtos.ConversationToolCalls toolCall : choice.getMessage().getToolCallsList()) {
1763-
ConversationToolCallsFunction function = null;
1764-
if (toolCall.hasFunction()) {
1765-
function = new ConversationToolCallsFunction(
1766-
toolCall.getFunction().getName(),
1767-
toolCall.getFunction().getArguments()
1768-
);
1769-
}
1770-
1771-
toolCalls.add(new ConversationToolCalls(toolCall.getId(), function));
1772-
}
1773-
1774-
message = new ConversationResultMessage(
1775-
choice.getMessage().getContent(),
1776-
toolCalls
1777-
);
1778-
}
1770+
for (DaprProtos.ConversationResultChoices protoChoice : protoResult.getChoicesList()) {
1771+
ConversationResultMessage message = buildConversationResultMessage(protoChoice);
1772+
choices.add(new ConversationResultChoices(protoChoice.getFinishReason(), protoChoice.getIndex(), message));
1773+
}
17791774

1780-
choices.add(new ConversationResultChoices(choice.getFinishReason(), choice.getIndex(), message));
1781-
}
1782-
1783-
results.add(new ConversationResultAlpha2(choices));
1784-
}
1775+
results.add(new ConversationResultAlpha2(choices));
1776+
}
1777+
1778+
return results;
1779+
}
17851780

1786-
return new ConversationResponseAlpha2(conversationResponse.getContextId(), results);
1787-
});
1788-
} catch (Exception ex) {
1789-
return DaprException.wrapMono(ex);
1781+
private ConversationResultMessage buildConversationResultMessage(DaprProtos.ConversationResultChoices protoChoice) {
1782+
if (!protoChoice.hasMessage()) {
1783+
return null;
1784+
}
1785+
1786+
List<ConversationToolCalls> toolCalls = new ArrayList<>();
1787+
1788+
for (DaprProtos.ConversationToolCalls protoToolCall : protoChoice.getMessage().getToolCallsList()) {
1789+
ConversationToolCallsFunction function = null;
1790+
if (protoToolCall.hasFunction()) {
1791+
function = new ConversationToolCallsFunction(
1792+
protoToolCall.getFunction().getName(),
1793+
protoToolCall.getFunction().getArguments()
1794+
);
1795+
}
1796+
1797+
toolCalls.add(new ConversationToolCalls(protoToolCall.getId(), function));
17901798
}
1799+
1800+
return new ConversationResultMessage(
1801+
protoChoice.getMessage().getContent(),
1802+
toolCalls
1803+
);
17911804
}
17921805

17931806
private List<DaprProtos.ConversationMessageContent> getConversationMessageContent(

0 commit comments

Comments
 (0)