C# verbot 5 sdk-加载知识库
我正在寻求任何使用verbot sdk的人的帮助 我正在制作一个程序,我想使用LearnedKnowledge.vkb、Teacher.vkb和任何标准机器人(例如julia)。以前使用过这个的人都会知道,根据教师中的规则,你基本上可以对机器人不理解的事情写下响应,并对其进行动态训练 我计划使用语音识别和文本到语音,但我现在的问题是,在加载知识库之后,我似乎无法从机器人那里得到任何响应 以下是我拥有的:来自verbots.sourceforge.net的Verbot5Library.dll(我还获得了编辑器和播放器,以确保文件正常工作)。在我的程序中,我将变量设置为:C# verbot 5 sdk-加载知识库,c#,C#,我正在寻求任何使用verbot sdk的人的帮助 我正在制作一个程序,我想使用LearnedKnowledge.vkb、Teacher.vkb和任何标准机器人(例如julia)。以前使用过这个的人都会知道,根据教师中的规则,你基本上可以对机器人不理解的事情写下响应,并对其进行动态训练 我计划使用语音识别和文本到语音,但我现在的问题是,在加载知识库之后,我似乎无法从机器人那里得到任何响应 以下是我拥有的:来自verbots.sourceforge.net的Verbot5Library.dll(我还
Verbot5Engine verbot = new Verbot5Engine();
KnowledgeBase kb = new KnowledgeBase();
KnowledgeBaseItem kbi = new KnowledgeBaseItem();
State state = new State();
XMLToolbox xmlToolboxKB = new XMLToolbox(typeof(KnowledgeBase));
然后初始化verbot引擎并加载kbs:
// using the xmlToolboxKB method I saw in this forum: http://www.verbots.com/forums/viewtopic.php?t=2984
kbi.Fullpath = @"C:\\[full path to kb...]\\";
kbi.Filename = "LearnedKnowledge.vkb";
kb = (KnowledgeBase)xmlToolboxKB.LoadXML(kbi.Fullpath + kbi.Filename);
verbot.AddKnowledgeBase(kb, kbi);
kbi.Filename = "julia.vkb";
kb = (KnowledgeBase)xmlToolboxKB.LoadXML(kbi.Fullpath + kbi.Filename);
verbot.AddKnowledgeBase(kb, kbi);
//trying to use LoadKnowledgeBase and LoadCompiledKnowledgeBase methods: verbot.LoadKnowledgeBase("C:\\[full path to kb...]\\LearnedKnowledge.vkb");
//verbot.LoadCompiledKnowledgeBase("C:\\[full path...]\\julia.ckb");
//verbot.LoadCompiledKnowledgeBase("C:\\[full path...]\\Teacher.ckb");
// set up state
state.CurrentKBs.Add("C:\\[full path...]\\LearnedKnowledge.vkb");
state.CurrentKBs.Add("C:\\[full path...]\\Teacher.vkb");
state.CurrentKBs.Add("C:\\[full path...]\\julia.ckb");
最后,我尝试从verbot引擎获取响应:
Reply reply = verbot.GetReply("hello", state);
if (reply != null)
Console.WriteLine(reply.AgentText);
else
Console.WriteLine("No reply found.");
我知道julia对“hello”有回应,因为我已经和编辑一起测试过了。但它所返回的只是“找不到回复”。此代码取自SDK下载中的示例控制台程序(因为可用文档很少)。这就是为什么我需要熟悉SDK的人提供一些指导
我没有正确加载KBs吗?它们是否都需要编译(.ckb)而不是XML文件(.vkb)?我使用了verbot.OnKnowledgeBaseLoadError事件处理程序,没有收到任何错误。我甚至删除了加载教师所需的资源文件Default.vsn,并且在尝试加载它时会抛出一个错误,因此我非常确定它加载正确。那么为什么我总是得到“找不到回复”解决了:看另一个用户似乎也有同样的问题:建议是先编译vkb,然后加载,这对我也不起作用。不过,动态使用规则是可行的,所以我认为LoadKnowledgeBase方法中一定有错误