From fabbd8bcef25fbc59683b41262423458c8371f57 Mon Sep 17 00:00:00 2001 From: Jicheng Lu <103353@smsassist.com> Date: Wed, 6 Dec 2023 21:06:09 -0600 Subject: [PATCH] add invoke function in routing service --- .../Routing/IRoutingService.cs | 1 + .../Routing/RoutingService.InvokeFunction.cs | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 src/Infrastructure/BotSharp.Core/Routing/RoutingService.InvokeFunction.cs diff --git a/src/Infrastructure/BotSharp.Abstraction/Routing/IRoutingService.cs b/src/Infrastructure/BotSharp.Abstraction/Routing/IRoutingService.cs index 3ba73ee5..17027652 100644 --- a/src/Infrastructure/BotSharp.Abstraction/Routing/IRoutingService.cs +++ b/src/Infrastructure/BotSharp.Abstraction/Routing/IRoutingService.cs @@ -11,6 +11,7 @@ public interface IRoutingService List GetHandlers(); void ResetRecursiveCounter(); Task InvokeAgent(string agentId, List dialogs); + Task InvokeFunction(string name, RoleDialogModel message); Task InstructLoop(RoleDialogModel message); /// diff --git a/src/Infrastructure/BotSharp.Core/Routing/RoutingService.InvokeFunction.cs b/src/Infrastructure/BotSharp.Core/Routing/RoutingService.InvokeFunction.cs new file mode 100644 index 00000000..7d142c7d --- /dev/null +++ b/src/Infrastructure/BotSharp.Core/Routing/RoutingService.InvokeFunction.cs @@ -0,0 +1,14 @@ +using BotSharp.Abstraction.Functions; + +namespace BotSharp.Core.Routing; + +public partial class RoutingService +{ + public async Task InvokeFunction(string name, RoleDialogModel message) + { + var function = _services.GetServices().FirstOrDefault(x => x.Name == name); + if (function == null) return false; + + return await function.Execute(message); + } +}