Νικόλαος Λυμπιτάκης, Κατασκευή ενός RAG Chatbot για
Ξενοδοχειακή Υποστήριξη
43
πληροφορία (π.χ. η απάντηση που αντιστοιχεί σε μια ερώτηση).
Με τη χρήση της
εντολής save_local, τα ευρετήρια αποθηκεύονται μόνιμα στον υπολογιστή.
# Δηµιουργία και τοπική αποθήκευση του Vector Store
vector_store = FAISS.from_texts(documents, embeddings,
metadatas=metadatas)
vector_store.save_local(FAQ_VECTOR_STORE_PATH)
…
vector_store.save_local(REVIEWS_VECTOR_STORE_PATH)
…
vector_store.save_local(POIS_VECTOR_STORE_PATH)
Εικόνα 16 : Kώδικας από setup_vector_stores.py
4.3 Σχεδιασμός και ανάπτυξη Βάσης Δεδομένων (SQLite)
Για την αποθήκευση και αποτελεσματική διαχείριση των δομημένων δεδομένων του
συστήματος, επιλέχθηκε το Σύστημα Διαχείρισης Βάσεων Δεδομένων SQLite. Η βάση
δεδομένων (hotel.db) αποτελεί τη κεντρική βάση αποθήκευσης, εξυπηρετώντας δύο
διακριτούς αλλά συμπληρωματικούς επιχειρησιακούς σκοπούς:
1. Διαχείριση Επιχειρησιακών Δεδομένων: Αποθήκευση πληροφοριών σχετικά με
τη διαθεσιμότητα των δωματίων και τις κρατήσεις των πελατών.
2. Καταγραφή Ιστορικού και Αξιολόγηση: Τήρηση αρχείου των συνομιλιών
(logging) και των αξιολογήσεων των χρηστών (feedback) για την ανάλυση της
απόδοσης του chatbot.
Η επιλογή της SQLite έγινε λόγω της απλότητας της, για την διασφάλιση της
ακεραιότητας των συναλλαγών, την συμβατότητα με τη γλώσσα Python (μέσω της
βιβλιοθήκης sqlite3) και την ευκολία διαχείρισης που προσφέρει ένα serverless σύστημα.
Ο σχεδιασμός της βάσης δεδομένων ακολουθεί το Διάγραμμα Οντοτήτων-
Συσχετίσεων (ER Diagram).
Το σχήμα αποτελείται από τέσσερις 4 κύριους πίνακες, οι
οποίοι οργανώνονται σε δύο λογικές ενότητες: