- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试向我的 LUIS 提供查询缺少项目时所需的缺失信息。例如。
如果有人说,我想下订单。为此,我需要知道有多少用户。 https://api.projectoxford.ai/luis/v2.0/apps/ 上的 LUIS确保我正在与此查询对话时自动创建上下文 ID。
当 LUIS 对话框提示缺少内容的问题时,我如何在 Bot Framework 中获取或告知相同的内容。
这是代码
[Serializable]
[LuisModel("something", "something")]
public class SimpleLUISDialog : LuisDialog<object>
{
[LuisIntent("GetQuote")]
public async Task GetQuote(IDialogContext context, LuisResult result)
{
PromptDialog.text(context, GetChildNumberAsync, "How many Users will you be adding ?", "Sorry please try again", 2);
}
}
private async Task GetUserNumberAsync(IDialogContext context, IAwaitable<string> result)
{
// send to LUIS again for checking the entity for number of users with Context ID
}
}
这是写的是 LUIS Dialog on API (JSON)
"dialog": {
"prompt": "How many users needed?",
"parameterName": "NumberOfLicenses",
"parameterType": "number",
"contextId": "746024ff-a4eb-4f58-b014-42605a3cb757",
"status": "Question"
}
最佳答案
您似乎在 LuisModel 中使用了 ActionParameters,并且如果原始消息中未提供它们,您正在尝试实现它们。
虽然您可以按照说明进行一些“手动修改”以再次调用 LUIS here (不是使用上下文 ID,而是模拟一条新消息),我不推荐这样做。
相反,我鼓励您查看 BotBuilder 的 develop BotFramework 团队添加了对 LUIS v2 API 的支持并添加了一些全新功能的分支(参见 11 月 11 日的提交);其中之一,我相信正是您正在寻找的。
有了最新的更改,如果您的意图需要参数但未提供这些参数,LuisDialog 现在将起作用。在这种情况下,LuisDialog 将 automatically launch和一个 LuisActionDialog并使用您在操作参数中定义的提示消息向用户询问缺少的参数。
我上次检查时它还没有作为 NuGet 包发布;但可能值得再次检查。在最坏的情况下,您可以暂时下载 BotBuilder 的代码并在您的项目中引用它。
您需要在 LuisModel 属性中指定 API 版本才能开始使用它。
[LuisModel("something", "something", LuisApiVersion.V2)]
关于c# - 如何在 Microsoft Bot Framework 的 LuisDialog 中获取 LUIS 上下文 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40693987/
我是一名优秀的程序员,十分优秀!