Integrering LUIS med FormFlow

stemmer
2

Jeg har laget en bot, har en FormFlow i den. Nå hvis du skriver jeg ønsker å lansere et produkt, vil LUIS fortelle hvilke dialogboksen den har å gå til:

    internal static IDialog<AssesmentHelper> CreateProduct()
            {
                return Chain.From(() => FormDialog.FromForm(AssesmentHelper.BuildForm))
                    .Do(async (context, profileForm) =>
                    {
                        try
                        {
                            var completed = await profileForm;

                        }
                        catch (FormCanceledException<AssesmentHelper> e)
                        {
                            string reply;
                            if (e.InnerException == null)
                            {
                                reply = $You quit on {e.Last}--maybe you can finish next time!;
                            }
                            else
                            {
                                reply = Responses.ShortCircuit;
                            }
                            await context.PostAsync(reply);
                        }
                    });
            }

public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
        { 
stLuis = await LuisHelper.ParseUserInput(activity.Text);
    switch (stLuis.topScoringIntent.intent)
    {

         case CreateProduct:
              await Conversation.SendAsync(activity, CreateProduct);
              break;

         case EditProduct:
               await Conversation.SendAsync(activity, EditProduct);
               break;

           case None:

               break;

            default:
               break;
    }
}

Nå, når det kommer inn dialog, spør den brukeren å velge tall:

Velg tall:

  1. Azure
  2. Windows

Nå hvis jeg svarer 1,2. Luis returnerer den som ingen hensikt, så mitt budskap ikke går til den tilsvarende dialogen. Det går alltid til Ingen sak.

Koden for dialog er:

 public static IForm<AssesmentHelper> BuildForm()
        {
            return new FormBuilder<AssesmentHelper>()
                    .Message(Responses.NumberSelection)
                    .Field(nameof(Program))
                    .Field(nameof(Product))
                    .Build();
        }

Enum for program og produkt:

[Serializable]
    public enum Program
    {
        None = 0,
        A = 1,
     };

        [Serializable]
        public enum Product
        {
            None = 0,
            Azure = 1,
            Windows = 2
        };

Så snart jeg går inn i denne dialogen, blir jeg bedt om å velge nummer for å velge program. Nå hvis jeg velger 1,2. Luis returnerer den som ingen hensikt. Så case Ingen, er henrettet.

Det jeg ønsker er, omdirigere kontrollen til samme dialogen. Jeg har lignende dialog for Redigere også. Det er derfor jeg ikke kan trene meg luis app å forstå tall som Product Intent. Ellers når jeg velger nummer for Rediger produkt, vil det gå til annen sak.

Tidligere var det å identifisere riktige hensikter eller annen måte, men i dag jeg republiseres min Luis app og det stoppet identifisere.

Publisert på 15/11/2016 klokken 13:11
kilden bruker
På andre språk...                            

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