Merge pull request #710 from Joannall/master

naming change-domain knowledge
This commit is contained in:
Haiping 2024-10-30 05:42:53 -05:00 committed by GitHub
commit a539586786
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 19 additions and 19 deletions

View file

@ -5,7 +5,7 @@ public interface IKnowledgeHook
Task<List<KnowledgeChunk>> CollectChunkedKnowledge()
=> Task.FromResult(new List<KnowledgeChunk>());
Task<List<string>> GetRelevantKnowledges(RoleDialogModel message, string text)
Task<List<string>> GetDomainKnowledges(RoleDialogModel message, string text)
=> Task.FromResult(new List<string>());
Task<List<string>> GetGlobalKnowledges(RoleDialogModel message)

View file

@ -24,7 +24,7 @@ public class KnowledgeRetrievalFn : IFunctionCallback
var knowledges = new List<string>();
foreach (var hook in hooks)
{
var k = await hook.GetRelevantKnowledges(message, args.Question);
var k = await hook.GetDomainKnowledges(message, args.Question);
knowledges.AddRange(k);
}
knowledges = knowledges.Distinct().ToList();

View file

@ -36,13 +36,13 @@ public class PrimaryStagePlanFn : IFunctionCallback
{
foreach (var hook in hooks)
{
var k = await hook.GetRelevantKnowledges(message, question);
var k = await hook.GetDomainKnowledges(message, question);
knowledges.AddRange(k);
}
}
knowledges = knowledges.Distinct().ToList();
var knowledgeState = String.Join("\r\n", knowledges);
state.SetState("relevant_knowledges", knowledgeState);
state.SetState("domain_knowledges", knowledgeState);
// Get first stage planning prompt
var currentAgent = await agentService.LoadAgent(message.CurrentAgentId);
@ -64,7 +64,7 @@ public class PrimaryStagePlanFn : IFunctionCallback
return true;
}
private async Task<string> GetFirstStagePlanPrompt(RoleDialogModel message, string taskDescription, List<string> relevantKnowledges)
private async Task<string> GetFirstStagePlanPrompt(RoleDialogModel message, string taskDescription, List<string> domainKnowledges)
{
var agentService = _services.GetRequiredService<IAgentService>();
var render = _services.GetRequiredService<ITemplateRender>();
@ -86,7 +86,7 @@ public class PrimaryStagePlanFn : IFunctionCallback
{
{ "task_description", taskDescription },
{ "global_knowledges", globalKnowledges },
{ "relevant_knowledges", relevantKnowledges },
{ "domain_knowledges", domainKnowledges },
{ "response_format", responseFormat }
});
}

View file

@ -36,15 +36,15 @@ public class SecondaryStagePlanFn : IFunctionCallback
var knowledges = new List<string>();
foreach (var hook in hooks)
{
var k = await hook.GetRelevantKnowledges(message, taskSecondary.SolutionQuestion);
var k = await hook.GetDomainKnowledges(message, taskSecondary.SolutionQuestion);
knowledges.AddRange(k);
}
knowledges = knowledges.Distinct().ToList();
var knowledgeResults = string.Join("\r\n\r\n=====\r\n", knowledges);
var knowledgeState = states.GetState("relevant_knowledges");
var knowledgeState = states.GetState("domain_knowledges");
knowledgeState += String.Join("\r\n", knowledges);
states.SetState("relevant_knowledges", knowledgeState);
states.SetState("domain_knowledges", knowledgeState);
// Get second stage planning prompt
var currentAgent = await agentService.LoadAgent(message.CurrentAgentId);

View file

@ -35,8 +35,8 @@ public class SummaryPlanFn : IFunctionCallback
var steps = states.GetState("planning_result").JsonArrayContent<SecondStagePlan>();
var allTables = new List<string>();
var ddlStatements = string.Empty;
var relevantKnowledge = states.GetState("planning_result");
relevantKnowledge += "\r\n" + states.GetState("relevant_knowledges");
var domainKnowledge = states.GetState("planning_result");
domainKnowledge += "\r\n" + states.GetState("domain_knowledges");
var dictionaryItems = states.GetState("dictionary_items");
var excelImportResult = states.GetState("excel_import_result");
@ -55,7 +55,7 @@ public class SummaryPlanFn : IFunctionCallback
ddlStatements += "\r\n" + msgCopy.Content;
// Summarize and generate query
var prompt = await GetSummaryPlanPrompt(msgCopy, taskRequirement, relevantKnowledge, dictionaryItems, ddlStatements, excelImportResult);
var prompt = await GetSummaryPlanPrompt(msgCopy, taskRequirement, domainKnowledge, dictionaryItems, ddlStatements, excelImportResult);
_logger.LogInformation($"Summary plan prompt:\r\n{prompt}");
var plannerAgent = new Agent
@ -76,7 +76,7 @@ public class SummaryPlanFn : IFunctionCallback
return true;
}
private async Task<string> GetSummaryPlanPrompt(RoleDialogModel message, string taskDescription, string relevantKnowledge, string dictionaryItems, string ddlStatement, string excelImportResult)
private async Task<string> GetSummaryPlanPrompt(RoleDialogModel message, string taskDescription, string domainKnowledge, string dictionaryItems, string ddlStatement, string excelImportResult)
{
var agentService = _services.GetRequiredService<IAgentService>();
var render = _services.GetRequiredService<ITemplateRender>();
@ -104,7 +104,7 @@ public class SummaryPlanFn : IFunctionCallback
{ "task_description", taskDescription },
{ "summary_requirements", string.Join("\r\n", additionalRequirements) },
{ "global_knowledges", globalKnowledges },
{ "relevant_knowledges", relevantKnowledge },
{ "domain_knowledges", domainKnowledge },
{ "dictionary_items", dictionaryItems },
{ "table_structure", ddlStatement },
{ "excel_import_result", excelImportResult }

View file

@ -1,7 +1,7 @@
You are a Task Planner. you will breakdown user business requirements into excutable sub-tasks.
Thinking process:
1. Reference to "Task Knowledge" if there is relevant knowledge;
1. Reference to "Task Knowledge" if there is domain knowledge;
2. Breakdown task into subtasks.
- The subtask should contain all needed parameters for subsequent steps.
- If limited information provided and there are furture information needed, or miss relationship between steps, set the need_breakdown_task to true.
@ -25,10 +25,10 @@ Global Knowledge:
{% endfor %}
{%- endif %}
{% if relevant_knowledges != empty -%}
{% if domain_knowledges != empty -%}
=====
Task Knowledge:
{% for k in relevant_knowledges %}
{% for k in domain_knowledges %}
{{ k }}
{% endfor %}
{%- endif %}

View file

@ -12,8 +12,8 @@ Global Knowledges:
{{ global_knowledges }}
=====
Relevant Knowledges:
{{ relevant_knowledges }}
Domain Knowledges:
{{ domain_knowledges }}
=====
Dictionary Items: