Koble dialog LUIS å danne dialog og kartlegge de riktige feltene

stemmer
4

Jeg jobber med en bot hvor du kan bestille en flyreise. Jeg jobber med den nyeste versjonen av bot rammeverk (1.1), som foreslo foreslått her.

Du kan si ting som bestille meg en flytur fra Amsterdam til Boston neste mandag.

Nå, jeg konfigurert LUIS å svare med den hensikt BookFlight og i min bot jeg har gjort en LuisDialog og FormDialog slik:

[LuisIntent(BookFlight)]
public async Task Process(IDialogContext context, LuisResult result)
{
    var form = new BookFlightForm();

    var entities = new List<EntityRecommendation>(result.Entities);

    var formDialog = new FormDialog<BookFlightForm>(form, BuildForm, FormOptions.PromptInStart, entities);

    context.Call(formDialog, OnComplete);
}

[Serializable]
public class BookFlightForm
{
    [Prompt(From which city do you want to leave from? {||}, AllowDefault = BoolDefault.True)]
    [Describe(Location, example: Amsterdam)]
    public string LocationFrom { get; set; }

    [Prompt(To which city you want to fly to? {||}, AllowDefault = BoolDefault.True)]
    [Describe(Location, example: Las Vegas)]

    public string LocationTo { get; set; }

    [Prompt(When do you want to leave? {||}, AllowDefault = BoolDefault.True)]
    [Describe(Departure date, example: tomorrow, next week or any date like 12-06-2016)]
    public DateTime DepartureDate { get; set; }
}

Jeg får følgende svar fra Luis:

{
    intent: BookFlight,
    score: 0.987034,
    actions: [
        {
            triggered: true,
            name: BookFlight,
            parameters: [
            {
                name: locationFrom,
                required: true,
                value: [
                    {
                        entity: amsterdam,
                        type: Flight::LocationFrom,
                        score: 0.8548711
                    }
                ]
            },
            {
                name: locationTo,
                required: true,
                value: [
                    {
                        entity: boston,
                        type: Flight::LocationTo,
                        score: 0.962294638
                    }
                ]
            },
            {
                name: departureDate,
                required: true,
                value: [
                    {
                        entity: next monday,
                        type: builtin.datetime.date,
                        resolution: 
                            {
                                date: 2016-05-09
                            }
                        }
                    ]
                }
            ]
        }
    ]
}

Problemet

Skjemaet er ikke fylt ut med de riktige verdier fra LUIS. Så boten vil be deg om å fylle ut til avreisestedet, dato og sted du ønsker å fly til. Men dette er allerede beskrevet i LUIS.

Det jeg har prøvd så langt

  1. Laget en ny app uten foretakets barn, men med de riktige enhetsnavn, ble ingen verdier fylt ut skjemaet.
  2. Omdøpt under kjøring de 'typer' fra foretaket fra 'Flight :: plasseringen' til 'plasseringen', etc. Dette fungerte, men det fungerte ikke for datoen.
  3. Forhåndsutfylt den nye forekomsten av 'BookFlightForm' med de rette verdiene, men boten vil fortsatt be om verdiene av datoen.

Så jeg er litt rådvill hvordan å fikse dette. Sa jeg konfigurere LUIS riktig? Må jeg konfigurere EntityRecognizer? En LUIS enhet attributt ville være hyggelig.

Håper du kan hjelpe meg!

Publisert på 03/05/2016 klokken 07:48
kilden bruker
På andre språk...                            


1 svar

stemmer
2

Din Luis entitetstype skal samsvare med feltnavn i skjemaet. Hvis du endrer "type": "Flight::LocationFrom"til "type": "LocationFrom"for Luis enhet, bør skjemaet flyt matche enhet med LocationFromfelt i skjemaet og fylle det på riktig måte.

Svarte 04/05/2016 kl. 21:22
kilden bruker

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