9. fejezet: Hogyan készítsünk egy Google Home App alkalmazást a DialogFlow | Teljesítés Inline Editoron keresztül

Most, hogy beállítottuk a környezetet, létrehoztuk a szükséges ügynököket, szándékokat és entitásokat, és teszteltük őket. Menjünk tovább a teljesítési modulhoz, ahol az inline szerkesztőt használjuk az entitáson alapuló releváns válasz létrehozására (QuoteType)

Sorozat tartalma:

6. fejezet: A Google Home App bemutatója: Áttekintés

7. fejezet: A Google otthoni alkalmazás bemutatója: Beszélgetés-tervezés

8. fejezet: A Google Home App bemutatója: Környezetbeállítás

9. fejezet: A Google otthoni alkalmazás bemutatója: Teljesítés az Inline Editoron keresztül

10. fejezet: A Google otthoni alkalmazás bemutatója: Teljesítés a Cloud Datastore szolgáltatáson keresztül

11. fejezet: A Google Home App bemutatója: Teljesítés a Webhookon keresztül

12. fejezet: A Google otthoni alkalmazásának bemutatója: Az alkalmazások telepítése

Összefoglalva, és a nagy kép melyik részével foglalkozunk most.

1. lépés: Engedélyezze a teljesítést a LookingForQuote szándékra.

2. lépés: - Teljesítés beépített szerkesztőn keresztül [Cloud Powered by Firebase Powered by]

Távolítson el mindent a beépített szerkesztőből. Próbáljuk meg egy sorból egyszerre írni a semmiből. Semmi félelem, maradj velem.

Itt megy. Az első sor.

„szigorúan használja”;

Szigorú:

A „szigorú használat” célja annak jelzése, hogy a kódot „szigorú módban” kell végrehajtani. Szigorú módban például nem használhatja a be nem jelentett változókat.

Az összes modern böngésző támogatja a „szigorúan használj” kifejezést, kivéve az Internet Explorer (IE) 9 vagy annál alacsonyabb verziót: Ki egyébként használja az IE-t ...

rendben van.

const function = igényelni ('firebase-function');

A Const alapvetően meghatároz valamit, amit ez nem változtat meg örökre a programban. Itt importáljuk a firebase funkciómodulját.

Akkor még néhány további költségvetés, amelyek mindegyike megtartja szándékunkat. Ezeknek a karakterláncoknak meg kell egyezniük a szándék nevével.

„szigorúan használja”;
const function = igényelni ('firebase-function');
const {párbeszédablak} = igényelni ('toimia-on-google');
const WELCOME_INTENT = 'Alapértelmezett üdvözlő szándék';
const FALLBACK_INTENT = 'Alapértelmezett visszaesési szándék';
const LOOKING_FOR_QUOTE_INTENT = 'LookingForQuote';

...

Most tároljuk a párbeszédfolyamat objektumot egy const néven, kb.

const app = párbeszédfolyamat ();

Ezután meghatározzuk a szándékokat, és létrehozunk egy „conv” objektumot, amely a ask funkciót fogja használni a felhasználóval való beszélgetéshez.

app.intent (WELCOME_INTENT, (conv) => {
    conv.ask ("Üdvözöljük a Dr.Motivation oldalán! Kérjen ajánlatot a barátságról, romantikáról vagy motivációról");
});

Ne felejtse el engedélyezni a webhook-ot a teljesítési szakasz alatt az „alapértelmezett üdvözlő szándék” alatt.

hasonlóképpen meg fogjuk határozni a másik két célt is. ne aggódj, mert ez egyszerű, mivel célja az, hogy ezt a teljesítést először hiba nélkül futtassuk.

az egyik a tartalék szándéka

app.intent (FALLBACK_INTENT, (conv) => {
    conv.ask ("Ne mobogj és beszélj");
});

egyet az egyéni szándékunk szerint

app.intent (LOOKING_FOR_QUOTE_INTENT, (conv) => {
     conv.ask ("A barátok terapeuták, együtt iszhatunk");
});

végül visszatérünk a párbeszédfolyamat-alkalmazáshoz, amikor a teljesítés meghívásra kerül

export.dialogflowFirebaseFulfillment = function.https.onRequest (alkalmazás);

a teljes kód így néz ki

„szigorúan használja”;
 
const function = igényelni ('firebase-function');
const {párbeszédablak} = igényelni ('toimia-on-google');
const WELCOME_INTENT = 'Alapértelmezett üdvözlő szándék';
const FALLBACK_INTENT = 'Alapértelmezett visszaesési szándék';
const LOOKING_FOR_QUOTE_INTENT = 'LookingForQuote';
const app = párbeszédfolyamat ();
app.intent (WELCOME_INTENT, (conv) => {
    conv.ask ("Üdvözöljük a Dr.Motivation oldalán! Kérjen ajánlatot a barátságról, romantikáról vagy motivációról");
});
app.intent (FALLBACK_INTENT, (conv) => {
    conv.ask ("Ne mobogj és beszélj");
});
app.intent (LOOKING_FOR_QUOTE_INTENT, (conv) => {
     conv.ask ("A barátok terapeuták, együtt iszhatunk");
});
export.dialogflowFirebaseFulfillment = function.https.onRequest (alkalmazás);

3. lépés: Telepítse a funkciót

4. lépés: Tesztelje a funkciót

nézze meg a teljesítési választ, ha rákattint a „Diagnosztikai információ” elemre. Látni fogja az idézetet, amelyet már említettünk a kódban.

Próbáljuk meg az alapértelmezett tartalékot anélkül, hogy lehetővé tennénk a teljesítést a webhookon keresztül és azzal.

Webhook engedélyezése nélkül:

A diagnosztikai információknak alapvetően csak egy RAW API-válaszuk van

Most menjünk tovább, és engedélyezjük a webhookon keresztüli teljesítést a tartalék szándéka érdekében .. ha még nem tette meg.

Kimenet:

Most, hogy a webhook hívás engedélyezve van, teljesítési választ is kapunk.

5. lépés: Adjunk hozzá még több funkciót a kódhoz.

Mivel a QuoteType paramétert kapjuk, próbáljuk ki ezt használni a kódunkban egyszerű, ha más utasításokkal.

először határozza meg a QuoteType entitást

const QUOTE_TYPE_ENTITY = 'QuoteType';

majd bontsa ki a paraméter értékét, tárolja egy változóban… illessze az értékekhez, és nyomja meg külön-külön idézőjeleket.

app.intent (LOOKING_FOR_QUOTE_INTENT, (conv) => {
     const quote_type = conv.paraméterek (QUOTE_TYPE_ENTITY) .toLowerCase ();
     if (quote_type == "motivációs") {
     conv.ask ("Ne légy lusta segg");
     } else if (quote_type == "barátság") {
     conv.ask ("A barátok terapeuták, együtt iszhatunk");
     } else if (quote_type == "romantikus") {
     conv.ask ("valami romantikus");
     } más {
         conv.ask ("szálljon le a seggedből, és dolgozzon ahelyett, hogy velem beszélne");
     }
});

Tesztelje:

Ellenőrizheti a firebase konzolt is a hibanaplókat.

lépjen a tűz alapkonzoljába .. vagy kattintson az inline szerkesztő alatt a linkre

oké, így a conv.paraméterek nem függvény, hanem egy objektum tömb, tehát változtassa meg a () értékét []

conv.parameters (QUOTE_TYPE_ENTITY)

nak nek

conv.parameters [QUOTE_TYPE_ENTITY]

A végleges kód az alábbiakban található:

„szigorúan használja”;
 
const function = igényelni ('firebase-function');
const {párbeszédablak} = igényelni ('toimia-on-google');
const WELCOME_INTENT = 'Alapértelmezett üdvözlő szándék';
const FALLBACK_INTENT = 'Alapértelmezett visszaesési szándék';
const LOOKING_FOR_QUOTE_INTENT = 'LookingForQuote';
const QUOTE_TYPE_ENTITY = 'QuoteType';
const app = párbeszédfolyamat ();
app.intent (WELCOME_INTENT, (conv) => {
    conv.ask ("Üdvözöljük a Dr.Motivation oldalán! Kérjen ajánlatot a barátságról, romantikáról vagy motivációról");
});
app.intent (FALLBACK_INTENT, (conv) => {
    conv.ask ("Ne mobogj és beszélj");
});
app.intent (LOOKING_FOR_QUOTE_INTENT, (conv) => {
     const quote_type = conv.paraméterek [QUOTE_TYPE_ENTITY] .toLowerCase ();
     if (quote_type == "motivációs") {
     conv.ask ("Ne légy lusta segg");
     } else if (quote_type == "barátság") {
     conv.ask ("A barátok terapeuták, együtt iszhatunk");
     } else if (quote_type == "romantikus") {
     conv.ask ("valami romantikus");
     } más {
         conv.ask ("szálljon le a seggedből és dolgozz, ahelyett, hogy velem beszélne");
     }
});
export.dialogflowFirebaseFulfillment = function.https.onRequest (alkalmazás);

6. lépés: Telepítés és tesztelés:

Nyilvánvaló, hogy ez nem lehet a végleges verzió, ha igazán dinamikusá kell tennie, akkor az adatbázishoz kell csatlakoztatnia, hogy a felhasználó által megadott adatok alapján összegyűjtse az adatokat.

A következő fejezetben a Google felhőalapú adattárolóját fogjuk használni, amely egyfajta adatbázis, hogy adatokat vonjunk be tőlük és idézeteket szolgáltassunk felhasználóink ​​számára.

Ezt a történetet a The Startup, a Medium legnagyobb vállalkozási kiadványában tették közzé, amelyet 358 974+ ember követ.

Feliratkozás, hogy itt kaphassa a legfontosabb történeteket.