Hvordan jeg designede, udviklede og implementerede en chatbot helt i skyen

Det hele startede med en YouTube-video, jeg optog for få måneder tilbage. I det talte jeg om vigtigheden af ​​bevidst revision. Dette hjælper dig med at bevare tingene i dit sind i en længere periode og giver dig teknikker til at revidere vigtige projekter. Hvis du ikke har det, skal du se det her.

I videoen talte jeg om, hvor ofte du skulle revidere, hvad pokker er glemmekurven, og hvorfor du skal passe.

Jeg ville gerne give jer et ordentligt værktøj ud over videoen, så du kan revidere bedre. At være en udvikler, var min naturlige respons "Lad os skrive en app!"

Men hvis du har læst min anden artikel om, hvorfor oprindelige apps er dømt, ved du, at jeg var lidt tilbageholdende med at skrive en enkeltstående app til dette. Jeg tog et skridt tilbage og analyserede situationen. Jeg havde brug for en backend for at gemme brugernes data og en front-end for at indsamle og vise disse data.

Jeg ønskede, at brugeren ombord på bordet skulle være så friktionsfri som muligt. Det er svært at tvinge brugere til at downloade en ny app. Hvis jeg byggede en chatbot, ville det tjene dette formål, og jeg ville ikke være nødt til at overbevise nogen om at downloade noget. Jeg sparer også lidt tid, da jeg ikke behøver at opbygge en enkeltstående klient-app og gennemgå appbutikernes processer.

Du kan prøve den bot, jeg har bygget her.

Lad os skære til jagten og tale om processen. Læs videre for at se, hvordan min chatbot gik fra en idé til et fuldt fungerende produkt - helt ved hjælp af skybaserede værktøjer.

Spørgsmål nr. 1: AI og NLP

Natural Language Processing (NLP) og AI er integrerede dele af enhver smart chatbot. Så jeg vidste fra starten af, at jeg ville kræve AI og NLP for at gøre min bot "smart" og noget, du kunne tale med. Det skal også forstå, hvad du beder om at gøre. Jeg kommer fra en fuld stak udviklingsbaggrund, og jeg har nul erfaring med Machine Learning, AI eller NLP. Men for denne bot var alle disse ting nødvendigheder.

Som teknisk entusiast holder jeg altid opmærksom på, hvilke værktøjer og biblioteker Biggies lancerer. Jeg var opmærksom på Wit.ai, et online API, der blev frigivet af Facebook for at muliggøre NLP i dine apps og bots. Jeg spillede rundt med det i et stykke tid, men fandt det særlig hårdt.

Jeg søgte hurtigt efter andre alternativer og fandt Api.ai. Jeg spillede rundt med det og fandt det mere udviklingsvenligt, så jeg gik med det.

Her er hvad du nøjagtigt gør med disse ai API'er:

  1. Først skriver du en sandsynlig samtale, der kan ske mellem din bot og en person.
  2. Baseret på denne samtale opretter du et eksklusivt flowdiagram (eller noget i den retning), der håndterer alle resultaterne af samtalen.
  3. Du programmerer Api.ai-agenten til at håndtere alle de foruddefinerede resultater ved hjælp af dens instrumentbræt. Det er enkelt nok - når du først lærer det.

Bemærk: Du kan tilpasse brugerdefineret logik, der findes i din sikre back-end, hvis API.ais indbyggede håndterere ikke kan håndtere din brugssag. I tilfælde af Revisebot lagrede jeg hver enkelt brugers indlæringshistorie og beregner, hvilke emner brugeren skulle revidere næste gang. Dette krævede tilpassede beregninger og persistensmekanismer.

Revisebots NLP ved hjælp af Api.ai

Api.ai tilbyder også nogle forudbyggede agenter, såsom small talk og vejragenter, som kan besvare brugernes spørgsmål om vejr og andre emner. Dette er plug-n-play-ting, som du nemt kan bruge i dine chatbots.

Da Revisebot havde brug for at håndtere sager med brugerdefineret brug, var jeg nødt til at skrive noget kode. Tid til at fjerne en JavaScript / Node.js-kode. Yay!

Spørgsmål nr. 2: Cloud hosting

Jeg er længe bruger af Digital Ocean, men det koster mindst $ 6 / måned mindst. Da jeg ikke håbede at tjene penge på Revisebot, var det ikke fornuftigt at være vært på det på Digital Ocean. Jeg mister månedligt penge.

Jeg havde brug for en gratis cloud-vært til dette projekt. Jeg vidste, at Firebase tilbød gratis hosting (som jeg har brugt det tidligere). Jeg har også brugt Open Shift til andre projekter (for det meste Laravel). Men jeg troede, det ville være en god ide at Google nogle andre alternativer, i det mindste af hensyn til Node.js.

Det var da jeg stødte på Heroku og dens gratis plan.

På kort tid lærte jeg, at Heroku's Node.js-integration er fantastisk. Så jeg læste deres dokumenter og hurtigt spundet op en Node.js app på deres gratis dynamo. Det var nok til mine behov. Dets eneste begrænsning var, at den sover efter et stykke tid, så det første API-opkald kan mislykkes, mens dynamoen vågner op fra søvnen. Men jeg tilpassede min chatbot til at reagere på sådanne scenarier.

Spørgsmål nr. 3: MongoDB i skyen

Jeg havde overvejet at lære noget MongoDB. Så jeg besluttede at bruge MongoDB som databasen til min chatbot. En chat-app er en god brugssag til MongoDBs dokumentbaserede lagersystem.

Min plan løb ind i en lille vejspærring, da jeg opdagede, at Heroku ikke tilbyder MongoDB-integration gratis. Ingen bekymringer - Jeg gik tilbage til min ven Google og søgte efter en “Gratis MongoDB-sky.”

Sådan lærte jeg at vide om mLabs, der tilbyder gratis MongoDB-forekomster i skyen.

Deres gratis plan anbefales ikke til produktionsklare apps, men det er OK. Jeg kører alligevel min chatbot på den gratis plan.

Spørgsmål 4: Cloud IDE

Min plan var at kode det hele op i uanset fritid jeg havde efter mit fuldtidsjob. På grund af dette havde jeg brug for fleksibiliteten ved kodning hvor som helst. Så min udvikler-arbejdsområde var nødvendig for at opholde sig i skyen, som jeg kunne indlæse hvor som helst, hvor jeg havde internet.

Jeg har brugt skybaserede IDE'er i lang tid, og oplevelsen er blandet. Nitrous.io var fantastisk, men de lukkede det. :( Efter at have prøvet nogle online IDE'er som cloud9 og codeanywhere, var den, som jeg fandt mest stabil og udviklervenlig, Codenvy.Den tilbyder arbejdsområder, som du kan oprette eller ødelægge efter din egen vilje.

Så jeg oprettede et nyt Ubuntu-baseret arbejdsområde i Codenvy og installerede node, npm, git og curl med det samme. Codenvy tilbyder også en terminal, så Linux-brugere føler sig hjemme. Min udvikler arbejdsområde i skyen var klar.

Derefter klonede jeg mit projekt depot fra Heroku og konfigurerede DB-integrationen med mLabs MongoDB-instans ved hjælp af .env-filer. Som du kan se på skærmbilledet nedenfor var blooming-escarpment-58368 mit Heroku Node.js-projekt.

Kodning af revider i Codenvy.io

Spørgsmål nr. 5: Integrering af chatbot med API'er til sociale medier

Chatbotten skulle arbejde med Facebook Messenger og Slack. Jeg bliver nødt til at lære udvikler-API'erne til begge platforme og konfigurere min udviklingsmaskine til test af API-opkald. Heldigvis tilbyder Api.ai også let integration med et klik med de fleste af de sociale medieplatforme. Du skal bare følge deres dokumentation for at bringe din chatbot til den specificerede platform.

Integration af sociale medier til Revisebot

Som du kan se på skærmbilledet ovenfor, har jeg integreret Revisebot med Facebook Messenger og Slack lige nu. Dette skridt tager ikke lang tid, tro mig.

Ved hjælp af disse værktøjer var jeg i stand til at skrive, teste og distribuere hele økosystemet i min chatbot (DB, applikationslaget, front-end og AI-agenten) for at reagere på brugernes spørgsmål.

Men der var stadig nogle stykker tilbage for at gøre Revisebot til et komplet, færdigt produkt.

Spørgsmål nr. 6: Management af kildekoder

Selvom jeg var den eneste udvikler, der arbejdede med denne chatbot, var jeg nødt til at gemme koden et sikkert sted. Git var et oplagt valg til styring af kildekode og versionskontrol, men GitHub tilbyder ikke et gratis, privat oplagringssted. Revisebot skulle ikke være en open source-satsning, så jeg kunne ikke være vært for kildekoden der. Da jeg heller ikke brugte en lokal udviklingsmaskine, kunne jeg ikke bruge nogen lokal git-repo til at gemme min kode på.

Tilbage i dagen spillede jeg rundt med bitbucket.org. Jeg havde en idé om, at de tilbød et gratis privat oplagringssted, men var ikke sikker på, om de stadig tilbød sådanne planer. Jeg gik til deres websted og fandt ud af, at de gjorde det. Resten er ret selvforklarende.

Spørgsmål nr. 7: Grafiske aktiver

Design og grafik er kernen i ethvert digitalt produkt. Jeg havde brug for et logo, baggrundsbilleder og dækbilleder til min chatbots Facebook-side, Slack app store-oversigt og hjemmeside.

Jeg er ikke designer på nogen måde, så jeg havde brug for hjælp. Jeg var nødt til at vælge farvepalet og ikoner, blande figurer sammen for at oprette et logo og mere.

Heldigvis er der et nyttigt værktøj til det, der kaldes Canva.

Det tilbyder færdige designskabeloner til sociale medier, YouTube og logoer, som du kan tilpasse efter dine behov. Jeg oprettede Revisebots logo, helt i Canva, ved hjælp af frie figurer og lidt kreativitet. Jeg synes, jeg havde det godt.

Revisebots logo, bygget ved hjælp af Canva.com

Jeg brugte også nogle af deres gratis skabeloner til at oprette andre visuelle aktiver til Revisebot som et Facebook-omslagsbillede.

Så sådan kodede og implementerede jeg en fuldt fungerende chatbot, som kan hjælpe dig med at planlægge din revision, helt i skyen.

Det koster mig nøjagtigt $ 0 at køre denne service.

Fortæl mig, hvis du har spørgsmål til mit projekt.

* Ingen lokale maskiner blev engageret i oprettelsen af ​​denne chatbot.

Hvis du kunne lide dette indlæg, bedes du venligst give mig nogle klap og følg mig for flere indlæg som dette. Du bør også abonnere på min YouTube-kanal, hvis du kan lide at udvikle digitale ting.

Twitter | YouTube | Rayn Studios

Indtil næste gang…