9. nodaļa: Kā izveidot Google mājas lietotni, izmantojot DialogFlow | Izpilde caur iekšējo redaktoru

Tagad, kad esam uzstādījuši vidi, izveidojuši nepieciešamo aģentu, nodomus un entītiju un testējuši tos. Pārcelsimies uz izpildes moduli, kurā mēs izmantosim iekšējo redaktoru, lai izveidotu atbilstošu atbildi, pamatojoties uz entītiju (QuoteType)

Sērijas saturs:

6. nodaļa: Google mājas lietotnes apmācība: pārskats

7. nodaļa: Google mājas lietotnes apmācība: sarunu plānošana

8. nodaļa: Google mājas lietotnes apmācība: vides iestatīšana

9. nodaļa: Google mājas lietotnes apmācība: piepildīšana, izmantojot iekšējo redaktoru

10. nodaļa: Google mājas lietotnes apmācība: piepildīšana, izmantojot mākoņu datu krātuvi

11. nodaļa: Google mājas lietotnes apmācība: piepildīšana, izmantojot Webhook

12. nodaļa: Google mājas lietotnes apmācība: lietotņu izvietošana

Atgādiniet un kuru lielo ainu mēs tagad risinām.

1. darbība: iespējojiet meklēšanu nolūkā LookingForQuote.

2. solis: - aizpildīšana, izmantojot iekšējo redaktoru [FireBase darbina mākonis funkcijas]

Noņemiet visu iekšējā redaktorā. Mēģināsim rakstīt no nulles vienā rindā vienlaikus. Nav ko baidīties, paliec pie manis.

Šeit iet. Pirmā rinda.

'lietot stingri';

Stingri:

“Lietojiet strikti” mērķis ir norādīt, ka kods jāizpilda “stingrā režīmā”. Izmantojot stingro režīmu, jūs, piemēram, nevarat izmantot nedeklarētus mainīgos.

Visas mūsdienu pārlūkprogrammas atbalsta “izmantojiet stingri”, izņemot Internet Explorer (IE) 9 un vecākas versijas: Kas tik un tā izmanto IE….

ok, eju tālāk.

const funkcijas = nepieciešams ('firebase-funkcijas');

Const būtībā definē kaut ko tādu, kas nemainās programmā mūžīgi. Šeit mēs importēsim Firebase funkciju moduli.

Pēc tam vēl dažus likumus, no kuriem katrs izturēsim mūsu nodomus. Šīm stīgām jāatbilst nodomu nosaukumam.

'lietot stingri';
const funkcijas = nepieciešams ('firebase-funkcijas');
const {dialogflow} = pieprasīt ('action-on-google');
const WELCOME_INTENT = 'Noklusējuma sveiciena nodoms';
const FALLBACK_INTENT = 'Noklusējuma atkāpšanās nodoms';
const LOOKING_FOR_QUOTE_INTENT = 'LookingForQuote';

Tagad mēs glabāsim dialoglodziņa objektu const, ko sauc par lietotni.

const app = dialogflow ();

Tālāk mēs definēsim nodomus un izveidosim “konv” objektu, kas izmantos ask funkciju sarunai ar lietotāju.

app.intent (WELCOME_INTENT, (reklāmguv.) => {
    conv.ask ("Laipni lūdzam Dr.Motivation! Lūdziet citātu par draudzību vai romantiku vai motivāciju");
});

Atcerieties iespējot webhook izpildes sadaļā “noklusējuma sveiciena nodoms”.

līdzīgi mēs definēsim arī pārējos divus nodomus..neuztraucieties par to, ka tas ir vienkārši, jo mūsu mērķis ir vispirms panākt, lai šī izpilde notiktu bez kļūdām.

viens rezerves nolūkam

app.intent (FALLBACK_INTENT, (reklāmguv.) => {
    conv.ask ("Beidziet murmināt un runājiet");
});

viens mūsu pasūtījuma nolūkam

app.intent (LOOKING_FOR_QUOTE_INTENT, (reklāmguv.) => {
     conv.ask ("Draugi ir terapeiti, mēs varam dzert ar");
});

Visbeidzot, mēs atgriezīsimies dialoglodziņa objekta lietotnē, kad izpildīšana tiek izsaukta

export.dialogflowFirebaseFulfillment = function.https.onRequest (app);

pilns kods izskatās šādi

'lietot stingri';
 
const funkcijas = nepieciešams ('firebase-funkcijas');
const {dialogflow} = pieprasīt ('action-on-google');
const WELCOME_INTENT = 'Noklusējuma sveiciena nodoms';
const FALLBACK_INTENT = 'Noklusējuma atkāpšanās nodoms';
const LOOKING_FOR_QUOTE_INTENT = 'LookingForQuote';
const app = dialogflow ();
app.intent (WELCOME_INTENT, (reklāmguv.) => {
    conv.ask ("Laipni lūdzam Dr.Motivation! Lūdziet citātu par draudzību vai romantiku vai motivāciju");
});
app.intent (FALLBACK_INTENT, (reklāmguv.) => {
    conv.ask ("Beidziet murmināt un runājiet");
});
app.intent (LOOKING_FOR_QUOTE_INTENT, (reklāmguv.) => {
     conv.ask ("Draugi ir terapeiti, mēs varam dzert ar");
});
export.dialogflowFirebaseFulfillment = function.https.onRequest (app);

3. solis: izvietojiet funkciju

4. solis: pārbaudiet funkciju

pārbaudiet atbildi par izpildi, noklikšķinot uz “Diagnostikas informācija” .Jūs redzēsit citātu, ko mēs kodā pieminējām tagad.

Izmēģināsim noklusējuma dublējumu, neļaujot to izpildīt caur webhook un ar to.

Bez Webhook iespējots:

Diagnostikas informācijai ir tikai viena RAW API atbilde

Tagad, ļaujiet mums rīkoties un ļaujiet to izpildīt, izmantojot tīmekļa vietni, lai izveidotu rezerves variantu .. ja jūs to vēl neesat izdarījis.

izlaide:

Tagad, kad Webhook zvans ir iespējots, mēs saņemam arī atbildi par izpildi.

5. darbība. Pievienosim kodam vairāk funkcionalitātes.

Tā kā par parametru mēs saņemam QuoteType, mēģināsim to izmantot mūsu kodā, izmantojot vienkāršus, ja cits paziņojumus.

vispirms definējiet entītiju QuoteType

const QUOTE_TYPE_ENTITY = 'QuoteType';

pēc tam izgūstiet parametra vērtību, saglabājiet to mainīgā lielumā… salīdziniet to ar vērtībām un katru reizi piespiediet dažādas pēdiņas.

app.intent (LOOKING_FOR_QUOTE_INTENT, (reklāmguv.) => {
     const quote_type = conv.parameters (QUOTE_TYPE_ENTITY) .toLowerCase ();
     if (quote_type == "motivējošs") {
     conv.ask ("Vai nav slinks ass");
     } cits, ja (quote_type == "ystäship") {
     conv.ask ("Draugi ir terapeiti, mēs varam dzert ar");
     } cits, ja (quote_type == "romantisks") {
     conv.ask ("kaut kas romantisks");
     } cits {
         conv.ask ("atkāpies no pakaļas un strādā, nevis runā ar mani");
     }
});

Pārbaudiet to:

Varat arī pārbaudīt Firebase konsoli, vai nav kļūdu žurnālu.

dodieties uz savu ugunsdzēsības bāzes konsoli .. vai zem inline redaktora noklikšķiniet uz saites

ok..tā conv.parameters nav funkcija, bet gan objekta masīvs, tāpēc mainiet () uz []

reklāmparametri (QUOTE_TYPE_ENTITY)

uz

conv.parameters [QUOTE_TYPE_ENTITY]

Galīgais kods ir norādīts zemāk:

'lietot stingri';
 
const funkcijas = nepieciešams ('firebase-funkcijas');
const {dialogflow} = pieprasīt ('action-on-google');
const WELCOME_INTENT = 'Noklusējuma sveiciena nodoms';
const FALLBACK_INTENT = 'Noklusējuma atkāpšanās nodoms';
const LOOKING_FOR_QUOTE_INTENT = 'LookingForQuote';
const QUOTE_TYPE_ENTITY = 'QuoteType';
const app = dialogflow ();
app.intent (WELCOME_INTENT, (reklāmguv.) => {
    conv.ask ("Laipni lūdzam Dr.Motivation! Lūdziet citātu par draudzību vai romantiku vai motivāciju");
});
app.intent (FALLBACK_INTENT, (reklāmguv.) => {
    conv.ask ("Beidziet murmināt un runājiet");
});
app.intent (LOOKING_FOR_QUOTE_INTENT, (reklāmguv.) => {
     const quote_type = conv.parameters [QUOTE_TYPE_ENTITY] .toLowerCase ();
     if (quote_type == "motivējošs") {
     conv.ask ("Vai nav slinks ass");
     } cits, ja (quote_type == "ystäship") {
     conv.ask ("Draugi ir terapeiti, mēs varam dzert ar");
     } cits, ja (quote_type == "romantisks") {
     conv.ask ("kaut kas romantisks");
     } cits {
         conv.ask ("atkāpies no pakaļas un strādā, nevis runā ar mani");
     }
});
export.dialogflowFirebaseFulfillment = function.https.onRequest (app);

6. darbība: izvietošana un pārbaude:

Acīmredzot tā nevar būt galīgā versija, ja jums tas jāpadara patiešām dinamisks, jums tas jāpieslēdz datu bāzei, lai iegūtu datus, pamatojoties uz lietotāja ievadīto informāciju.

Nākamajā nodaļā mēs izmantosim Google mākoņa datu krātuvi, kas ir datu bāzes veids, lai no tiem iegūtu datus un apkalpotu cenas mūsu lietotājiem.

Šis stāsts tiek publicēts Medium lielākajā uzņēmējdarbības publikācijā The Startup, kam seko 358 974 cilvēki.

Abonējiet, lai šeit saņemtu mūsu labākos stāstus.