41
Δυναμική Δημιουργία Ερωτήσεων
Εικόνα 23.Διεξαγωγή διαλόγου
Με την get_unasked_question το LLM αντλεί από τη βάση δεδομένων τις
αποθηκευμένες ερωτήσεις και τις απαντήσεις τους και μέσω prompt του δίνεται η εντολή να
θέσει μία πρωτότυπη ερώτηση. Η ανάγκη για αυτή τη λειτουργία προέκυψε από το γεγονός ότι
χωρίς αυτήν, το LLM είτε επαναλάμβανε την ίδια ερώτηση είτε την παράφραζε οδηγώντας
στην ίδια απάντηση με την προηγούμενη.
Η συνάρτηση get_answered_questions (user_id,
knowledge_topic) ανακτά όλες τις ερωτήσεις που έχει ήδη απαντήσει ο χρήστης για το
συγκεκριμένο θέμα και τις μετατρέπει στη λίστα answered_texts, ώστε να δοθούν στο LLM ως
αναφορά για την αποφυγή επανάληψης. Παράλληλα, η get_last_user_age() επιστρέφει την
τελευταία καταχωρημένη ηλικία του χρήστη, επιτρέποντας στο LLM να προσαρμόσει τη νέα
ερώτηση στο κατάλληλο επίπεδο δυσκολίας. Το μοντέλο λαμβάνει την οδηγία να δημιουργήσει
μια μοναδική ερώτηση και απάντηση σχετική με το knowledge_topic, αποφεύγοντας να
επαναλάβει προηγούμενες ερωταπαντήσεις. Στη συνέχεια, εντοπίζεται η ερώτηση και η
απάντηση στην έξοδο του μοντέλου και απομονώνεται το περιεχόμενό τους, αφαιρώντας
περιττές πληροφορίες. Αν η παραγόμενη ερώτηση και απάντηση δεν υπάρχει ήδη στη λίστα
των απαντημένων, επιστρέφεται ως νέα. Διαφορετικά, επιστρέφεται None, None. Σε
περίπτωση σφάλματος κατά την εκτέλεση του LLM, το πρόγραμμα εμφανίζει μήνυμα λάθους
και επιστρέφει None, None.