Skip to content

Commit 06c1fc6

Browse files
authored
Merge pull request #779 from Qtoss-AI/master
Fix GetReasoner.
2 parents e1e835a + f2dc57c commit 06c1fc6

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/Infrastructure/BotSharp.Core/Routing/Reasoning/NaiveReasoner.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ public class NaiveReasoner : IRoutingReasoner
2929
private readonly IServiceProvider _services;
3030
private readonly ILogger _logger;
3131

32+
public string Name => "Naive Reasoner";
33+
3234
public NaiveReasoner(IServiceProvider services, ILogger<NaiveReasoner> logger)
3335
{
3436
_services = services;

src/Infrastructure/BotSharp.Core/Routing/RoutingService.InstructLoop.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,14 +97,20 @@ public IRoutingReasoner GetReasoner(Agent router)
9797
{
9898
var rule = router.RoutingRules.FirstOrDefault(x => x.Type == RuleType.Reasoner);
9999

100+
if (rule == null)
101+
{
102+
_logger.LogError($"Can't find any reasoner");
103+
return _services.GetServices<IRoutingReasoner>().First(x => x.Name == "Naive Reasoner");
104+
}
105+
100106
var reasoner = _services.GetServices<IRoutingReasoner>().
101107
FirstOrDefault(x => x.GetType().Name.EndsWith(rule.Field));
102108

103109
if (reasoner == null)
104110
{
105-
_logger.LogError($"Can't find specific planner named {rule.Field}");
111+
_logger.LogError($"Can't find specific reasoner named {rule.Field}");
106112
// Default use NaiveReasoner
107-
return _services.GetRequiredService<NaiveReasoner>();
113+
return _services.GetServices<IRoutingReasoner>().First(x => x.Name == "Naive Reasoner");
108114
}
109115

110116
return reasoner;

0 commit comments

Comments
 (0)