[英]How to get LUIS Context ID in LuisDialog in Microsoft Bot Framework
我正在嘗試為我的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
}
}
這就是關於API(JSON)的LUIS對話框的內容
"dialog": {
"prompt": "How many users needed?",
"parameterName": "NumberOfLicenses",
"parameterType": "number",
"contextId": "746024ff-a4eb-4f58-b014-42605a3cb757",
"status": "Question"
}
似乎您在LuisModel中使用了ActionParameters,並且如果原始消息中未提供它們,則您正在嘗試實現它們。
雖然您可以按照此處的說明進行一些“手動操作”來再次調用LUIS(不是使用上下文ID,而是模擬一條新消息),但我不建議這樣做。
相反,我鼓勵您看一下BotBuilder的開發分支(請參閱11月11日的提交),其中BotFramework團隊添加了對LUIS v2 API的支持並添加了一些全新的功能; 其中之一,我相信正是您想要的。
通過最新的更改,如果您的意圖需要參數而未提供參數,LuisDialog現在將起作用。 在這種情況下,LuisDialog將自動啟動 ,並使用您在action參數中定義的Prompt消息自動向LuisActionDialog詢問缺少的參數。
我上次檢查時尚未將其發布為NuGet軟件包。 但可能值得再次檢查。 在最壞的情況下,您可以臨時下載BotBuilder的代碼並在您的項目中引用它。
您需要在LuisModel屬性中指定API版本才能開始使用它。
[LuisModel("something", "something", LuisApiVersion.V2)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.