Add document type of knowledge retrieval

This commit is contained in:
Haiping Chen 2025-02-24 12:14:25 -06:00
parent 6c40c6b770
commit 8e668b8627
7 changed files with 21 additions and 9 deletions

View file

@ -23,8 +23,6 @@
<None Remove="data\agents\01acc3e5-0af7-49e6-ad7a-a760bd12dc40\instructions\instruction.liquid" />
<None Remove="data\agents\01acc3e5-0af7-49e6-ad7a-a760bd12dc40\templates\knowledge.generation.plain.liquid" />
<None Remove="data\agents\01acc3e5-0af7-49e6-ad7a-a760bd12dc40\templates\knowledge.generation.refine.liquid" />
<None Remove="data\agents\6745151e-6d46-4a02-8de4-1c4f21c7da95\functions\util-knowledge-knowledge_retrieval.json" />
<None Remove="data\agents\6745151e-6d46-4a02-8de4-1c4f21c7da95\templates\util-knowledge-knowledge_retrieval.fn.liquid" />
</ItemGroup>
<ItemGroup>
@ -46,10 +44,10 @@
<Content Include="data\agents\01acc3e5-0af7-49e6-ad7a-a760bd12dc40\templates\knowledge.generation.plain.liquid">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="data\agents\6745151e-6d46-4a02-8de4-1c4f21c7da95\functions\util-knowledge-knowledge_retrieval.json">
<Content Include="data\agents\6745151e-6d46-4a02-8de4-1c4f21c7da95\functions\util-kg-knowledge_retrieval.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="data\agents\6745151e-6d46-4a02-8de4-1c4f21c7da95\templates\util-knowledge-knowledge_retrieval.fn.liquid">
<Content Include="data\agents\6745151e-6d46-4a02-8de4-1c4f21c7da95\templates\util-kg-knowledge_retrieval.fn.liquid">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>

View file

@ -2,5 +2,5 @@ namespace BotSharp.Plugin.KnowledgeBase.Enum;
public class UtilityName
{
public const string KnowledgeRetrieval = "knowledge.knowledge-retrieval";
public const string KnowledgeRetrieval = "kg.knowledge-base";
}

View file

@ -2,7 +2,7 @@ namespace BotSharp.Plugin.KnowledgeBase.Functions;
public class KnowledgeRetrievalFn : IFunctionCallback
{
public string Name => "util-knowledge-knowledge_retrieval";
public string Name => "util-kg-knowledge_retrieval";
public string Indication => "searching my brain";

View file

@ -2,7 +2,7 @@ namespace BotSharp.Plugin.KnowledgeBase.Hooks;
public class KnowledgeBaseUtilityHook : IAgentUtilityHook
{
private static string PREFIX = "util-knowledge-";
private static string PREFIX = "util-kg-";
private static string KNOWLEDGE_RETRIEVAL_FN = $"{PREFIX}knowledge_retrieval";
public void AddUtilities(List<AgentUtility> utilities)

View file

@ -40,6 +40,20 @@ public class KnowledgeHook : IKnowledgeHook
var result = await _knowledgeService.SearchGraphKnowledge(text, options);
results.Add(result.Result);
}
else if (knowledgeBase.Type == "document")
{
var options = new VectorSearchOptions
{
Fields = null,
Limit = 5,
Confidence = 0.25f,
WithVector = true
};
var result = await _knowledgeService.SearchVectorKnowledge(text, knowledgeBase.Name, options);
results.AddRange(result.Where(x => x.Data != null && x.Data.ContainsKey("text"))
.Select(x => x.Data["text"].ToString())
.Where(x => x != null)!);
}
else
{
var options = new VectorSearchOptions

View file

@ -1,5 +1,5 @@
{
"name": "util-knowledge-knowledge_retrieval",
"name": "util-kg-knowledge_retrieval",
"description": "Retrieve related domain knowledge to handle user request",
"parameters": {
"type": "object",

View file

@ -1,3 +1,3 @@
Call function util-knowledge-knowledge_retrieval to retrieve related domain knowledge to handle user request.
Call function util-kg-knowledge_retrieval to retrieve related domain knowledge to handle user request.
You must retrieve existing KnowledgeBase to get prerequisite informations before you writing SQL query;
You must retrieve existing API specification from KnowledgeBase before calling a Web API;