Skip to content

Commit a6e3962

Browse files
authored
Merge pull request #694 from Joannall/master
Add relevant knowledge to Summary Plan
2 parents 0b4289b + 0dd943b commit a6e3962

File tree

6 files changed

+21
-18
lines changed

6 files changed

+21
-18
lines changed
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
Please call handle_excel_request if user wants to load the data from a excel/csv file.
1+
Please call handle_excel_request if user wants to load the data from a excel/csv file.
2+
handle_excel_request can NOT generate excel/csv.

src/Plugins/BotSharp.Plugin.Planner/Functions/PrimaryStagePlanFn.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ public async Task<bool> Execute(RoleDialogModel message)
3838
}
3939
}
4040
knowledges = knowledges.Distinct().ToList();
41+
var knowledgeState = String.Join("\r\n", knowledges);
42+
state.SetState("relevant_knowledges", knowledgeState);
4143

4244
// Get first stage planning prompt
4345
var currentAgent = await agentService.LoadAgent(message.CurrentAgentId);
@@ -67,11 +69,7 @@ private async Task<string> GetFirstStagePlanPrompt(RoleDialogModel message, stri
6769

6870
var agent = await agentService.GetAgent(BuiltInAgentId.Planner);
6971
var template = agent.Templates.FirstOrDefault(x => x.Name == "two_stage.1st.plan")?.Content ?? string.Empty;
70-
var responseFormat = JsonSerializer.Serialize(new FirstStagePlan
71-
{
72-
Parameters = [ JsonDocument.Parse("{}") ],
73-
Results = [ string.Empty ]
74-
});
72+
var responseFormat = JsonSerializer.Serialize(new FirstStagePlan{});
7573

7674
// Get global knowledges
7775
var globalKnowledges = new List<string>();

src/Plugins/BotSharp.Plugin.Planner/Functions/SecondaryStagePlanFn.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,12 @@ public async Task<bool> Execute(RoleDialogModel message)
4040
knowledges.AddRange(k);
4141
}
4242
knowledges = knowledges.Distinct().ToList();
43-
4443
var knowledgeResults = string.Join("\r\n\r\n=====\r\n", knowledges);
4544

45+
var knowledgeState = states.GetState("relevant_knowledges");
46+
knowledgeState += String.Join("\r\n", knowledges);
47+
states.SetState("relevant_knowledges", knowledgeState);
48+
4649
// Get second stage planning prompt
4750
var currentAgent = await agentService.LoadAgent(message.CurrentAgentId);
4851
var prompt = await GetSecondStagePlanPrompt(taskSecondary.TaskDescription, planResult, knowledgeResults, message);

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ public async Task<bool> Execute(RoleDialogModel message)
3535
var steps = states.GetState("planning_result").JsonArrayContent<SecondStagePlan>();
3636
var allTables = new List<string>();
3737
var ddlStatements = string.Empty;
38-
var planResult = states.GetState("planning_result");
38+
var relevantKnowledge = states.GetState("planning_result");
39+
relevantKnowledge += "\r\n" + states.GetState("relevant_knowledges");
3940
var dictionaryItems = states.GetState("dictionary_items");
4041
var excelImportResult = states.GetState("excel_import_result");
4142

@@ -54,7 +55,7 @@ public async Task<bool> Execute(RoleDialogModel message)
5455
ddlStatements += "\r\n" + msgCopy.Content;
5556

5657
// Summarize and generate query
57-
var prompt = await GetSummaryPlanPrompt(msgCopy, taskRequirement, planResult, dictionaryItems, ddlStatements, excelImportResult);
58+
var prompt = await GetSummaryPlanPrompt(msgCopy, taskRequirement, relevantKnowledge, dictionaryItems, ddlStatements, excelImportResult);
5859
_logger.LogInformation($"Summary plan prompt:\r\n{prompt}");
5960

6061
var plannerAgent = new Agent

src/Plugins/BotSharp.Plugin.Planner/TwoStaging/Models/FirstStagePlan.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ public class FirstStagePlan
55
[JsonPropertyName("task_detail")]
66
public string Task { get; set; } = "";
77

8-
[JsonPropertyName("reason")]
9-
public string Reason { get; set; } = "";
8+
//[JsonPropertyName("reason")]
9+
//public string Reason { get; set; } = "";
1010

1111
[JsonPropertyName("step")]
1212
public int Step { get; set; } = -1;
@@ -20,14 +20,14 @@ public class FirstStagePlan
2020
[JsonPropertyName("related_tables")]
2121
public string[] Tables { get; set; } = [];
2222

23-
[JsonPropertyName("related_urls")]
24-
public string[] Urls { get; set; } = [];
23+
//[JsonPropertyName("related_urls")]
24+
//public string[] Urls { get; set; } = [];
2525

26-
[JsonPropertyName("input_args")]
27-
public JsonDocument[] Parameters { get; set; } = [];
26+
//[JsonPropertyName("input_args")]
27+
//public JsonDocument[] Parameters { get; set; } = [];
2828

29-
[JsonPropertyName("output_results")]
30-
public string[] Results { get; set; } = [];
29+
//[JsonPropertyName("output_results")]
30+
//public string[] Results { get; set; } = [];
3131

3232
public override string ToString()
3333
{
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Output in human readable format. If there is large amount of rows, shape it in tabular, otherwise, output in plain text.
2-
Put user task description in the first line in the same language, for example, user is using Chinese, you have to output the result in Chinese.
2+
Put user task description in the first line in the same language, for example, if user is using Chinese, you have to output the result in Chinese.
33

44
User Task Description:
55
{{ requirement_detail }}

0 commit comments

Comments
 (0)