background image

Σχεδιασμός και Υλοποίηση εξειδικευμένου chatbot για διαδικτυακές πλατφόρμες

 

73

 

4.4.2 Παραγωγή απάντησης και διεπαφή χρήστη 

Τα τμήματα που επιλέγονται από την ανάκτηση δίνονται ως συμφραζόμενα σε ένα τοπικό 

γλωσσικό  μοντέλο,  το  llama3.1:8b  (q4_k_m),  το  οποίο  συνθέτει  την  τελική  απάντηση.  Η 

οδηγία προς το μοντέλο σχεδιάστηκε με προσοχή και είναι δίγλωσση,  ώστε να απαντά στη 

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

μην  αξιοποιεί  δικές  της  γνώσεις  εκτός  συμφραζομένων  και  να  αγνοεί  τυχόν  οδηγίες  που 

εμφανίζονται  μέσα  στο  ίδιο  το  περιεχόμενο,  κάτι  που  λειτουργεί  ως  ασπίδα  απέναντι  σε 

προσπάθειες  χειραγώγησης.  Κάθε  απάντηση  κλείνει  με  την  πηγή  και  με  ένα  ποσοστό 

βεβαιότητας, ώστε ο χρήστης να έχει πάντα μπροστά του την προέλευση της πληροφορίας. Η 

αλληλεπίδραση γίνεται μέσα από μια απλή διεπαφή φτιαγμένη με το Chainlit, η οποία δίνει 

επίσης τη δυνατότητα στον χρήστη να αξιολογήσει την απάντηση με ένα θετικό ή αρνητικό 

σχόλιο.  Αυτή  η  ανατροφοδότηση  δεν  χάνεται.  Αποθηκεύεται  σε  μια  βάση  ερωτήσεων  -

απαντήσεων, και όταν μια νέα ερώτηση μοιάζει πολύ με κάποια παλιότερη που είχε ήδη κριθεί 

χρήσιμη, το σύστημα μπορεί να επαναχρησιμοποιήσει την εγκεκριμένη απάντηση, κερδίζοντας 

σε ταχύτητα και σταθερότητα. 

 

4.4.3 Η περίπτωση του πράκτορα ReAct 

Αξίζει να σταθούμε σε μια σχεδιαστική απόφαση που άλλαξε πορεία κατά τη διάρκεια της 

εργασίας, γιατί είναι διδακτική για τον σχεδιασμό τέτοιων συστημάτων. Στην αρχική σχεδίαση 

είχαμε  προβλέψει  έναν  πράκτορα  τύπου  ReAct,  δηλαδή  ένα  γλωσσικό  μοντέλο  που  θα 

λειτουργούσε ως μηχανή αποφάσεων: για κάθε ερώτημα θα έκρινε αν χρειάζεται αναζήτηση 

στα έγγραφα ή στη μνήμη, θα επαναδιατύπωνε την ερώτηση όπου χρειαζόταν και θα απέρριπτε 

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

έλυνε.  Απέρριπτε  συχνά  έγκυρες  ερωτήσεις  θεωρώντας  τις  λανθασμένα  ύποπτες,  ενώ  κάθε 

απόφασή του πρόσθετε άλλη μία κλήση στο μοντέλο, άρα και επιπλέον καθυστέρηση.