【发布时间】:2017-06-15 11:55:42
【问题描述】:
我们正在使用 Microsoft 机器人框架开发一个库机器人。
我们有
Intent : BookSearch
Entiry : BookName, BookAuthor
当我搜索“我需要一本 java 书”时,它知道“java”是一个实体,并为 java 书提供了其他详细信息。
我的问题是,一旦我收到了 java book 的详细信息,我想发行这本书,所以再次,当我们问“Issue me book Java”时,这里会发生冲突,并且会再次显示 java book 的详细信息,就像它正在运行一样在循环中。
请在这种情况下帮助我们,我们如何确定问题中的不同上下文?
代码:
[LuisIntent("BookSearch")]
public async Task BookSearch(IDialogContext context, LuisResult result)
{
if (result.Entities.Any())
{
DBConnect dbConnect = new DBConnect();
string combindedString = string.Empty;
string mysqlQuery = string.Empty;
foreach (var item in result.Entities)
{
switch (item.Type.ToString())
{
case "BookAuthor":
break;
case "BookName":
break;
case "BookIssue":
break;
default:
break;
}
}
}
else
{
await context.PostAsync("Which book are you searching.");
context.Wait(MessageReceived);
}
}
这里 BookName 和 BookIssue 是实体, 因此,当我们问“我需要 java book”时 => 它应该进入 BookName 实体以提供书籍详细信息。 当我们问“Issue me java book”时 => 应该进入 BookIssue 实体处理发行手续。
提前致谢
【问题讨论】:
-
一个代码示例可以帮助我们。
-
@Svekke,我已编辑问题以添加代码
-
@PareshBijarane 你能将代码发布到应该发行图书的 Intent 中吗?
标签: bots azure-language-understanding