9. peatükk: Kuidas luua DialogFlow abil Google'i kodurakendus | Täitmine otseredaktori kaudu

Nüüd, kui oleme keskkonna seadistanud, loonud vajaliku agendi, kavatsused ja olemi ning testinud neid. Liigume edasi täitmismoodulisse, kus loome sisemise redigeerija abil olemil põhineva asjakohase vastuse (QuoteType)

Sarja sisu:

6. peatükk: Google'i kodurakenduse õpetus: ülevaade

7. peatükk: Google'i kodurakenduse õpetus: vestluse kujundamine

8. peatükk: Google'i kodurakenduse õpetus: keskkonna seadistamine

9. peatükk: Google'i kodurakenduse õpetus: täitmine veebiredaktori kaudu

10. peatükk: Google'i kodurakenduse õpetus: täitmine pilve andmebaasi kaudu

11. peatükk: Google'i kodurakenduse õpetus: täitmine Webhooki kaudu

12. peatükk: Google'i kodurakenduse õpetus: rakenduse juurutamine

Tuleme meelde ja millise osaga pildist me praegu tegeleme.

1. samm: otsimise täitmise lubamine otsimiskava ForForQuote jaoks.

2. samm: täitmine tekstisisese redigeerija kaudu [Firebase funktsioon Pilvefunktsioonid]

Eemaldage kõik tekstiredaktorist. Proovime kirjutada nullist üks rida korraga. Pole midagi karta, jää minu juurde.

Siin läheb. Esimene rida.

'kasuta rangelt';

Range:

„Kasuta ranget” eesmärk on näidata, et koodi tuleks täita „ranges režiimis”. Range režiimi korral ei saa te näiteks kasutada deklareerimata muutujaid.

Kõik kaasaegsed brauserid toetavad „kasutage ranget”, välja arvatud Internet Explorer (IE) 9 ja vanemad versioonid: kes kasutab IE ikkagi… .vaba ...

ok liigub edasi.

kontofunktsioonid = nõuavad ('tulepõhised funktsioonid');

Const määratleb põhimõtteliselt midagi, mida see programmis igaveseks ei muuda. Me impordime siin tulemüüri funktsioonide mooduli.

Siis peavad veel mõned konsid, millest igaüks peab meie kavatsusi. Need stringid peaksid vastama kavatsuste nimele.

'kasuta rangelt';
kontofunktsioonid = nõuavad ('tulepõhised funktsioonid');
const {dialogflow} = nõuda ('toimingud-google'is');
const WELCOME_INTENT = 'Vaikimisi tervituskavatsus';
const FALLBACK_INTENT = 'Vaikimisi tagastamise kavatsus';
const LOOKING_FOR_QUOTE_INTENT = 'LookingForQuote';

Nüüd hoiame dialoogivoo objekti Const nimega app.

const app = dialoogi voog ();

Järgmisena määratleme kavatsused ja kiirendame objekti, mis kasutab kasutajaga rääkimiseks päringufunktsiooni.

app.intent (WELCOME_INTENT, (konv) => {
    conv.ask ("Tere tulemast Dr.Motivationile! Küsige pakkumist sõpruse, romantika või motivatsiooni kohta");
});

Pidage kindlasti meeles, et lubamise korral peaksite vaikimisi tervituskava raames jaotises webhook lubama.

sarnaselt määratleme ka ülejäänud kaks kavatsust. Ärge muretsege, et see on lihtne, kuna meie eesmärk on panna see täitmine kõigepealt vigadeta toimima.

üks tagavarakavatsuse jaoks

app.intent (FALLBACK_INTENT, (konv) => {
    conv.ask ("Lõpetage nurisemine ja rääkige üles");
});

üks meie kohandatud kavatsuste jaoks

app.intent (LOOKING_FOR_QUOTE_INTENT, (konv) => {
     conv.ask ("Sõbrad on terapeudid, saame koos juua");
});

Lõpuks tagastame dialoogivoo objektirakenduse, kui täitmisele kutsutakse

export.dialogflowFirebaseFulfillment = funktsioonid.https.onRequest (rakendus);

täielik kood näeb välja selline

'kasuta rangelt';
 
kontofunktsioonid = nõuavad ('tulepõhised funktsioonid');
const {dialogflow} = nõuda ('toimingud-google'is');
const WELCOME_INTENT = 'Vaikimisi tervituskavatsus';
const FALLBACK_INTENT = 'Vaikimisi tagastamise kavatsus';
const LOOKING_FOR_QUOTE_INTENT = 'LookingForQuote';
const app = dialoogi voog ();
app.intent (WELCOME_INTENT, (konv) => {
    conv.ask ("Tere tulemast Dr.Motivationile! Küsige pakkumist sõpruse, romantika või motivatsiooni kohta");
});
app.intent (FALLBACK_INTENT, (konv) => {
    conv.ask ("Lõpetage nurisemine ja rääkige üles");
});
app.intent (LOOKING_FOR_QUOTE_INTENT, (konv) => {
     conv.ask ("Sõbrad on terapeudid, saame koos juua");
});
export.dialogflowFirebaseFulfillment = funktsioonid.https.onRequest (rakendus);

3. samm: funktsiooni juurutamine

4. samm: testige funktsiooni

vaadake täitmise vastust, klõpsates “Diagnostiline teave” .Vaate näha koodis nimetatud tsitaati koodis.

Proovime vaikevarustust, lubamata täitmist webhooki kaudu ja koos sellega.

Ilma Webhookita lubatud:

Diagnostikainfol on põhimõtteliselt ainult üks RAW API vastus

Liigume nüüd edasi ja lubage veebisaidi kaudu selle täitmine varuvariandiks .. kui te pole seda juba teinud.

väljund:

nüüd, kui webhookikõne on lubatud, saame ka vastuse täitmise kohta.

5. samm: lisage koodile rohkem funktsioone.

Kuna saame parameetriks QuoteType, proovime seda kasutada oma koodis lihtsate, kui muidu väljaütlemiste kaudu.

määrake esmalt üksus QuoteType

const QUOTE_TYPE_ENTITY = 'QuoteType';

seejärel ekstraheerige parameetri väärtus, salvestage see muutujasse… sobitage see väärtustega ja lükake iga kord erinevad tsitaadid.

app.intent (LOOKING_FOR_QUOTE_INTENT, (konv) => {
     const quote_type = conv.parameters (QUOTE_TYPE_ENTITY) .toLowerCase ();
     if (quote_type == "motiveeriv") {
     conv.ask ("Ära ole laisk perse");
     } else if (quote_type == "sõbralik laev") {
     conv.ask ("Sõbrad on terapeudid, saame koos juua");
     } else if (quote_type == "romantiline") {
     conv.ask ("midagi romantilist");
     } veel {
         conv.ask ("minge rääkimise asemel minge perse ja töötage ära");
     }
});

Proovige järele:

Samuti saate kontrollida Firebase'i konsooli tõrkelogi.

minge tuletõrjebaasi konsooli .. või klõpsake tekstisisese redaktori all linki

ok .. nii et conv.parameters pole funktsioon, vaid objektimassiiv, nii et muutke () väärtuseks []

conv.parameters (QUOTE_TYPE_ENTITY)

kuni

conv.parameters [QUOTE_TYPE_ENTITY]

Lõplik kood on toodud allpool:

'kasuta rangelt';
 
kontofunktsioonid = nõuavad ('tulepõhised funktsioonid');
const {dialogflow} = nõuda ('toimingud-google'is');
const WELCOME_INTENT = 'Vaikimisi tervituskavatsus';
const FALLBACK_INTENT = 'Vaikimisi tagastamise kavatsus';
const LOOKING_FOR_QUOTE_INTENT = 'LookingForQuote';
const QUOTE_TYPE_ENTITY = 'QuoteType';
const app = dialoogi voog ();
app.intent (WELCOME_INTENT, (konv) => {
    conv.ask ("Tere tulemast Dr.Motivationile! Küsige pakkumist sõpruse, romantika või motivatsiooni kohta");
});
app.intent (FALLBACK_INTENT, (konv) => {
    conv.ask ("Lõpetage nurisemine ja rääkige üles");
});
app.intent (LOOKING_FOR_QUOTE_INTENT, (konv) => {
     const quote_type = conv.parameters [QUOTE_TYPE_ENTITY] .toLowerCase ();
     if (quote_type == "motiveeriv") {
     conv.ask ("Ära ole laisk perse");
     } else if (quote_type == "sõbralik laev") {
     conv.ask ("Sõbrad on terapeudid, saame koos juua");
     } else if (quote_type == "romantiline") {
     conv.ask ("midagi romantilist");
     } veel {
         conv.ask ("minge rääkimise asemel ära oma perset ja tööta");
     }
});
export.dialogflowFirebaseFulfillment = funktsioonid.https.onRequest (rakendus);

6. samm: juurutamine ja testimine:

Ilmselt ei saa see olla lõplik versioon, kui peate selle tõesti dünaamiliseks muutma, peate selle ühendama andmebaasiga, et koguda andmeid kasutaja sisestatud andmete põhjal.

Järgmises peatükis kasutame Google'i pilveandmeid, mis on teatud tüüpi andmebaasid, et koguda neilt andmeid ja pakkuda meie kasutajatele hinnapakkumisi.

See lugu on avaldatud Mediumi suurimas ettevõtlusväljaandes The Startup, millele järgneb 358 974 inimest.

Liituge, et saada meie parimaid lugusid siit.