Passerer i LUIS enheter for å binde seg til dialog tilstand

stemmer
0

Kan noen hjelpe meg å tolke hva pokker betyr dette fra bot rammeverk documention:

Du kan også passere i LUIS enheter for å binde seg til staten. Hvis EntityRecommendation.Type er en bane til et felt i C # klasse da EntityRecommendation.Entity vil bli gått gjennom gjenkjenneren å binde seg til feltet. Akkurat som utgangstilstand, vil et hvilket som helst trinn for å fylle i det felt utelates.

Når jeg kaller dialog mitt jeg passere i min LuisResult resultEntities samlingen slik:

context.Call(new FormDialog<ItemSearch>( new ItemSearch(), ItemSearch.BuildForm, options: FormOptions.PromptInStart,entities:result.Entities), null);

Innenfor disse enhetene er minst en som kart både navn og type til en offentlig eiendom i dialogboksen min men staten aldri blir fylt. Hva er det jeg mangler?

TIA.

Publisert på 13/04/2016 klokken 02:02
kilden bruker
På andre språk...                            


2 svar

stemmer
0

Det synes også at det er et problem med bestått Entities i. Det ser ut til å fungere hvis eiendommen du kartlegge til en Enum (som per PizzaBot prøve). Men hvis offentlig eiendom er en streng, betyr det ikke kart. Jeg er ikke sikker på om andre typer.

Se her https://github.com/Microsoft/BotBuilder/issues/151

Svarte 20/04/2016 kl. 12:17
kilden bruker

stemmer
0

Du kan finne et eksempel på dette i PizzaOrderDialog . hvis du ser på FormDialog implementering, er det ved hjelp av entity.type å kartlegge vedtatt i foretaket anbefaling til et trinn i form. Da de detekterte enheter vil bli gitt som en inngang til det trinn i skjemaet.

Her er et eksempel på hvordan skjemaet kan hoppe over den type steg basert på de oppdagede enheter av Luis modell i pizza form:

        var entities = new List<EntityRecommendation>(result.Entities);
        if (!entities.Any((entity) => entity.Type == "Kind"))
        {
            // Infer kind
            foreach (var entity in result.Entities)
            {
                string kind = null;
                switch (entity.Type)
                {
                    case "Signature": kind = "Signature"; break;
                    case "GourmetDelite": kind = "Gourmet delite"; break;
                    case "Stuffed": kind = "stuffed"; break;
                    default:
                        if (entity.Type.StartsWith("BYO")) kind = "byo";
                        break;
                }
                if (kind != null)
                {
                    entities.Add(new EntityRecommendation(type: "Kind") { Entity = kind });
                    break;
                }
            }
        }

        var pizzaForm = new FormDialog<PizzaOrder>(new PizzaOrder(), this.MakePizzaForm, FormOptions.PromptInStart, entities);
Svarte 15/04/2016 kl. 22:59
kilden bruker

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