簡體   English   中英

如何在Microsoft Bot Framework的LuisDialog中獲取LUIS上下文ID

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM