background image

 

 

43 

 

 

 

Παροχή Βοηθητικών Μηνυμάτων 

Όταν ο χρήστης δεν απαντά σωστά, το LLM είναι υπεύθυνο για την παροχή βοηθητικών 

μηνυμάτων,  τα  οποία  καθοδηγούν  τον  χρήστη  προς  τη  σωστή  απάντηση  χωρίς  να  την 

αποκαλύπτουν  άμεσα.  Αυτό  ενισχύει  τον  εκπαιδευτικό  χαρακτήρα  του  παιχνιδιού,  δίνοντας 

στον χρήστη την ευκαιρία να σκεφτεί και να βρει τη σωστή απόκριση με βάση τις παρεχόμενες 

υποδείξεις. Η get_last_user_age() επιστρέφει την τελευταία καταχωρημένη ηλικία του χρήστη, 

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

και η συνάρτηση επιστρέφει False και κενές τιμές. Το βοηθητικό μήνυμα είναι προσαρμοσμένο 

στην ηλικία του χρήστη, ώστε να είναι κατάλληλο για το επίπεδό του.

 Το παραγόμενο μήνυμα 

καθαρίζεται από τυχόν περιττά κενά πριν επιστραφεί. Αν προκύψει σφάλμα κατά την εκτέλεση 

του LLM, εμφανίζεται μήνυμα λάθους και επιστρέφεται η προεπιλεγμένη απάντηση "Couldn't 

generate a hint.", διασφαλίζοντας έτσι την ομαλή λειτουργία του. 

 

def generate_hint(user_answer, correct_answer): 
    try: 
        user_age = get_last_user_age() 

        if user_age is None: 
            print("No user age found in the database.") 
            return False, "", "" 

        llm_prompt = (f"Provide a helpful hint in a few words, suitable for age {user_age} to 
guide the user towards the correct answer, without commenting or checking what you did, just 
provide the hint. " 
       f"The user's answer is '{user_answer}', and the correct answer is '{correct_answer}'. " 

       f"Ensure that the hint leads the user closer to the correct answer without revealing it." 
       f"Make sure to provide guidance on understanding the context of the answer.") 
       print(f"Generated LLM prompt: {llm_prompt}") 
       llm_run = ['ollama', 'run', 'llama3:latest', llm_prompt] 

       output = subprocess.check_output(llm_run, encoding='utf-8', stdin=subprocess.DEVNULL) 
       hint = output.strip() 
       print(f"Generated Hint: {hint}") 

       return hint 
   except subprocess.CalledProcessError as e: 
       print(f"Error generating hint: {e}") 
       return "Couldn't generate a hint." 

 

Με τη χρήση app.route η set_no_more_questions, ενημερώνει το chat και μηδενίζει τον 

αριθμό των ερωτήσεων, ώστε να είναι δυνατός ο συγχρονισμός της μεταβλητής στο αρχείο 

chat.py.