background image

 

 

89 

 

επαναληψιμότητα  των  ερωτήσεων,  των  απαντήσεων  ή  των  βοηθητικών  μηνυμάτων  που 

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

τρόπο ώστε να μπορεί εύκολα να δεχτεί νέες προσθήκες, θεματικές, NPCs και γραφικά, χωρίς 

να απαιτούνται περαιτέρω τροποποιήσεις στο σύνολό του. 

6.2. Αντιμετώπιση προκλήσεων 

Παρά τις αρχικές προκλήσεις με την απόδοση και τις καθυστερήσεις στις απαντήσεις του LLM, 

πραγματοποιήθηκαν  βελτιστοποιήσεις  στο  API  και  τη  διαδικασία  επικοινωνίας, 

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

πόρων  του  συστήματος  προσαρμόστηκε  έτσι  ώστε  να  επιτρέπει  την  ομαλή  εκτέλεση  του 

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

επεξεργαστικής ισχύος από το LLM. 

Συγκεκριμένα: 

•  Αποτελεσματική  διαχείριση  διεργασιών  μέσω  Subprocess:  Η  χρήση  του 

subprocess.check_output  για  την  κλήση  του  LLM  (ollama)  επιτρέπει  την  εκτέλεση 

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

αποφεύγοντας  την  υπερφόρτωση  της  κύριας  εκτέλεσης  και  εξασφαλίζοντας  τη 

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

συστήματος. 

•  Διαχείριση Βάσης Δεδομένων (SQLite): Η αποθήκευση δεδομένων (όπως ερωτήσεις 

και  απαντήσεις  χρηστών)  στη  βάση  δεδομένων  SQLite  εξασφαλίζει  ότι  οι  πόροι 

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

κατά τη διάρκεια της λειτουργίας του παιχνιδιού. Αυτή η διαδικασία ενσωματώνεται με 

SQL queries για την καταγραφή και την επαναχρησιμοποίηση των δεδομένων χωρίς να 

απαιτούνται επιπλέον υπολογιστικοί πόροι. 

•  Χρήση  global  μεταβλητών:  Γίνεται  χρήση  παγκόσμιων  μεταβλητών  (π.χ. 

initial_response_sent,  follow_up_question_sent,  no_more_questions),  οι  οποίες 

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

διεργασίες και διασφαλίζοντας ότι οι πόροι χρησιμοποιούνται μόνο όταν απαιτείται. 

•  Αποφυγή  επαναλαμβανόμενων  ερωτήσεων:  Μέσω  της  αποθήκευσης  και 

επεξεργασίας  των  ερωτήσεων  και  των  απαντήσεων  στην  SQLite,  αποφεύγεται  η 

επανάληψη της ίδιας ερώτησης, απάντησης ή βοηθητικού μηνύματος.