Ring LUIS utenfor MessageController og etter autentisering

stemmer
1

Arbeid på en Bot som godkjenner bruk ADAL (AuthBot) og deretter etter Auth tar brukeren inngang og sender til LUIS for å samle hensikter / enheter. Jeg bruker det som kom tilbake for å bygge en URI som jeg sender til Sharepoint Online REST API. Hvis brukerundersøkelser er gyldig, returnerer Sharepoint JSON at jeg analysere og gå tilbake til brukeren.

Problemet er å få brukerundersøkelser til min LUIS klassen etter godkjenning. Jeg kaller AuthBot ActionDialog fra min MessageController.

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

Innenfor ActionDialog, jeg er ikke sikker på hvordan å flytte flytte melding til LUIS Class

   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.                
        }
    }    

Den LUIS Class er standard, og ser slik ut:

//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>

Noen ideer? Takk.

Publisert på 24/06/2016 klokken 09:46
kilden bruker
På andre språk...                            


1 svar

stemmer
0

Jeg antar at du bruker AuthBot (ved å se på koden).

Hva du trenger å legge til er følgende:

 await base.MessageReceived(context, item);

Det vil bare passere meldingen til MessageReceived gjennomføring LUISDialog er; som vil utstede en forespørsel til LUIS å forstå hvilke hensikter skal bli henrettet.

Svarte 24/06/2016 kl. 13:09
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more