Skip to content

Commit 699f913

Browse files
authored
Merge pull request #808 from Joannall/master
update sql button render
2 parents bcb2b0b + 8c8dc1e commit 699f913

File tree

2 files changed

+29
-24
lines changed

2 files changed

+29
-24
lines changed

src/Infrastructure/BotSharp.Core/Routing/Handlers/RouteToAgentRoutingHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public class RouteToAgentRoutingHandler : RoutingHandlerBase, IRoutingHandler
3131
type: "boolean",
3232
required: true),
3333
new ParameterPropertyDef("is_new_task",
34-
"whether the user is requesting a new task that is different from the previous topic.",
34+
"whether the user is requesting a new task that is different from the previous topic. Set the first round of conversation to false.",
3535
type: "boolean")
3636
};
3737

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

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ public SqlDriverPlanningHook(IServiceProvider services)
2323
public async Task OnSourceCodeGenerated(string planner, RoleDialogModel msg, string language)
2424
{
2525
// envoke validate
26-
if (language != "sql")
27-
{
28-
return;
26+
if (language != "sql")
27+
{
28+
return;
2929
}
3030

3131
var routing = _services.GetRequiredService<IRoutingService>();
@@ -42,7 +42,7 @@ await HookEmitter.Emit<ISqlDriverHook>(_services, async (hook) =>
4242
var conversationStateService = _services.GetRequiredService<IConversationStateService>();
4343
var conversationId = conversationStateService.GetConversationId();
4444
msg.PostbackFunctionName = "execute_sql";
45-
msg.RichContent = BuildRunQueryButton(planner, msg.Content);
45+
msg.RichContent = BuildRunQueryButton(conversationId, msg.Content);
4646
msg.StopCompletion = true;
4747
return;
4848
}
@@ -71,7 +71,7 @@ await HookEmitter.Emit<ISqlDriverHook>(_services, async (hook) =>
7171

7272
public async Task OnPlanningCompleted(string planner, RoleDialogModel msg)
7373
{
74-
74+
7575
}
7676

7777
public async Task<string> GetSummaryAdditionalRequirements(string planner, RoleDialogModel message)
@@ -91,8 +91,27 @@ private RichContent<IRichMessage> BuildRunQueryButton(string conversationId, str
9191
string pattern = @"```sql\s*([\s\S]*?)\s*```";
9292
var sql = Regex.Match(text, pattern).Groups[1].Value;
9393
var state = _services.GetRequiredService<IConversationStateService>();
94-
var deleteTable = state.GetState("tmp_table");
95-
var deleteSql = $"DROP TABLE IF EXISTS {deleteTable};";
94+
var tmpTable = state.GetState("tmp_table");
95+
96+
var elements = new List<ElementButton>() { };
97+
elements.Add(new ElementButton
98+
{
99+
Type = "text",
100+
Title = "Execute SQL Statement",
101+
Payload = sql,
102+
IsPrimary = true
103+
});
104+
105+
if (tmpTable != string.Empty)
106+
{
107+
var deleteSql = $"DROP TABLE IF EXISTS {tmpTable};";
108+
elements.Add(new ElementButton
109+
{
110+
Type = "text",
111+
Title = "Delete Temp Table",
112+
Payload = deleteSql
113+
});
114+
}
96115

97116
return new RichContent<IRichMessage>
98117
{
@@ -105,23 +124,9 @@ private RichContent<IRichMessage> BuildRunQueryButton(string conversationId, str
105124
Message = new ButtonTemplateMessage
106125
{
107126
Text = text,
108-
Buttons = new List<ElementButton>
109-
{
110-
new ElementButton
111-
{
112-
Type = "text",
113-
Title = "Execute the SQL Statement",
114-
Payload = sql,
115-
IsPrimary = true
116-
},
117-
new ElementButton
118-
{
119-
Type = "text",
120-
Title = "Purge Cache",
121-
Payload = deleteSql
122-
}
123-
}.ToArray()
127+
Buttons = elements.ToArray()
124128
}
125129
};
130+
126131
}
127132
}

0 commit comments

Comments
 (0)