BotSharp/src/Infrastructure/BotSharp.Core/Routing/Hooks/RoutingAgentHook.cs

39 lines
1.2 KiB
C#
Raw Normal View History

2023-09-28 03:31:58 +00:00
using BotSharp.Abstraction.Functions.Models;
2023-10-12 11:30:13 +00:00
using BotSharp.Abstraction.Routing;
2023-10-24 21:38:34 +00:00
using BotSharp.Abstraction.Routing.Settings;
2023-09-28 03:31:58 +00:00
namespace BotSharp.Core.Routing.Hooks;
public class RoutingAgentHook : AgentHookBase
{
2023-10-24 21:38:34 +00:00
private readonly RoutingSettings _routingSetting;
public override string SelfId => _routingSetting.RouterId;
public RoutingAgentHook(IServiceProvider services, AgentSettings settings, RoutingSettings routingSetting)
2023-09-28 03:31:58 +00:00
: base(services, settings)
{
2023-10-24 21:38:34 +00:00
_routingSetting = routingSetting;
2023-09-28 03:31:58 +00:00
}
2023-10-12 11:30:13 +00:00
public override bool OnInstructionLoaded(string template, Dictionary<string, object> dict)
{
dict["router"] = _agent;
var router = _services.GetRequiredService<IRouterInstance>();
dict["routing_agents"] = router.GetRoutingItems();
dict["routing_handlers"] = router.GetHandlers();
return base.OnInstructionLoaded(template, dict);
}
public override bool OnFunctionsLoaded(List<FunctionDef> functions)
2023-09-28 03:31:58 +00:00
{
2023-09-28 17:42:14 +00:00
/*functions.Add(new FunctionDef
2023-09-28 03:31:58 +00:00
{
Name = "fallback_to_router",
Description = "If the user's request is beyond your capabilities, you can call this function for help."
2023-09-28 17:42:14 +00:00
});*/
return base.OnFunctionsLoaded(functions);
2023-09-28 03:31:58 +00:00
}
}