Hvordan integrere flere Luis modellen til bot rammeverk

stemmer
1

Jeg utvikler en bot som vil svare på brukere forespørsel til min private bruk tilfeller. Tilsvarende vil jeg gjerne gjøre det mulig bot for å svare på noen vanlige spørsmål som Weather eller retninger etc. Så jeg bygget en egen app i Luis og også prøver å bruke Pre-bygget Cortana hensikter. Smak nedenfor

[LuisModel(c413b2ef-382c-45bd-8ff0-f76dad0e2a821, 697asfc173ce6f40aca4c99e7d38assad6cad)]
public class myClass: LuisDialog<T>
{
}

Dette vil bare godta enten Cortana hensikter eller mine egne hensikter avhenger av abonnement id og nøkkel.

Hvordan kan jeg bruke både Luis modellene i min klasse? Vennligst hjelp

Publisert på 06/07/2016 klokken 11:28
kilden bruker
På andre språk...                            


2 svar

stemmer
2

Rundt 20 dager siden, de oppdatert LuisDialog å støtte flere LuisModel og ILuisService tilfeller (sjekk dette forplikte ). Endringen ble allerede lansert i nuget 1.2.4.

Svarte 06/07/2016 kl. 16:29
kilden bruker

stemmer
0

Min Bot vil svare ulike Use Cases. Så jeg må bruke flere klasser for alle hver USECASE. Bruk av denne koden er, kan vi skrive vår oppgave (anotated med Intents) i multipler klasser.

Jeg har funnet løsning ved å overstyre Handler Måte LuisDialogsom nedenfor. Min Baseformarver LuisDialogklassen. Alle andre klasser som har hensikter vil arve minBaseForm

protected override IDictionary<string, IntentActivityHandler> GetHandlersByIntent()
        {
            var classCollection = AppDomain.CurrentDomain.GetAssemblies()
                        .SelectMany(assembly => assembly.GetTypes())
                        .Where(type => type.IsSubclassOf(typeof(BaseForm)));
            List<KeyValuePair<string, IntentActivityHandler>> handler = new List<KeyValuePair<string, IntentActivityHandler>>();
            foreach (var item in classCollection)
            {
                handler.AddRange(MyLuisDialog.EnumerateHandlers(Activator.CreateInstance(item)).ToList());
            }            
            return handler.ToDictionary(kv => kv.Key, kv => kv.Value);
        }

i koden er det EnumerateHandlersmetode som er bare en kopi av den samme fra Luis Dialog SDK.

Svarte 08/09/2016 kl. 11:22
kilden bruker

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