Add relevant knowledge to Summary Plan
This commit is contained in:
parent
556ad27b6d
commit
0dd943bedd
|
|
@ -1 +1,2 @@
|
|||
Please call handle_excel_request if user wants to load the data from a excel/csv file.
|
||||
Please call handle_excel_request if user wants to load the data from a excel/csv file.
|
||||
handle_excel_request can NOT generate excel/csv.
|
||||
|
|
@ -38,6 +38,8 @@ public class PrimaryStagePlanFn : IFunctionCallback
|
|||
}
|
||||
}
|
||||
knowledges = knowledges.Distinct().ToList();
|
||||
var knowledgeState = String.Join("\r\n", knowledges);
|
||||
state.SetState("relevant_knowledges", knowledgeState);
|
||||
|
||||
// Get first stage planning prompt
|
||||
var currentAgent = await agentService.LoadAgent(message.CurrentAgentId);
|
||||
|
|
@ -67,11 +69,7 @@ public class PrimaryStagePlanFn : IFunctionCallback
|
|||
|
||||
var agent = await agentService.GetAgent(BuiltInAgentId.Planner);
|
||||
var template = agent.Templates.FirstOrDefault(x => x.Name == "two_stage.1st.plan")?.Content ?? string.Empty;
|
||||
var responseFormat = JsonSerializer.Serialize(new FirstStagePlan
|
||||
{
|
||||
Parameters = [ JsonDocument.Parse("{}") ],
|
||||
Results = [ string.Empty ]
|
||||
});
|
||||
var responseFormat = JsonSerializer.Serialize(new FirstStagePlan{});
|
||||
|
||||
// Get global knowledges
|
||||
var globalKnowledges = new List<string>();
|
||||
|
|
|
|||
|
|
@ -40,9 +40,12 @@ public class SecondaryStagePlanFn : IFunctionCallback
|
|||
knowledges.AddRange(k);
|
||||
}
|
||||
knowledges = knowledges.Distinct().ToList();
|
||||
|
||||
var knowledgeResults = string.Join("\r\n\r\n=====\r\n", knowledges);
|
||||
|
||||
var knowledgeState = states.GetState("relevant_knowledges");
|
||||
knowledgeState += String.Join("\r\n", knowledges);
|
||||
states.SetState("relevant_knowledges", knowledgeState);
|
||||
|
||||
// Get second stage planning prompt
|
||||
var currentAgent = await agentService.LoadAgent(message.CurrentAgentId);
|
||||
var prompt = await GetSecondStagePlanPrompt(taskSecondary.TaskDescription, planResult, knowledgeResults, message);
|
||||
|
|
|
|||
|
|
@ -35,7 +35,8 @@ public class SummaryPlanFn : IFunctionCallback
|
|||
var steps = states.GetState("planning_result").JsonArrayContent<SecondStagePlan>();
|
||||
var allTables = new List<string>();
|
||||
var ddlStatements = string.Empty;
|
||||
var planResult = states.GetState("planning_result");
|
||||
var relevantKnowledge = states.GetState("planning_result");
|
||||
relevantKnowledge += "\r\n" + states.GetState("relevant_knowledges");
|
||||
var dictionaryItems = states.GetState("dictionary_items");
|
||||
var excelImportResult = states.GetState("excel_import_result");
|
||||
|
||||
|
|
@ -54,7 +55,7 @@ public class SummaryPlanFn : IFunctionCallback
|
|||
ddlStatements += "\r\n" + msgCopy.Content;
|
||||
|
||||
// Summarize and generate query
|
||||
var prompt = await GetSummaryPlanPrompt(msgCopy, taskRequirement, planResult, dictionaryItems, ddlStatements, excelImportResult);
|
||||
var prompt = await GetSummaryPlanPrompt(msgCopy, taskRequirement, relevantKnowledge, dictionaryItems, ddlStatements, excelImportResult);
|
||||
_logger.LogInformation($"Summary plan prompt:\r\n{prompt}");
|
||||
|
||||
var plannerAgent = new Agent
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ public class FirstStagePlan
|
|||
[JsonPropertyName("task_detail")]
|
||||
public string Task { get; set; } = "";
|
||||
|
||||
[JsonPropertyName("reason")]
|
||||
public string Reason { get; set; } = "";
|
||||
//[JsonPropertyName("reason")]
|
||||
//public string Reason { get; set; } = "";
|
||||
|
||||
[JsonPropertyName("step")]
|
||||
public int Step { get; set; } = -1;
|
||||
|
|
@ -20,14 +20,14 @@ public class FirstStagePlan
|
|||
[JsonPropertyName("related_tables")]
|
||||
public string[] Tables { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("related_urls")]
|
||||
public string[] Urls { get; set; } = [];
|
||||
//[JsonPropertyName("related_urls")]
|
||||
//public string[] Urls { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("input_args")]
|
||||
public JsonDocument[] Parameters { get; set; } = [];
|
||||
//[JsonPropertyName("input_args")]
|
||||
//public JsonDocument[] Parameters { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("output_results")]
|
||||
public string[] Results { get; set; } = [];
|
||||
//[JsonPropertyName("output_results")]
|
||||
//public string[] Results { get; set; } = [];
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
Output in human readable format. If there is large amount of rows, shape it in tabular, otherwise, output in plain text.
|
||||
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.
|
||||
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.
|
||||
|
||||
User Task Description:
|
||||
{{ requirement_detail }}
|
||||
Loading…
Reference in a new issue