Merge pull request #776 from Joannall/master · SciSharp/BotSharp@be687bd · GitHub
Skip to content

Commit be687bd

Browse files
authored
Merge pull request #776 from Joannall/master
add OnSourceCodeGenerated Hook
2 parents b23cd20 + 49a968b commit be687bd

8 files changed

Lines changed: 37 additions & 12 deletions

File tree

‎src/Infrastructure/BotSharp.Abstraction/Planning/IPlanningHook.cs‎

Lines changed: 3 additions & 0 deletions

‎src/Infrastructure/BotSharp.Core/Routing/Reasoning/OneStepForwardReasoner.cs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public class OneStepForwardReasoner : IRoutingReasoner
3434
private readonly IServiceProvider _services;
3535
private readonly ILogger _logger;
3636

37-
public OneStepForwardReasoner(IServiceProvider services, ILogger<NaiveReasoner> logger)
37+
public OneStepForwardReasoner(IServiceProvider services, ILogger<OneStepForwardReasoner> logger)
3838
{
3939
_services = services;
4040
_logger = logger;
@@ -116,7 +116,7 @@ public async Task<bool> AgentExecuted(Agent router, FunctionCallFromLlm inst, Ro
116116
}
117117
else
118118
{
119-
context.Empty(reason: $"Agent queue is cleared by {nameof(NaiveReasoner)}");
119+
context.Empty(reason: $"Agent queue is cleared by {nameof(OneStepForwardReasoner)}");
120120
// context.Push(inst.OriginalAgent, "Push user goal agent");
121121
}
122122
return true;

‎src/Infrastructure/BotSharp.Core/Routing/Reasoning/SequentialReasoner.cs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public class SequentialReasoner : IRoutingReasoner
3333
public int MaxLoopCount => 100;
3434
private FunctionCallFromLlm _lastInst;
3535

36-
public SequentialReasoner(IServiceProvider services, ILogger<NaiveReasoner> logger)
36+
public SequentialReasoner(IServiceProvider services, ILogger<SequentialReasoner> logger)
3737
{
3838
_services = services;
3939
_logger = logger;

‎src/Plugins/BotSharp.Plugin.Planner/Functions/SummaryPlanFn.cs‎

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,15 @@ public async Task<bool> Execute(RoleDialogModel message)
7171
var summary = await GetAiResponse(plannerAgent);
7272
message.Content = summary.Content;
7373

74-
// Validate the sql result
74+
// Emit event if the sql statement is generated by planner
7575
var args = JsonSerializer.Deserialize<SummaryPlan>(message.FunctionArgs);
76-
if (args.IsSqlTemplate == false)
76+
if (args != null && !args.IsSqlTemplate && args.ContainsSqlStatements)
7777
{
78-
await fn.InvokeFunction("validate_sql", message);
78+
await HookEmitter.Emit<IPlanningHook>(_services, async hook =>
79+
await hook.OnSourceCodeGenerated(nameof(TwoStageTaskPlanner), message, "sql")
80+
);
7981
}
80-
82+
8183
await HookEmitter.Emit<IPlanningHook>(_services, async hook =>
8284
await hook.OnPlanningCompleted(nameof(TwoStageTaskPlanner), message)
8385
);

‎src/Plugins/BotSharp.Plugin.Planner/TwoStaging/Models/SummaryPlan.cs‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,7 @@ public class SummaryPlan
44
{
55
[JsonPropertyName("is_sql_template")]
66
public bool IsSqlTemplate { get; set; } = false;
7+
8+
[JsonPropertyName("contains_sql_statements")]
9+
public bool ContainsSqlStatements { get; set; } = false;
710
}

‎src/Plugins/BotSharp.Plugin.Planner/data/agents/282a7128-69a1-44b0-878c-a9159b88f3b9/agent.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"id": "282a7128-69a1-44b0-878c-a9159b88f3b9",
33
"name": "Planner",
4-
"description": "Plan feasible implementation steps for user task request",
4+
"description": "Plan feasible implementation steps for complex user task request",
55
"type": "task",
66
"createdDateTime": "2023-08-27T10:39:00Z",
77
"updatedDateTime": "2023-08-27T14:39:00Z",

‎src/Plugins/BotSharp.Plugin.Planner/data/agents/282a7128-69a1-44b0-878c-a9159b88f3b9/functions/plan_summary.json‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
"type": "boolean",
99
"description": "If user request is to generate sql template instead of actual sql statement."
1010
},
11+
"contains_sql_statements": {
12+
"type": "boolean",
13+
"description": "Set to true if the response contains sql statements."
14+
},
1115
"related_tables": {
1216
"type": "array",
1317
"description": "table name in planning steps",
@@ -17,6 +21,6 @@
1721
}
1822
}
1923
},
20-
"required": [ "related_tables", "is_sql_template" ]
24+
"required": [ "related_tables", "is_sql_template", "contains_sql_statements" ]
2125
}
2226
}

‎src/Plugins/BotSharp.Plugin.SqlDriver/Hooks/SqlDriverPlanningHook.cs‎

Lines changed: 16 additions & 3 deletions

0 commit comments

Comments
 (0)