The development of advanced Artificial Intelligence techniques in recent years has allowed digital assistant technologies to emerge. From customer service centers to medical diagnostics, digital assistants find application in many areas and are used daily by users. More and more companies are trying to integrate them in their framework and the technologies behind them are constantly evolving. In addition, Open Source technologies bring digital assistant tools closer to developers, allowing them to experiment with them. One such tool is Rasa, an Open Source technology for creating industrial-level digital assistants with Artificial Intelligence. However, the use of Rasa requires a high level of programming software knowledge expertise. As digital assistants become more and more necessary in everyday applications, the barrier of know-how limits the number of people who are involved with them. The present Diploma Thesis focuses on the development of an easy-to-use scenario creation tool for Rasa with the aim of rapidly creating digital assistants. Using Python and specifically the framework Django, it presents the implementation of a full-stack application, from views and resource paths to models and back-end processes. This application makes it easy to create and edit digital assistants by automating most Rasa features. In addition, the application is used by creating digital assistants, simple and complex. First the design of the scenarios and stories that the discussion will take is presented and then they are implemented in the system. Finally, the assistants are tested and the result is evaluated from the examples of discussions. According to the results, the application can successfully create digital assistants that contain the basic components of Rasa. However, as digital assistants become more complex, some human intervention becomes necessary for the desired function to be implemented. Thus, although the application works as we want in simple and complex scenarios, when the operator needs something quite demanding in complexity, it is still necessary to know programming skills.
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...
Design and development of a tool for automating scenario production of digital assistants
1. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης
Πολυτεχνική Σχολή
Τμήμα Ηλεκτρολόγων Μηχανικών &
Μηχανικών Υπολογιστών
Τομέας Ηλεκτρονικής και Υπολογιστών
Διπλωματική Εργασία
Ανάπτυξη εργαλείου αυτοματοποίησης της
παραγωγής σεναρίων για τη δημιουργία
ψηφιακών βοηθών
Εκπόνηση:
Παναγιώτου Θεόφιλος
ΑΕΜ: 9164
Επίβλεψη:
Αν. Καθ. Συμεωνίδης Ανδρέας
Υπ. Δρ. Μάλαμας Νικόλας
2. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
2
Μεθοδολογία Συμπεράσματα
Εισαγωγή
Μελλοντικές
Επεκτάσεις
Πειράματα -
Αποτελέσματα
3. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
3
Κίνητρο - Περιγραφή του προβλήματος
Ανάπτυξη εργαλείων απλοποίησης της διαδικασίας δημιουργίας ψηφιακών βοηθών
Ένα τέτοιο εργαλείο είναι και το Rasa Framework
Η χρήση τέτοιων συστημάτων απευθύνεται αποκλειστικά
σε προγραμματιστές
Πρόβλημα
4. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
4
Σκοπός της διπλωματικής
Η υλοποίηση ενός εύχρηστου και φιλικού περιβάλλοντος χρήστη
Η αυτοματοποίηση της διαδικασίας παραγωγής ψηφιακών βοηθών
Η δοκιμή ψηφιακών βοηθών και σύγκριση τους για τον έλεγχο
αποτελεσματικότητας και χρησιμότητας του συστήματος
5. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
5
Μεθοδολογία Συμπεράσματα
Εισαγωγή
Μελλοντικές
Επεκτάσεις
Πειράματα -
Αποτελέσματα
6. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
6
Λειτουργία του ψηφιακού βοηθού
Κάθε ψηφιακός βοηθός Rasa ακολουθεί τα παρακάτω στάδια με κάθε είσοδο που λαμβάνει
7. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
Βασικά στοιχεία του Rasa
Intents (Προθέσεις)
Stories (Ιστορίες)
Rules (Κανόνες)
Responses
(Απαντήσεις)
♦ Οι προθέσεις είναι η κατανόηση του
ψηφιακού βοηθού
♦ Οι ιστορίες σχηματίζουν τη ροή της
συζήτησης
⬧ Οι απαντήσεις είναι οι προτάσεις
εξόδου του ψηφιακού βοηθού
♦ Οι κανόνες είναι υποχρεωτικές
κατευθύνσεις της συζήτησης
7
8. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
Έξτρα συστατικά
1 Forms (Φόρμες):
Αποθήκευση στοιχείων από την
απάντηση του χρήστη
2 Entities (Οντότητες):
Δομημένα κομμάτια
πληροφορίας μέσα στα μηνύματα
του χρήστη
3 Slots (Θέσεις μνήμεις):
Ειδικός αποθηκευτικός χώρος για
απαντήσεις του χρήστη
4 Custom Actions (Προσαρμοσμένες
δράσεις):
Προγραμματισμός εξειδικευμένων
δράσεων για πιο πολύπλοκες
διαδικασίες
8
10. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
10
Αρχιτεκτονική Συστήματος
✽ URLs: Κατεύθυνση προς τα
κατάλληλα views
✽ Views: Συναρτήσεις που
λαμβάνουν δεδομένα από τα
μοντέλα και καθιστούν τα
πρότυπα των σελίδων
✽ Models: Αναπαράσταση των
μοντέλων της βάσης
✽ Templates: Σελίδες
αλληλεπίδρασης του χρήστη
Χρήση του Framework
11. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
11
Δομή της Βάσης Δεδομένων
Κάθε χρήστης έχει ένα προφίλ και ένα ή
περισσότερα Chatbot (ψηφιακό βοηθό)
Κάθε Chatbot έχει ένα ή περισσότερα
Intents (προθέσεις), Stories (ιστορίες),
Rules (κανόνες), Forms (φόρμες),
Responses (απαντήσεις), Custom
Actions (σύνθετες δράσεις)
Κάθε ένα από τα Intents μπορεί να έχει
περισσότερα από ένα Examples
(παραδείγματα) όπως και κάθε Story
μπορεί να έχει περισσότερα από ένα
Steps (βήματα)
13. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
13
Η σύνταξη του ψηφιακού βοηθού
Level 1
Ανάκτηση
αντικειμένων από τη
βάση δεδομένων και
διαμοιρασμός στις
κατάλληλες
συναρτήσεις
Level 2
Ένταξη αντικειμένων
σε λίστες και
προεπεξεργασία των
δεδομένων
Level 3
Μετατροπή των
λιστών σε YAML
Level 5
Εκπαίδευση του
μοντέλου
Level 4
Σύνταξη των
σεναρίων του
ψηφιακού βοηθού
14. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
14
Μεθοδολογία Συμπεράσματα
Εισαγωγή
Μελλοντικές
Επεκτάσεις
Πειράματα -
Αποτελέσματα
15. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
15
Απλός ψηφιακός βοηθός
Το σχεδιάγραμμα συνομιλίας του ψηφιακού
βοηθού Moodbot
Αναγνώριση διάθεσης του χρήστη και
κατάλληλη απάντηση σε αυτόν
Ένα απλό παράδειγμα χρήσης
ψηφιακού βοηθού
17. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
17
Σύνθετος ψηφιακός βοηθός με φόρμες
Ένα παράδειγμα ψηφιακού βοηθού που
χρησιμοποιεί φόρμες με θήκες μνήμης
Λαμβάνει τις απαντήσεις από τον χρήστη
και τις επαναχρησιμοποιεί
Μπορεί να τις αποθηκεύσει ή και να τις
ενσωματώσει σε επόμενες απαντήσεις
18. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
18
Συνομιλία με τον σύνθετο ψηφιακό βοηθό με φόρμες
19. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
19
Σύνθετος ψηφιακός βοηθός με δράσεις
Ο ψηφιακός βοηθός μπορεί επίσης να
χρησιμοποιήσει σύνθετες δράσεις
Προγραμματίζονται σε Python και μπορούν
να τρέξουν ό,τι κώδικα θελήσει ο δημιουργός
Μια συνήθης χρήση είναι η κλήση σε
APIs για λήψη δεδομένων
20. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
20
Συνομιλία με τον σύνθετο ψηφιακό βοηθό με δράσεις
21. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
21
Μεθοδολογία Συμπεράσματα
Εισαγωγή
Μελλοντικές
Επεκτάσεις
Πειράματα -
Αποτελέσματα
22. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
22
Συμπεράσματα
➤ Το Django είναι ικανό να δημιουργήσει μια εφαρμογή μεγάλης έκτασης,
διαχειρίζοντας κατάλληλα τα μοντέλα και τις CRUD διεργασίες της.
➤ Η εφαρμογή μπορεί να συνθέσει ψηφιακούς βοηθούς όλων των δυνατοτήτων,
απλά όταν αυξάνεται η πολυπλοκότητα του μονοπατιού χρειάζεται μεγαλύτερη
τεχνική γνώση.
➤ Το Rasa είναι αρκετά βαρύ λογισμικό γιατί χρησιμοποιεί βιβλιοθήκες μηχανικής
μάθησης με πολλές εξαρτήσεις, οπότε δυσκολεύει το στήσιμο του σε διακομιστή.
➤ Το Django με την DTL (Django Template Language) δημιουργεί τις όψεις σε
ικανοποιητικό επίπεδο, μαζί με τα Crispy Forms για τη μορφοποίηση των φορμών.
23. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
23
Μεθοδολογία Συμπεράσματα
Εισαγωγή
Μελλοντικές
Επεκτάσεις
Πειράματα -
Αποτελέσματα
24. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
24
Μελλοντικές επεκτάσεις
� Εγκατάσταση της εφαρμογής σε υποδομές Cloud
� Αναζήτηση για κενά ασφαλείας και κάλυψη τους
� Μετάβαση της αρχιτεκτονικής σε REST API
� Χρήση εργαλείων DevOps για την αυτοματοποίηση και τον έλεγχο του
κύκλου ζωής του λογισμικού
25. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
25
Ευχαριστίες
● Τον κ. Συμεωνίδη Ανδρέα για την στήριξη του και τις γνώσεις που μας
έχει μεταφέρει όλα αυτά τα χρόνια
● Τον επιβλέπον Υπ. Δρ. Μάλαμα Νικόλα για την βοήθεια και την
καθοδήγηση του
● Φίλους και συγγενείς που μου συμπαραστάθηκαν κατά τη διάρκεια των
σπουδών μου
Θα ήθελα να ευχαριστήσω:
26. Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων
για την δημιουργία ψηφιακών βοηθών
26
Ερωτήσεις;
Ευχαριστώ πολύ για την προσοχή σας!