From 5d78e83e7c467ff34241b176c06914deb0287ccb Mon Sep 17 00:00:00 2001 From: Haiping Chen Date: Mon, 30 Oct 2023 14:27:12 -0500 Subject: [PATCH] Fix InvokeFunction dialog message. --- .../Routing/RoutingService.InvokeAgent.cs | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/Infrastructure/BotSharp.Core/Routing/RoutingService.InvokeAgent.cs b/src/Infrastructure/BotSharp.Core/Routing/RoutingService.InvokeAgent.cs index c6ced108..e347ff4e 100644 --- a/src/Infrastructure/BotSharp.Core/Routing/RoutingService.InvokeAgent.cs +++ b/src/Infrastructure/BotSharp.Core/Routing/RoutingService.InvokeAgent.cs @@ -55,15 +55,21 @@ public partial class RoutingService var responseTemplate = await templateService.RenderFunctionResponse(agent.Id, message); if (!string.IsNullOrEmpty(responseTemplate)) { - message.Content = responseTemplate.Trim(); - message.Role = AgentRole.Assistant; - dialogs.Add(message); + dialogs.Add(new RoleDialogModel(AgentRole.Assistant, responseTemplate) + { + CurrentAgentId = agent.Id, + MessageId = message.MessageId, + FunctionArgs = message.FunctionArgs, + FunctionName = message.FunctionName + }); } else { // Save to memory dialogs dialogs.Add(new RoleDialogModel(AgentRole.Function, message.Content) { + CurrentAgentId = agent.Id, + MessageId = message.MessageId, FunctionArgs = message.FunctionArgs, FunctionName = message.FunctionName }); @@ -72,6 +78,17 @@ public partial class RoutingService await InvokeAgent(agent.Id, dialogs); } } + else + { + dialogs.Add(new RoleDialogModel(AgentRole.Assistant, message.Content) + { + CurrentAgentId = agent.Id, + MessageId = message.MessageId, + FunctionArgs = message.FunctionArgs, + FunctionName = message.FunctionName, + StopCompletion = true + }); + } return true; }