1

ADAL (AuthBot) を使用して認証し、その後認証を行うボットで作業すると、ユーザー入力が取得され、LUIS に送信されてインテント/エンティティが収集されます。返されたものを使用して、Sharepoint Online REST API に送信する URI を作成します。ユーザー入力が有効な場合、Sharepoint は JSON を返し、それを解析してユーザーに返します。

問題は、認証後に LUIS クラスへのユーザー入力を取得することです。MessageController から AuthBot ActionDialog を呼び出します。

        if (message.Type == "Message")
        {
            return await Conversation.SendAsync(message, () => new ActionDialog());
        }           

ActionDialog 内で、メッセージを LUIS クラスに移動する方法がわかりません

   public async Task MessageReceivedAsync(IDialogContext context, IAwaitable<Message> item)
    {
        var message = await item;
        if (message.Text == "logon")
        {
            if (string.IsNullOrEmpty(await context.GetAccessToken(ConfigurationManager.AppSettings["ActiveDirectory.ResourceId"])))
            {
                await context.Forward(new AzureAuthDialog(ConfigurationManager.AppSettings["ActiveDirectory.ResourceId"]), this.ResumeAfterAuth, message, CancellationToken.None);
            }
            else
            {
                context.Wait(MessageReceivedAsync);
            }
        }
        else if (string.IsNullOrEmpty(await context.GetAccessToken(ConfigurationManager.AppSettings["ActiveDirectory.ResourceId"])))
        {
            await context.Forward(new AzureAuthDialog(ConfigurationManager.AppSettings["ActiveDirectory.ResourceId"]), this.ResumeAfterAuth, message, CancellationToken.None);
        }
        else
        {
            //this is where I want to send the next user input from bot to LUIS class.                
        }
    }    

LUIS クラスは標準で、次のようになります。

//Define the LuisModel that will be used.  The LuisModel JSON file can be found at ~/json/letseat.json
[LuisModel("ModelID", "ModelSecret")]
[Serializable]
public class LuisDialog : LuisDialog<object>

何か案は?ありがとう。

4

1 に答える 1

0

(コードを見て) AuthBotを使用していると思います。

追加する必要があるのは次のとおりです。

 await base.MessageReceived(context, item);

これは、メッセージを LUISDialog の MessageReceived 実装に渡すだけです。これにより、どのインテントを実行する必要があるかを理解するために、LUIS にクエリが発行されます。

于 2016-06-24T13:09:57.777 に答える