Σχεδιασμός και Υλοποίηση εξειδικευμένου chatbot για διαδικτυακές πλατφόρμες
79
Η επιλογή του μεγέθους δεν ήταν αυθαίρετη. Τμήματα αυτής της τάξης προσφέρουν αρκετό
πλαίσιο ώστε κάθε απόσπασμα να στέκεται νοηματικά μόνο του, χωρίς να γίνονται τόσο
μεγάλα που να αραιώνουν το σήμα της σημασιολογικής αναζήτησης, ενώ η μικρή επικάλυψη
εξασφαλίζει ότι μια πρόταση που τέμνεται στο όριο δύο τμημάτων δεν χάνει το νόημά της.
Κάθε τμήμα μετατρέπεται σε διάνυσμα με το μοντέλο BGE-M3, που εκτελείται τοπικά μέσω
του Ollama σε ομάδες για ταχύτητα, και αποθηκεύεται στη ChromaDB μαζί με τα
μεταδεδομένα του. Για να μην παράγουν διπλότυπα οι ανανεώσεις, κάθε τμήμα παίρνει ένα
σταθερό μοναδικό αναγνωριστικό που προκύπτει από τη διεύθυνση και το περιεχόμενό του. Σε
συνδυασμό με την κατάσταση που κρατά η SQLite, ο αγωγός αναγνωρίζει τις σελίδες που δεν
έχουν αλλάξει και παραλείπει τόσο τη λήψη όσο και την εκ νέου διανυσματοποίησή τους,
εξοικονομώντας σημαντικό χρόνο στις περιοδικές ενημερώσεις.
5.2 Ανάκτηση και έλεγχοι εισόδου
Το δεύτερο μέρος ενεργοποιείται ζωντανά, με κάθε ερώτηση. Περιλαμβάνει τη μονάδα
ανάκτησης, που βρίσκει το σχετικό υλικό μέσα στη βάση, και τους ελέγχους εισόδου, που
αποφασίζουν γρήγορα πώς πρέπει να αντιμετωπιστεί κάθε ερώτημα προτού φτάσει στην
ανάκτηση.
5.2.1 Η μονάδα ανάκτησης
Η μονάδα ανάκτησης μετατρέπει πρώτα την ερώτηση σε διάνυσμα με το ίδιο μοντέλο που
χρησιμοποιήθηκε στην ευρετηρίαση, και έπειτα ρωτά τη ChromaDB για τα πιο κοντινά
τμήματα. Η βάση επιστρέφει αποστάσεις, τις οποίες μετατρέπουμε σε ομοιότητα, και πάνω σε
αυτές προσθέτουμε τη βαρύτητα επικαιρότητας. Για τα συνηθισμένα ερωτήματα η βαρύτητα
αυτή είναι ήπια, ενώ για τα χρονικά εξαρτημένα ερωτήματα γίνεται πολύ πιο έντονη και
συνδυάζεται με χαλαρότερα κατώφλια, αφού εκεί προέχει η επικαιρότητα της πληροφορίας.
Όταν ένα έγγραφο δεν έχει καταγεγραμμένη ημερομηνία, την ανακτούμε όπου γίνεται από τη