Επιταχύνουμε την ανάπτυξη χρησιμοποιώντας τις υπηρεσίες Azure: δημιουργούμε chatbot και γνωστικές υπηρεσίες χρησιμοποιώντας την πλατφόρμα

Γεια σου, Χαμπρ! Σήμερα θα σας δείξουμε πώς να χρησιμοποιήσετε το Azure για να λύσετε προβλήματα που συνήθως απαιτούν ανθρώπινη παρέμβαση. Οι πράκτορες αφιερώνουν πολύ χρόνο απαντώντας στις ίδιες ερωτήσεις, χειρίζονται τηλεφωνικές κλήσεις και μηνύματα κειμένου. Τα chatbot αυτοματοποιούν την επικοινωνία και την αναγνώριση και μειώνουν την επιβάρυνση των ανθρώπων. Τα bots χρησιμοποιούνται επίσης στο Azure DevOps, όπου επιτρέπουν, για παράδειγμα, να εγκρίνουν εκδόσεις, να διαχειρίζονται εκδόσεις - προβολή, έναρξη και διακοπή - απευθείας από το Slack ή το Microsoft Teams. Στην ουσία, ένα chatbot θυμίζει κάπως ένα CLI, μόνο διαδραστικό και επιτρέπει στον προγραμματιστή να παραμείνει στο πλαίσιο της συζήτησης συνομιλίας.

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

Επιταχύνουμε την ανάπτυξη χρησιμοποιώντας τις υπηρεσίες Azure: δημιουργούμε chatbot και γνωστικές υπηρεσίες χρησιμοποιώντας την πλατφόρμα

Chatbots και γνωστικές υπηρεσίες: ποιες είναι οι ομοιότητες και ποιες οι διαφορές;

Για να δημιουργήσετε bots στο Microsoft Azure, χρησιμοποιείτε την υπηρεσία Bot Azure και το Bot Framework. Μαζί αντιπροσωπεύουν ένα σύνολο λογισμικού για δημιουργία, δοκιμή, ανάπτυξη και διαχείριση bots, το οποίο σας επιτρέπει να δημιουργείτε από έτοιμες ενότητες τόσο απλά όσο και προηγμένα συστήματα επικοινωνίας με υποστήριξη ομιλίας, αναγνώριση φυσικής γλώσσας και άλλες δυνατότητες.

Ας υποθέσουμε ότι πρέπει να εφαρμόσετε ένα απλό bot που βασίζεται σε μια εταιρική υπηρεσία Q&A ή, αντίθετα, να δημιουργήσετε ένα λειτουργικό bot με ένα πολύπλοκο, διακλαδισμένο σύστημα επικοινωνίας. Για να το κάνετε αυτό, μπορείτε να χρησιμοποιήσετε μια σειρά από εργαλεία, χωρισμένα σε τρεις ομάδες: 

  1. Υπηρεσίες ταχείας ανάπτυξης διεπαφών διαλόγου (bots).
  2. Έτοιμες υπηρεσίες γνωστικής τεχνητής νοημοσύνης για διαφορετικές περιπτώσεις χρήσης (αναγνώριση προτύπων, αναγνώριση ομιλίας, βάση γνώσεων και αναζήτηση).
  3. Υπηρεσίες δημιουργίας και εκπαίδευσης μοντέλων AI.

Συνήθως, οι άνθρωποι μπερδεύουν διαισθητικά τα «ρομπότ» και τις «γνωστικές υπηρεσίες», επειδή και οι δύο έννοιες βασίζονται στην αρχή της επικοινωνίας και η περίπτωση χρήσης για ρομπότ και υπηρεσίες περιλαμβάνει διαλόγους. Αλλά τα chatbot λειτουργούν με λέξεις-κλειδιά και ενεργοποιητές, και οι γνωστικές υπηρεσίες λειτουργούν με αυθαίρετα αιτήματα που συνήθως επεξεργάζονται οι άνθρωποι: 

Επιταχύνουμε την ανάπτυξη χρησιμοποιώντας τις υπηρεσίες Azure: δημιουργούμε chatbot και γνωστικές υπηρεσίες χρησιμοποιώντας την πλατφόρμα

Οι γνωστικές υπηρεσίες είναι ένας άλλος τρόπος επικοινωνίας με τον χρήστη, βοηθώντας στη μετατροπή ενός αυθαίρετου αιτήματος σε μια σαφή εντολή και στη διαβίβασή του στο bot. 

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

Δημιουργία chatbots

Το προτεινόμενο διάγραμμα σχεδίασης για ένα bot στο Azure είναι το εξής: 

Επιταχύνουμε την ανάπτυξη χρησιμοποιώντας τις υπηρεσίες Azure: δημιουργούμε chatbot και γνωστικές υπηρεσίες χρησιμοποιώντας την πλατφόρμα

Για να σχεδιάσετε και να αναπτύξετε bots στο Azure, χρησιμοποιήστε Bot Framework. Διαθέσιμο στο GitHub παραδείγματα ρομπότ, οι δυνατότητες του πλαισίου αλλάζουν, επομένως είναι απαραίτητο να ληφθεί υπόψη η έκδοση του SDK που χρησιμοποιείται στα bot.

Το πλαίσιο παρέχει πολλές επιλογές για τη δημιουργία bots: χρήση κλασικού κώδικα, εργαλείων γραμμής εντολών ή διαγραμμάτων ροής. Η τελευταία επιλογή οπτικοποιεί τα παράθυρα διαλόγου· για αυτό μπορείτε να χρησιμοποιήσετε τον διαχειριστή Bot Framework Composer. Βασίστηκε στο Bot Framework SDK ως εργαλείο οπτικής ανάπτυξης που θα μπορούσαν να χρησιμοποιήσουν οι διεπιστημονικές ομάδες για τη δημιουργία bots.

Επιταχύνουμε την ανάπτυξη χρησιμοποιώντας τις υπηρεσίες Azure: δημιουργούμε chatbot και γνωστικές υπηρεσίες χρησιμοποιώντας την πλατφόρμα

Το Bot Framework Composer σάς επιτρέπει να χρησιμοποιείτε μπλοκ για να δημιουργήσετε μια δομή διαλόγου με την οποία θα λειτουργεί το bot. Επιπλέον, μπορείτε να δημιουργήσετε έναυσμα, δηλαδή λέξεις-κλειδιά στις οποίες θα αντιδράσει το bot κατά τη διάρκεια του διαλόγου. Για παράδειγμα, οι λέξεις «χειριστής», «κλοπή» ή «σταμάτημα» και «αρκετά».

Στο Bot Framework Composer, μπορείτε να δημιουργήσετε πολύπλοκα συστήματα διαλόγου χρησιμοποιώντας Προσαρμοστικοί διάλογοι. Οι διάλογοι μπορούν να χρησιμοποιούν τόσο γνωστικές υπηρεσίες όσο και κάρτες εκδηλώσεων (Adaptive Cards):

Επιταχύνουμε την ανάπτυξη χρησιμοποιώντας τις υπηρεσίες Azure: δημιουργούμε chatbot και γνωστικές υπηρεσίες χρησιμοποιώντας την πλατφόρμα

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

Δημιουργός QnA

Για να δημιουργήσετε απλά bots που βασίζονται σε εταιρικές βάσεις δεδομένων Q&A, μπορείτε να χρησιμοποιήσετε τη γνωστική υπηρεσία QnA Maker. Εφαρμόζεται ως ένας απλός οδηγός ιστού, σας επιτρέπει να εισάγετε έναν σύνδεσμο σε μια εταιρική βάση γνώσεων (FAQ Urls) ή να χρησιμοποιήσετε μια βάση δεδομένων εγγράφων σε μορφή *.doc ή *.pdf ως βάση. Μετά τη δημιουργία του ευρετηρίου, το bot θα επιλέξει αυτόματα τις καταλληλότερες απαντήσεις στις ερωτήσεις του χρήστη.

Χρησιμοποιώντας το QnAMaker, μπορείτε επίσης να δημιουργήσετε αλυσίδες διευκρινιστικών ερωτήσεων με αυτόματη δημιουργία κουμπιών, να συμπληρώσετε τη βάση γνώσεων με μεταδεδομένα και να εκπαιδεύσετε περαιτέρω την υπηρεσία κατά τη χρήση.

Η υπηρεσία μπορεί να χρησιμοποιηθεί ως chatbot που υλοποιεί μόνο αυτή τη λειτουργία ή ως μέρος ενός σύνθετου chatbot που χρησιμοποιεί, ανάλογα με το αίτημα, άλλες υπηρεσίες τεχνητής νοημοσύνης ή στοιχεία του Πλαισίου Bot.

Συνεργασία με άλλες γνωστικές υπηρεσίες

Υπάρχουν πολλές διαφορετικές γνωστικές υπηρεσίες στην πλατφόρμα Azure. Τεχνικά, πρόκειται για ανεξάρτητες υπηρεσίες web που μπορούν να καλούνται από κώδικα. Σε απάντηση, η υπηρεσία στέλνει json συγκεκριμένης μορφής, η οποία μπορεί να χρησιμοποιηθεί στο chatbot.

Επιταχύνουμε την ανάπτυξη χρησιμοποιώντας τις υπηρεσίες Azure: δημιουργούμε chatbot και γνωστικές υπηρεσίες χρησιμοποιώντας την πλατφόρμα
Οι πιο συνηθισμένες χρήσεις των chatbots είναι:

  1. Αναγνώριση κειμένου.
  2. Αναγνώριση κατηγοριών εικόνων Custom Vision Service που ορίζονται από τον προγραμματιστή (περίπτωση παραγωγής: αναγνώριση του εάν ένας υπάλληλος φοράει σκληρό καπέλο, γυαλιά ή μάσκα).
  3. Αναγνώριση προσώπου (μια εξαιρετική περίπτωση χρήσης είναι ο έλεγχος εάν το άτομο που ερωτάται δημοσίευσε το δικό του πρόσωπο ή, ας πούμε, μια φωτογραφία ενός σκύλου ή μια φωτογραφία ενός ατόμου διαφορετικού φύλου).
  4. Αναγνώρισης ομιλίας.
  5. Ανάλυση εικόνας.
  6. Μετάφραση (όλοι θυμόμαστε πόσο θόρυβο προκαλούσε η ταυτόχρονη μετάφραση στο Skype).
  7. Ορθογραφικός έλεγχος και προτάσεις για διόρθωση λαθών.

LUIS

Επίσης, για να δημιουργήσετε bots μπορεί να χρειαστείτε LUIS (Language Understanding Intelligent Service). Στόχοι υπηρεσίας:

  • Προσδιορίστε εάν η δήλωση του χρήστη έχει νόημα και εάν η απάντηση του bot είναι απαραίτητη.
  • Μειώστε τις προσπάθειες μεταγραφής της ομιλίας χρήστη (κείμενο) σε εντολές κατανοητές από το bot.
  • Προβλέψτε πραγματικούς στόχους/προθέσεις χρήστη και εξάγετε βασικές πληροφορίες από φράσεις στο διάλογο.
  • Επιτρέψτε στον προγραμματιστή να ξεκινήσει το bot χρησιμοποιώντας μερικά μόνο παραδείγματα αναγνώρισης νοημάτων και επακόλουθη πρόσθετη εκπαίδευση του ρομπότ κατά τη λειτουργία.
  • Επιτρέψτε στον προγραμματιστή να χρησιμοποιεί οπτικοποίηση για να αξιολογήσει την ποιότητα της μεταγραφής εντολών.
  • Βοηθήστε σε σταδιακές βελτιώσεις στην αληθινή αναγνώριση στόχων.

Στην πραγματικότητα, ο κύριος στόχος του LUIS είναι να κατανοήσει με μια ορισμένη πιθανότητα τι εννοούσε ο χρήστης και να μετατρέψει ένα φυσικό αίτημα σε αρμονική εντολή. Για να αναγνωρίσει τις τιμές ερωτημάτων, το LUIS χρησιμοποιεί ένα σύνολο προθέσεων (σημασίες, προθέσεις) και οντότητες (είτε προρυθμισμένες από προγραμματιστές είτε ληφθέντες και προδιαμορφωμένους "τομείς" - ορισμένες έτοιμες βιβλιοθήκες τυπικών φράσεων που έχουν προετοιμαστεί από τη Microsoft). 

Ένα απλό παράδειγμα: έχετε ένα bot που σας δίνει μια πρόγνωση καιρού. Για αυτόν, η πρόθεση θα είναι η μετάφραση ενός φυσικού αιτήματος σε μια «δράση» - ένα αίτημα για μια πρόγνωση καιρού, και οι οντότητες θα είναι ο χρόνος και ο τόπος. Ακολουθεί ένα διάγραμμα για το πώς λειτουργεί η πρόθεση CheckWeather για ένα τέτοιο bot.

Πρόθεση
Ουσία
Παράδειγμα φυσικού ερωτήματος

CheckWeather
{"type": "location", "entity": "moscow"}
{"type": "builtin.datetimeV2.date", "entity": "future","resolution":"2020-05-30"}
Πώς θα είναι ο καιρός αύριο στη Μόσχα;

CheckWeather
{ "type": "date_range", "entity": "αυτό το Σαββατοκύριακο" }
Δείξε μου την πρόβλεψη για αυτό το Σαββατοκύριακο

Για να συνδυάσετε το QnA Maker και το LUIS μπορείτε να χρησιμοποιήσετε Αποστολέας

Επιταχύνουμε την ανάπτυξη χρησιμοποιώντας τις υπηρεσίες Azure: δημιουργούμε chatbot και γνωστικές υπηρεσίες χρησιμοποιώντας την πλατφόρμα

Όταν εργάζεστε με το QnA Maker και λαμβάνετε ένα αίτημα από έναν χρήστη, το σύστημα καθορίζει το ποσοστό πιθανότητας η απάντηση από το QnA να ταιριάζει με το αίτημα. Εάν η πιθανότητα είναι υψηλή, ο χρήστης λαμβάνει απλώς μια απάντηση από την εταιρική βάση γνώσεων· εάν είναι χαμηλή, το αίτημα μπορεί να σταλεί στο LUIS για διευκρίνιση. Η χρήση του Dispatcher σάς επιτρέπει να μην προγραμματίζετε αυτήν τη λογική, αλλά να προσδιορίζετε αυτόματα αυτό το άκρο του διαχωρισμού των αιτημάτων και να τα διανέμετε γρήγορα.

Δοκιμή και δημοσίευση του bot

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

Ένα παράδειγμα χρήσης του εξομοιωτή παρουσιάζεται σε αυτό το demo, το οποίο δείχνει τη δημιουργία ενός εικονικού βοηθού για την BMW. Το βίντεο μιλά επίσης για νέους επιταχυντές για τη δημιουργία chatbots - templates:

Επιταχύνουμε την ανάπτυξη χρησιμοποιώντας τις υπηρεσίες Azure: δημιουργούμε chatbot και γνωστικές υπηρεσίες χρησιμοποιώντας την πλατφόρμα
https://youtu.be/u7Gql-ClcVA?t=564

Μπορείτε επίσης να χρησιμοποιήσετε πρότυπα κατά τη δημιουργία των chatbot σας. 
Τα πρότυπα σάς επιτρέπουν να μην γράφετε ξανά τυπικές λειτουργίες bot, αλλά να προσθέτετε έτοιμο κώδικα ως «δεξιότητα». Ένα παράδειγμα θα μπορούσε να είναι η εργασία με ένα ημερολόγιο, το κλείσιμο ραντεβού κ.λπ. Κώδικας έτοιμων δεξιοτήτων δημοσιεύθηκε στο github.

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

Επίσης, για να δημιουργήσετε ένα πλήρες chatbot ως διεπαφή για την επικοινωνία με τον χρήστη και τις γνωστικές υπηρεσίες, θα χρειαστείτε, φυσικά, πρόσθετες υπηρεσίες Azure, όπως βάσεις δεδομένων, χωρίς διακομιστή (Azure Functions), καθώς και υπηρεσίες LogicApp και, πιθανώς , Πλέγμα συμβάντων.

Επιταχύνουμε την ανάπτυξη χρησιμοποιώντας τις υπηρεσίες Azure: δημιουργούμε chatbot και γνωστικές υπηρεσίες χρησιμοποιώντας την πλατφόρμα

Αξιολόγηση και ανάλυση

Για να αξιολογήσετε την αλληλεπίδραση των χρηστών, μπορείτε να χρησιμοποιήσετε τόσο τα ενσωματωμένα αναλυτικά στοιχεία της Υπηρεσίας Bot Azure όσο και την ειδική υπηρεσία Application Insights.

Ως αποτέλεσμα, μπορείτε να συλλέξετε πληροφορίες με βάση τα ακόλουθα κριτήρια:

  • Πόσοι χρήστες είχαν πρόσβαση στο bot από διάφορα κανάλια κατά την επιλεγμένη χρονική περίοδο.
  • Πόσοι χρήστες που έστειλαν ένα μήνυμα επέστρεψαν αργότερα και έστειλαν άλλο ένα.
  • Πόσες ενέργειες στάλθηκαν και ελήφθησαν χρησιμοποιώντας κάθε κανάλι κατά τη διάρκεια του καθορισμένου χρονικού διαστήματος.

Χρησιμοποιώντας το Application Insights, μπορείτε να παρακολουθείτε οποιαδήποτε εφαρμογή στο Azure και, ειδικότερα, τα chatbot, λαμβάνοντας πρόσθετα δεδομένα σχετικά με τη συμπεριφορά των χρηστών, τα φορτία και τις αντιδράσεις του chatbot. Θα πρέπει να σημειωθεί ότι η υπηρεσία Application Insights έχει τη δική της διεπαφή στην πύλη Azure.

Μπορείτε επίσης να χρησιμοποιήσετε τα δεδομένα που συλλέγονται μέσω αυτής της υπηρεσίας για να δημιουργήσετε πρόσθετες απεικονίσεις και αναλυτικές αναφορές στο PowerBI. Μπορεί να ληφθεί ένα παράδειγμα τέτοιας αναφοράς και προτύπου για το PowerBI εδώ.

Επιταχύνουμε την ανάπτυξη χρησιμοποιώντας τις υπηρεσίες Azure: δημιουργούμε chatbot και γνωστικές υπηρεσίες χρησιμοποιώντας την πλατφόρμα

Σας ευχαριστώ όλους για την προσοχή σας! Σε αυτό το άρθρο χρησιμοποιήσαμε υλικό από το διαδικτυακό σεμινάριο της αρχιτέκτονας Microsoft Azure Anna Fenyushina «Όταν οι άνθρωποι δεν έχουν χρόνο. Πώς να χρησιμοποιήσετε 100% chatbot και γνωστικές υπηρεσίες για την αυτοματοποίηση των διαδικασιών ρουτίνας», όπου δείξαμε ξεκάθαρα τι είναι τα chatbots στο Azure και ποια είναι τα σενάρια χρήσης τους, καθώς και πώς να δημιουργήσετε ένα bot στο QnA Maker σε 15 λεπτά και πώς Η δομή του ερωτήματος αποκρυπτογραφείται στο LUIS. 

Κάναμε αυτό το διαδικτυακό σεμινάριο ως μέρος του διαδικτυακού μαραθωνίου για προγραμματιστές Dev Bootcamp. Αφορούσε προϊόντα που επιταχύνουν την ανάπτυξη και απαλλάσσουν μέρος του φόρτου εργασίας ρουτίνας από τους υπαλλήλους της εταιρείας χρησιμοποιώντας εργαλεία αυτοματισμού και έτοιμες προδιαμορφωμένες μονάδες Azure. Ηχογραφήσεις άλλων διαδικτυακών σεμιναρίων που περιλαμβάνονται στον μαραθώνιο είναι διαθέσιμες στους παρακάτω συνδέσμους:

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο