Πώς σχεδίασα, ανέπτυξα και έθεσα ένα chatbot εξ ολοκλήρου στο σύννεφο

Όλα ξεκίνησαν με ένα βίντεο του YouTube που καταγράφηκα μερικούς μήνες πίσω. Σε αυτό, μίλησα για τη σημασία της σκόπιμης αναθεώρησης. Αυτό σας βοηθά να διατηρείτε τα πράγματα στο μυαλό σας για μεγαλύτερο χρονικό διάστημα και σας δίνει τεχνικές για την αναθεώρηση σημαντικών έργων. Εάν δεν το έχετε, παρακαλώ παρακολουθήστε το εδώ.

Στο βίντεο, μίλησα για το πόσο συχνά θα πρέπει να αναθεωρήσετε, για ποιο καλό είναι η καμπύλη ξεχάσματος και γιατί πρέπει να προσέχετε.

Ήθελα να σας δώσω ένα κατάλληλο εργαλείο, εκτός από το βίντεο, ώστε να μπορείτε να αναθεωρήσετε καλύτερα. Όντας προγραμματιστής, η φυσική μου απάντηση ήταν "Ας γράψουμε μια εφαρμογή!"

Αλλά αν έχετε διαβάσει το άλλο άρθρο μου σχετικά με το γιατί οι εγγενείς εφαρμογές είναι καταδικασμένες, ξέρετε ότι ήμουν λίγο απρόθυμος να γράψω μια αυτόνομη εφαρμογή για αυτό. Πήρα ένα βήμα πίσω και ανέλυσα την κατάσταση. Χρειαζόμουν ένα back-end για την αποθήκευση των δεδομένων των χρηστών και ένα front-end για τη συλλογή και εμφάνιση αυτών των δεδομένων.

Θέλησα ο χρήστης να επιβιβαστεί όσο το δυνατόν πιο χωρίς τριβή. Αναγκάζοντας τους χρήστες να κάνουν λήψη μιας νέας εφαρμογής είναι δύσκολο. Εάν έχτισα ένα chatbot, θα εξυπηρετούσε αυτό το σκοπό και δεν θα έπρεπε να πείσω οποιονδήποτε να κατεβάσει τίποτα. Θα εξοικονομήσει επίσης κάποιο χρόνο, δεδομένου ότι δεν θα χρειαζόταν να δημιουργήσω μια αυτόνομη εφαρμογή πελάτη και να περάσω από τις διαδικασίες των καταστημάτων εφαρμογών.

Μπορείτε να δοκιμάσετε το bot που έχτισα εδώ.

Ας σπάσουμε την καταδίωξη και να μιλήσουμε για τη διαδικασία. Διαβάστε παρακάτω για να δείτε πώς το chatbot μου πήγε από μια ιδέα σε ένα πλήρως λειτουργικό προϊόν - χρησιμοποιώντας αποκλειστικά εργαλεία που βασίζονται σε σύννεφο.

Quest # 1: AI και NLP

Η Επεξεργασία Φυσικής Γλώσσας (NLP) και η AI αποτελούν αναπόσπαστο κομμάτι οποιουδήποτε έξυπνου chatbot. Έτσι, ήξερα από την αρχή ότι θα ήθελα AI και NLP να κάνω το bot μου "έξυπνο" και κάτι με το οποίο θα μπορούσατε να μιλήσετε. Θα πρέπει επίσης να καταλάβει τι σας ζητά να κάνει. Προέρχομαι από ένα πλήρες υπόβαθρο ανάπτυξης στοίβας και έχω μηδενική εμπειρία με το Machine Learning, AI ή NLP. Αλλά γι 'αυτό το bot, όλα αυτά ήταν αναγκαιότητες.

Όντας τεχνολογικός ενθουσιώδης, παρακολουθώ πάντα τα εργαλεία και τις βιβλιοθήκες που ξεκινούν οι Biggies. Γνωρίζαμε το Wit.ai, ένα online API, το οποίο κυκλοφόρησε από το Facebook για την ενεργοποίηση του NLP στις εφαρμογές και τα bots σας. Παίζαμε μαζί του για λίγο, αλλά το βρήκα ιδιαίτερα δύσκολο.

Έψαξα γρήγορα για άλλες εναλλακτικές λύσεις και βρήκα το Api.ai. Παίζαμε μαζί του και το βρήκα πιο φιλικό για τους προγραμματιστές, γι 'αυτό πήγαμε μαζί του.

Ακολουθεί τι ακριβώς κάνετε με αυτά τα API API:

  1. Αρχικά, γράφετε μια πιθανή συζήτηση που μπορεί να συμβεί μεταξύ του bot σας και ενός ατόμου.
  2. Με βάση αυτή τη συζήτηση, δημιουργείτε ένα αποκλειστικό διάγραμμα ροής (ή κάτι παρόμοιο) το οποίο χειρίζεται όλα τα αποτελέσματα της συνομιλίας.
  3. Προγραμματίζετε τον παράγοντα Api.ai να χειρίζεται όλα τα προκαθορισμένα αποτελέσματα χρησιμοποιώντας το ταμπλό του. Είναι αρκετά απλό - μόλις το μάθετε.

Σημείωση: Μπορείτε να καλέσετε προσαρμοσμένη λογική, η οποία βρίσκεται στο ασφαλές back-end σας, αν οι ενσωματωμένοι χειριστές του API.ai δεν μπορούν να χειριστούν τη χρήση της θήκης σας. Στην περίπτωση του Revisebot, αποθηκεύομαι το ιστορικό μάθησης κάθε χρήστη και υπολογίζω ποια θέματα θα πρέπει να αναθεωρήσει ο χρήστης έπειτα. Αυτό απαιτούσε προσαρμοσμένους υπολογισμούς και μηχανισμούς επιμονής.

Το NLP του Revisebot χρησιμοποιώντας το Api.ai

Το Api.ai προσφέρει επίσης μερικούς προκαθορισμένους πράκτορες, όπως μικρά πράγματα ομιλίας και καιρού, που μπορούν να απαντήσουν σε ερωτήματα των χρηστών σχετικά με τον καιρό και άλλα θέματα. Αυτά είναι τα plug-n-play πράγματα που μπορείτε εύκολα να χρησιμοποιήσετε στα chatbots σας.

Δεδομένου ότι η Revisebot χρειαζόταν να χειριστεί ειδικές περιπτώσεις χρήσης, έπρεπε να γράψω κάποιο κώδικα. Ώρα να χαράξουμε κάποιο κώδικα JavaScript / Node.js. Ναι!

Quest # 2: Φιλοξενία Cloud

Είμαι πολύ καιρό χρήστης του Ψηφιακού Ωκεανού, αλλά κοστίζει περίπου 6 $ / μήνα στο ελάχιστο. Επειδή δεν ήλπιζα να κερδίσω χρήματα από την Revisebot, η φιλοξενία της στο Digital Ocean δεν είχε νόημα. Θα χάσω χρήματα σε μηνιαία βάση.

Χρειαζόμουν έναν δωρεάν κεντρικό υπολογιστή cloud για αυτό το έργο. Ήξερα ότι η Firebase προσέφερε δωρεάν φιλοξενία (όπως την έχω χρησιμοποιήσει στο παρελθόν). Χρησιμοποίησα επίσης το Open Shift για άλλα έργα (κυρίως Laravel). Αλλά σκέφτηκα ότι θα ήταν μια καλή ιδέα να Google ορισμένες άλλες εναλλακτικές λύσεις, τουλάχιστον για χάρη του Node.js.

Τότε βρήκα τον Heroku και το ελεύθερο σχέδιο του.

Σε ελάχιστο χρόνο έμαθα ότι η ενσωμάτωση του Node.js του Heroku είναι εκπληκτική. Έτσι, διάβασα τα έγγραφά τους και σύντομα περιστρέφω μια εφαρμογή Node.js στην ελεύθερη δυναμό τους. Ήταν αρκετό για τις ανάγκες μου. Ο μόνος περιορισμός του ήταν ότι κοιμάται μετά από λίγο, οπότε η πρώτη κλήση API μπορεί να αποτύχει, ενώ το δυναμό ξυπνά από τον ύπνο. Αλλά έχω προσαρμόσει το chatbot μου για να ανταποκριθεί σε τέτοια σενάρια.

Quest # 3: MongoDB στο σύννεφο

Είχα την πρόθεση να μάθω κάποια MongoDB. Έτσι αποφάσισα να χρησιμοποιήσω το MongoDB ως βάση δεδομένων για το chatbot μου. Μια εφαρμογή συζήτησης είναι μια καλή περίπτωση χρήσης για το σύστημα αποθήκευσης που βασίζεται σε έγγραφα του MongoDB.

Το σχέδιό μου έτρεξε σε ένα μικρό οδόφραγμα όταν ανακάλυψα ότι η Heroku δεν προσφέρει δωρεάν την ενσωμάτωση του MongoDB. Δεν ανησυχώ - επέστρεψα στο φίλο μου Google και έψαξα ένα "Free MongoDB σύννεφο".

Έτσι ξεκίνησα να ξέρω για τα mLabs, τα οποία προσφέρουν δωρεάν MongoDB παρουσίες στο σύννεφο.

Το δωρεάν σχέδιο τους δεν συνιστάται για εφαρμογές έτοιμες για παραγωγή, αλλά αυτό είναι εντάξει. Θα τρέχω το chatbot μου στο ελεύθερο σχέδιο ούτως ή άλλως.

Quest # 4: IDE του Cloud

Το σχέδιό μου ήταν να κωδικοποιήσω το όλο θέμα σε όποιο ελεύθερο χρόνο είχα μετά από την πλήρη απασχόληση μου. Εξαιτίας αυτού, χρειαζόμουν την ευελιξία της κωδικοποίησης από οπουδήποτε. Έτσι, ο χώρος εργασίας μου για προγραμματιστές χρειάστηκε να διαμείνει στο σύννεφο, το οποίο θα μπορούσα να φορτώσω από οπουδήποτε έκανα το διαδίκτυο.

Έχω χρησιμοποιήσει IDE που βασίζονται σε σύννεφο για αρκετό καιρό και η εμπειρία είναι ανάμεικτη. Το Nitrousio ήταν φοβερό, αλλά το έκλεισαν. Μετά από να δοκιμάσετε κάποιες διαδικτυακές συσκευές IDE όπως το cloud9 και το codeanywhere, αυτό που βρήκα πιο σταθερό και φιλικό προς τους προγραμματιστές ήταν το Codenvy και προσφέρει χώρους εργασίας που μπορείτε να δημιουργήσετε ή να καταστρέψετε με δική σας βούληση.

Έτσι, δημιούργησα ένα νέο χώρο εργασίας με βάση το Ubuntu στο Codenvy και εγκατέστησα αμέσως κόμβο, npm, git και μπούκλα. Το Codenvy προσφέρει επίσης ένα τερματικό, έτσι ώστε οι χρήστες του Linux να αισθάνονται σαν στο σπίτι τους. Ο χώρος εργασίας του προγραμματιστή μου στο cloud ήταν έτοιμος.

Στη συνέχεια, έχω κλωνοποιήσει το αποθετήριο του έργου μου από το Heroku και έχω ρυθμίσει την ενσωμάτωση του DB με την περίπτωση MongoDB του mLab χρησιμοποιώντας τα αρχεία .env. Όπως μπορείτε να δείτε στο παρακάτω στιγμιότυπο οθόνης, το blooming-escarpment-58368 ήταν το έργο Heroku Node.js.

Κωδικοποίηση revisebot στο Codenvy.io

Quest # 5: Ενσωμάτωση του chatbot με τα API των Social Media

Το chatbot υποτίθεται ότι συνεργάζεται με το Facebook Messenger και το Slack. Θα έπρεπε να μάθω τα API προγραμματιστών και για τις δύο πλατφόρμες και να ρυθμίσω την μηχανή ανάπτυξης για τη δοκιμή των κλήσεων API. Ευτυχώς, το Api.ai προσφέρει επίσης εύκολη ολοκλήρωση με ένα κλικ με τις περισσότερες πλατφόρμες κοινωνικών μέσων. Απλά πρέπει να ακολουθήσετε την τεκμηρίωσή τους για να φέρετε το chatbot σας στην καθορισμένη πλατφόρμα.

Κοινωνική ενσωμάτωση μέσων για την Revisebot

Όπως μπορείτε να δείτε στο παραπάνω screenshot, έχω ενσωματώσει το Revisebot με Facebook Messenger και Slack, από τώρα. Αυτό το βήμα δεν θα πάρει πολύ, πιστέψτε με.

Χρησιμοποιώντας αυτά τα εργαλεία, ήμουν σε θέση να γράψω, να δοκιμάσω και να αναπτύξω ολόκληρο το οικοσύστημα του chatbot μου (το DB, το επίπεδο εφαρμογής, το front-end και το agent AI) για να αντιδράσω στα ερωτήματα των χρηστών.

Αλλά υπήρχαν κάποια κομμάτια για να κάνουν το Revisebot ένα ολοκληρωμένο, τελικό προϊόν.

Quest # 6: Διαχείριση πηγαίου κώδικα

Αν και ήμουν ο μόνος προγραμματιστής που εργαζόταν σε αυτό το chatbot, χρειαζόμουν να αποθηκεύσω τον κώδικα κάπου ασφαλές. Το Git ήταν μια προφανής επιλογή για τον κώδικα πηγής και τη διαχείριση ελέγχου εκδόσεων, αλλά το GitHub δεν προσφέρει ένα δωρεάν ιδιωτικό αποθετήριο. Το Revisebot δεν έπρεπε να είναι επιχείρηση ανοιχτού κώδικα, οπότε δεν μπορούσα να φιλοξενήσω τον πηγαίο κώδικα εκεί. Επιπλέον, καθώς δεν χρησιμοποιούσα μια μηχανή τοπικής ανάπτυξης, δεν μπορούσα να χρησιμοποιήσω κανένα τοπικό git repo για να αποθηκεύσω τον κωδικό μου.

Πίσω στη μέρα, έπαιξα γύρω από το bitbucket.org. Είχα κάποια ιδέα ότι πρόσφεραν ένα ελεύθερο ιδιωτικό αποθετήριο, αλλά δεν ήταν σίγουρος αν συνέχιζαν να προσφέρουν τέτοια σχέδια. Πήγα στο site τους και διαπίστωσα ότι το έκαναν. Το υπόλοιπο είναι αρκετά αυτονόητο.

Quest # 7: Γραφικά στοιχεία ενεργητικού

Σχεδιασμός και γραφικά τοποθετούνται στον πυρήνα οποιουδήποτε ψηφιακού προϊόντος. Χρειαζόμουν λογότυπο, εικόνες φόντου και κάλυψη εικόνων για τη σελίδα Facebook του chatbot μου, την καταχώριση κατάστημα εφαρμογών Slack και την αρχική σελίδα.

Δεν είμαι σχεδιαστής με κανένα τρόπο, οπότε χρειαζόμουν κάποια βοήθεια. Έπρεπε να επιλέξω την παλέτα χρωμάτων και τα εικονίδια, να συνδυάσω τα σχήματα μαζί για να δημιουργήσω ένα λογότυπο και πολλά άλλα.

Ευτυχώς, υπάρχει ένα χρήσιμο εργαλείο για αυτό που ονομάζεται Canva.

Προσφέρει έτοιμα σχέδια για τα κοινωνικά μέσα, το YouTube και τα λογότυπα που μπορείτε να προσαρμόσετε ανάλογα με τις ανάγκες σας. Δημιούργησα το λογότυπο του Revisebot, εξ ολοκλήρου στο Canva, χρησιμοποιώντας ελεύθερα σχήματα και κάποια δημιουργικότητα. Νομίζω ότι έκανα καλά.

Το λογότυπο της Revisebot, που χτίστηκε χρησιμοποιώντας το Canva.com

Χρησιμοποίησα επίσης μερικά από τα δωρεάν πρότυπα για να δημιουργήσω άλλα οπτικά στοιχεία για την Revisebot σαν εικόνα κάλυψης Facebook.

Έτσι, έτσι κωδικοποίησα και έθεσα ένα πλήρως λειτουργικό chatbot, το οποίο μπορεί να σας βοηθήσει να προγραμματίσετε την αναθεώρησή σας, εξ ολοκλήρου στο σύννεφο.

Μου κοστίζει ακριβώς $ 0 για να τρέξει αυτή την υπηρεσία.

Ενημερώστε με αν έχετε ερωτήσεις σχετικά με το σχέδιό μου.

* Δεν είχαν εμπλακεί τοπικά μηχανήματα στην κατασκευή αυτού του κουτιού chatbot.

Αν σας αρέσει αυτή η θέση, παρακαλώ δώστε μου κάποιες χτυπήματα και ακολουθήστε με για περισσότερες θέσεις όπως αυτό. Θα πρέπει επίσης να εγγραφείτε στο κανάλι μου YouTube, αν θέλετε να αναπτύξετε ψηφιακά πράγματα.

Το Rayn Studios

Μέχρι την επόμενη φορά…