background image

 

Νικόλαος Λυμπιτάκης, Κατασκευή ενός RAG Chatbot για 
Ξενοδοχειακή Υποστήριξη 

 

 
 

 

49 

        if results: 
            return results[0].metadata['answer'] 

        else: 

            return “I couldn't find an answer to that question in our 

FAQ.” 

    else: 
        return "I'm sorry, I couldn't access the FAQ information right 

now." 

 

 

Εικόνα 19 : Kώδικας του tool “get_faq_answer” από το chatbot_logic.py 

 

 

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

που επεκτείνουν τις δυνατότητες πληροφόρησης του συστήματος: 

 

Η  συνάρτηση  get_review_summary()  επιτρέπει  στον  πράκτορα  να  αναλύει  την 

εμπειρία  προηγούμενων  επισκεπτών.  Αντί  να  επιστρέφει  μεμονωμένες  κριτικές,  το 

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

της θεματολογίας που εισάγει ο χρήστης (π.χ. καθαριότητα, εστίαση). Με αυτόν τον τρόπο, 

ο  πράκτορας  μπορεί  να  διαμορφώσει  μια  αντικειμενική  σύνοψη  της  ποιότητας  των 

υπηρεσιών. 

 

Για  την  παροχή  πληροφοριών  σχετικά  με  την  τοποθεσία  του  ξενοδοχείου, 

υλοποιήθηκε  η  συνάρτηση  find_points_of_interest().  Το  εργαλείο  αυτό  αναζητά  στη 

διανυσματική βάση δεδομένων POI (Points of Interest) αξιοθέατα, τοπικές επιχειρήσεις κτλ. 

που  ταιριάζουν  με  το  ερώτημα  του  χρήστη.  Τα  αποτελέσματα  περιλαμβάνουν  την 

ονομασία, τη διεύθυνση και την κατηγορία του σημείου, ενισχύοντας τον ρόλο του chatbot 

ως ολοκληρωμένου τουριστικού οδηγού. 

 

Η διαχείριση των δυναμικών δεδομένων που αφορούν τη διαμονή πραγματοποιείται 

μέσω  των  συναρτήσεων  get_available_rooms()  και  get_room_info().  Τα  εργαλεία  αυτά 

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

ερωτήματα SQL. Η πρώτη συνάρτηση ελέγχει σε πραγματικό χρόνο τη διαθεσιμότητα των 

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

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

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

μια  διανυσματική  βάση.

  Για  την  υλοποίηση  αυτών  των  εργαλείων  επιλέχθηκε  η  χρήση 

προκαθορισμένων ερωτημάτων SQL αντί της δυναμικής παραγωγής κώδικα SQL από το 

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