Kuidas luua dialoogivooga vestlusboot | 4. peatükk - väline täitmise API

Selles peatükis loome roboti “StockTracker”, mis tõmbab RESTFUl API-de kaudu välise veebisaidi konkreetse tickeri andmed. [Ärge muretsege, kui te ei mõista žargoone, siis jagame selle ära]

1. peatükk: Gyaani põhifailid vestlusobotite ja dialoogi vookeskkonna seadistamise kohta

2. peatükk: Dialogflow ehitusplokkide mõistmine

3. peatükk: Lineaarsete, järelmeetmete ja mittelineaarsete dialoogide kasutamine „TripPlanneri” robotite loomiseks

Välise API kasutamine täitmiseks

Ülevaade moodulist:

  • Toimingute lõpuleviimine nõuab enamat kui tekstivastust
  • Täitke toimingud veebihookide abil [veebihookid on lihtsalt HTTP tagasihelistamine, millest saab teatada postitaotluse abil]
  • Hostikood, kasutades Firebase'i pilvefunktsioone
  • Töötavad ka muud välised lõpp-punktid, näiteks AWS-i lambdad

Kiire kokkuvõte:

Täitmine

Selle koodi täitmine, mis lõpetab kasutaja soovitud eesmärgi täitmiseks soovitud toimingu.

Kood võib nõuda andmebaasi värskendamist

Kui kood on genereeritud, genereeritakse vastus kasutajale saadetud tex-vastusele, mis omakorda saadetakse agendile (bot), mis omakorda saadetakse rakendusele, mida kasutaja kasutas teie agendiga suhtlemiseks.

...

Näide:

Saame Apple'i börsihinna välisest allikast.

Intrinio platvorm

Alternatiiv India turule võiks olla: https://kite.trade/startups

Registreeruge ja minge jaotisse oma arv. Peaksite leidma oma API pääsuklahvid

API-otsija:

https://intrinio.com/api-explorer?formula=historical_data&values=eyJpZGVudGlmaWVyIjoiQUFQTCIsIml0ZW0iOiIiLCJzZXF1ZW5jZSI6MH0%3D

Dokumentatsioon

http://docs.intrinio.com/#introduction

Test:

https://api.intrinio.com/historical_data?identifier=AAPL&item=open_price&start_date=2018-07-12&end_date=2018-07-12

Viip küsib teie kasutajanime ja parooli. Hankige see oma „minu konto“ lehelt ja saate JSON-vastuse nagu allpool.

Demo

  • Seadistuse täitmine aktsiaturu jälgija jaoks, kasutades Firebase'i pilvefunktsioone.
  • Välistele API-dele juurde pääsemiseks kasutage Blaze pay'i

1. samm: seadistage uus agent dialoogi voos

2. samm: üksuste seadistamine

3. samm: kavatsus

Täitmine:

'kasuta rangelt';
 
kontofunktsioonid = nõuavad ('tulepõhised funktsioonid');
// const {WebhookClient} = nõuda ('dialoogi-täitmine');
// const {Kaart, soovitus} = nõuda ('dialoogi-täitmine');
 
//process.env.DEBUG = 'dialoogi voog: silumine'; // lubab lib silumisavaldusi
 
export.dialogflowFirebaseFulfillment = function.https.onRequest ((päring, vastus) => {
  // const agent = uus WebhookClient ({päring, vastus});
  var chat = "siin on näidisvastus: trump imeb";
  
  response.setHeader ('Sisu tüüp', 'rakendus / json');
  response.send (JSON.stringify ({"fillmentText": chat}));
});

See viskab vea

Webhooki kõne nurjus. Viga: webhook JSON-i vastuse sõelumine ebaõnnestus: väljat: kõne ei leita sõnumis google.cloud.dialogflow.v2.WebhookResponse.

Selle põhjuseks on asjaolu, et kõne ja kuvatekst on Dialogflow v2-s asendatud sõnaga "täitmise tekst".

>

Luba webhook täitmisena GetStockPrice'i kavatsuses

Nüüd peame veenduma, et konkreetne toiming on nimetatud ja seda kutsutakse veebipõhja ajal.

Seadke toiming kavatsuse tegevuse ja parameetrite jaotises:

Kood:

Väljund:

Vähesed vead, millega võite kokku puutuda:

  1. Minge uuele versioonile üle Blaze Pay'ile
Viga:
Arvelduskontot pole konfigureeritud. Välisvõrgule pole juurdepääsu ja kvoodid on rangelt piiratud. Nende piirangute eemaldamiseks konfigureerige arvelduskonto

2. Ei saa lugeda varatoimingut

Oleks algselt kirjutanud

lase action = request.body.result.action;

ja sain selle vea:

TypeError: Määratlemata omaduse toimingut ei saa lugeda
    aadressil export.dialogflowFirebaseFulfillment.functions.https.onRequest (/user_code/index.js:9:37)
    pilvefunktsioonis (/user_code/node_modules/firebase-functions/lib/providers/https.js:26:47)
    aadressil /var/tmp/worker/worker.js:684:7
    aadressil /var/tmp/worker/worker.js:668:9
    saidil _combinedTickCallback (sisemine / protsess / järgmine_tick.js: 73: 7)
    saidil process._tickDomainCallback (sisemine / protsess / järgmine_tick.js: 128: 9)

kuid päise ja päringute kogu printimine näitas, et dialoogivoog v2 on asju natuke muutnud.

Taotluse sisu: {"responseId": "b539a7bf-eccc-43a9-9f6b-a1fe6ea41763", "queryResult": {"queryText": "eile", "toiming": "input.getStockPrice", "parameetrid": {"kuupäev ":" 2018-07-18T12: 00: 00 + 05: 30 "," ettevõtte_nimi ":" õun "," hinnatüüp ":" kõrge "}," allRequiredParamsPresent ": tõene," täitmiseMõnumid ": [{" tekst " : {"tekst": [""]}}], "kavatsus": {"nimi": "projektid / stocktracker-9268f / agent / kavatsused / 7ccfc0ff-7271-4a60-83ce-868d6eea03a0", "displayName": " GetStockPrice "}," intentDetectionConfidence ": 1," languageCode ":" en "}," originalDetectIntentRequest ": {" kasulik koormus ": {}}," sessioon ":" projektid / stocktracker-9268f / agent / sessioonid / 4c4870db-0d23 -ecc0-823e-de2bde1716f9 "}

nii et lisage “päringu” asemel “queryResult”

lase action = request.body.Queryresult.action;

Kokkuvõte:

Mida me sellest peatükist õppisime? Kasutasime kasutaja taotluse sõelumiseks oma robotit ja dialoogivoolu täitmismoodulit, et luua Firebase'il hostitud pilvefunktsioon, et koguda andmeid RESTFUL API kaudu kolmanda osapoole saidilt ja naasta kasutaja juurde.

Oota, aga kas me tõesti saime sellega hakkama? Siiani pole me botot väliskeskkonnas levitanud / kasutusele võtnud, olgu see siis lõtvus või twitter, et kasutaja saaks meie botiga tõepoolest suhelda.

Järgmises peatükis integreerime / juurutame / levitame oma rakendust aeglasel kanalil ja laseme kasutajatel meie vestlusbotiga suhelda.

Viited:

Pluralsighti kursus Janani Ravi

Google'i dialoogivoo dokumentatsioon

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

Liituge, et saada meie parimaid lugusid siit.