Poglavlje 9: Kako izraditi Google početnu aplikaciju s DialogFlow | Izvršavanje putem Inline Editora

Sad kad smo postavili okruženje, stvorili potrebne agente, namjere i entitet i testirali ih. Prijeđimo na modul ispunjenja u kojem ćemo pomoću inline uređivača stvoriti relevantni odgovor na temelju entiteta (QuoteType)

Sadržaj serije:

Poglavlje 6: Vodič za Google početnu aplikaciju: pregled

Poglavlje 7: Vodič za Google početnu aplikaciju: Dizajn razgovora

Poglavlje 8: Vodič za Google početnu aplikaciju: Postavljanje okoliša

Poglavlje 9: Vodič za Google Home App: Ispunjenje putem Inline Editora

Poglavlje 10: Vodič za Google Home App: Ispunjenje putem Cloud Datastore-a

Poglavlje 11: Vodič za Google početnu aplikaciju: Ispunjenje putem Webhooka

Poglavlje 12: Vodič za Google početnu aplikaciju: Uvođenje aplikacije

Snimite i koji je dio velike slike kojom se bavimo sada.

Korak 1: Omogućite ispunjavanje namjere LookingForQuote.

Korak 2: - Dovršavanje putem inline uređivača [Pokretanje Cloud funkcija za Firebase]

Uklonite sve iz umetnutog uređivača. Pokušajmo pisati od nule jedan red po jedan. Nema čega se bojati, ostani sa mnom.

Evo. Prvi redak.

'koristiti strogi';

Strog:

Svrha "stroge uporabe" je navesti da se kod treba izvoditi u "strogom načinu". S strogim načinom rada, na primjer, ne možete koristiti neprijavljene varijable.

Svi moderni preglednici podržavaju "strogu upotrebu", osim Internet Explorera (IE) 9 i novije verzije: Tko svejedno koristi IE ... bez veze ...

ok idemo dalje.

const funkcije = zahtijevaju ('firebase-funkcije');

Const u osnovi definira nešto što to neće zauvijek promijeniti u programu. Ovdje ćemo uvoziti modul funkcija vatrogasne baze.

Zatim još nekoliko nabora koji će održati naše namjere. Ti se nizovi trebaju podudarati s nazivom namjere.

'koristiti strogi';
const funkcije = zahtijevaju ('firebase-funkcije');
const {dialogflow} = zahtjev ('akcije-na-googleu');
const WELCOME_INTENT = 'Zadana namjera dobrodošlice';
const FALLBACK_INTENT = 'Zadana povratna namjera';
const LOOKING_FOR_QUOTE_INTENT = 'LookingForQuote';

...

Sad ćemo spremiti objekt dijaloškog toka u const koji se zove aplikacija.

const app = dialogflow ();

Zatim ćemo definirati namjere i izrađivati ​​„conv“ objekt koji će pomoću funkcije upita razgovarati s korisnikom.

app.intent (WELCOME_INTENT, (conv) => {
    conv.ask ("dobrodošli u Dr.Motivation! Zatražite citat o prijateljstvu ili romantiki ili motivaciji");
});

Ne zaboravite omogućiti webhook u odjeljku ispunjenja u okviru "zadane namjere dobrodošlice".

slično ćemo definirati i druge dvije namjere. Ne brinite o tome da je ovo jednostavno, jer je naš cilj da ovo ispunjenje provede bez grešaka.

jedan za rezervnu namjeru

app.intent (FALLBACK_INTENT, (conv) => {
    conv.ask ("Prestani mrmljati i govori gore");
});

jedan za našu prilagođenu namjeru

app.intent (LOOKING_FOR_QUOTE_INTENT, (conv) => {
     conv.ask ("Prijatelji su terapeuti, možemo piti s");
});

napokon ćemo vratiti aplikaciju objektnog dijaloga kada se ispunjenje pozove

export.dialogflowFirebaseFulfillment = funkcije.https.onRequest (aplikacija);

cijeli kod izgleda ovako

'koristiti strogi';
 
const funkcije = zahtijevaju ('firebase-funkcije');
const {dialogflow} = zahtjev ('akcije-na-googleu');
const WELCOME_INTENT = 'Zadana namjera dobrodošlice';
const FALLBACK_INTENT = 'Zadana povratna namjera';
const LOOKING_FOR_QUOTE_INTENT = 'LookingForQuote';
const app = dialogflow ();
app.intent (WELCOME_INTENT, (conv) => {
    conv.ask ("dobrodošli u Dr.Motivation! Zatražite citat o prijateljstvu ili romantiki ili motivaciji");
});
app.intent (FALLBACK_INTENT, (conv) => {
    conv.ask ("Prestani mrmljati i govori gore");
});
app.intent (LOOKING_FOR_QUOTE_INTENT, (conv) => {
     conv.ask ("Prijatelji su terapeuti, možemo piti s");
});
export.dialogflowFirebaseFulfillment = funkcije.https.onRequest (aplikacija);

Korak 3: Ugradite funkciju

Korak 4: Ispitajte funkciju

potražite odgovor ispunjavanja klikom na

Pokušajmo zadani povratni postupak bez omogućavanja ispunjenja putem webhoka i s njim.

Bez omogućenog Webhook-a:

Dijagnostičke informacije u osnovi imaju samo jedan RAW API odgovor

E sad, idemo naprijed i omogućimo ispunjenje putem webhooka za rezervnu namjeru ... ako to već niste učinili.

izlaz:

sada kada je omogućen poziv putem webhooka, dobivamo i odgovor na ispunjenje.

5. korak: Dodaj kôd više funkcionalnosti.

Budući da dobivamo QuoteType kao parametar, pokušajmo to upotrijebiti u okviru našeg koda putem jednostavnih If if izjava.

najprije definirajte entitet QuoteType

const QUOTE_TYPE_ENTITY = 'QuoteType';

zatim izvadite vrijednost parametra, pohranite ga u varijablu ... uskladite ga s vrijednostima i svaki put gurajte različite navodnike.

app.intent (LOOKING_FOR_QUOTE_INTENT, (conv) => {
     const quote_type = conv.parameters (QUOTE_TYPE_ENTITY) .toLowerCase ();
     ako je (quote_type == "motivacijski") {
     conv.ask ("Ne budi lijen magarca");
     } else if (quote_type == "bratstvo") {
     conv.ask ("Prijatelji su terapeuti, možemo piti s");
     } else if (quote_type == "romantična") {
     conv.ask ("nešto romantično");
     } else {
         conv.ask ("skinite se s dupeta i radite umjesto da razgovarate sa mnom");
     }
});

Isprobajte:

Možete provjeriti i konzolu vatrogasne baze o evidencijama pogrešaka.

idite na vašu baznu konzolu. Ili pod inline uređivačem kliknite vezu

ok..so conv.parameters nije funkcija, već niz objekata, pa promijenite () u []

conv.parameters (QUOTE_TYPE_ENTITY)

do

conv.parameters [QUOTE_TYPE_ENTITY]

Konačni kôd dan je u nastavku:

'koristiti strogi';
 
const funkcije = zahtijevaju ('firebase-funkcije');
const {dialogflow} = zahtjev ('akcije-na-googleu');
const WELCOME_INTENT = 'Zadana namjera dobrodošlice';
const FALLBACK_INTENT = 'Zadana povratna namjera';
const LOOKING_FOR_QUOTE_INTENT = 'LookingForQuote';
const QUOTE_TYPE_ENTITY = 'QuoteType';
const app = dialogflow ();
app.intent (WELCOME_INTENT, (conv) => {
    conv.ask ("dobrodošli u Dr.Motivation! Zatražite citat o prijateljstvu ili romantiki ili motivaciji");
});
app.intent (FALLBACK_INTENT, (conv) => {
    conv.ask ("Prestani mrmljati i govori gore");
});
app.intent (LOOKING_FOR_QUOTE_INTENT, (conv) => {
     const quote_type = conv.parameters [QUOTE_TYPE_ENTITY] .toLowerCase ();
     ako je (quote_type == "motivacijski") {
     conv.ask ("Ne budi lijen magarca");
     } else if (quote_type == "bratstvo") {
     conv.ask ("Prijatelji su terapeuti, možemo piti s");
     } else if (quote_type == "romantična") {
     conv.ask ("nešto romantično");
     } else {
         conv.ask ("skinite se s dupeta i radite, umjesto da razgovarate sa mnom");
     }
});
export.dialogflowFirebaseFulfillment = funkcije.https.onRequest (aplikacija);

6. korak: implementacija i testiranje:

Očito, ovo ne može biti konačna verzija, ako morate učiniti stvarno dinamičnim morate ga povezati s bazom podataka kako biste izvukli podatke na temelju korisničkog unosa.

U sljedećem ćemo poglavlju koristiti Googleovu podatkovnu trgovinu u oblaku koja je vrsta baze podataka da bismo izvukli podatke iz njih i poslužili citate našim korisnicima.

Ova priča objavljena je u najvećoj poduzetničkoj publikaciji The Startup, koju prati 358,974 i više ljudi.

Pretplatite se za primanje naših najboljih priča ovdje.