Τι είναι το RAG; Retrieval-Augmented Generation εξηγημένο απλά
Το RAG (retrieval-augmented generation) είναι ένας τρόπος να απαντά ένα μοντέλο AI σε ερωτήσεις χρησιμοποιώντας τις δικές σου πληροφορίες. Όταν κάποιος κάνει μια ερώτηση, η εφαρμογή σου ψάχνει πρώτα στα έγγραφά σου τα πιο σχετικά αποσπάσματα και μετά τα δίνει στο μοντέλο μαζί με την ερώτηση. Το μοντέλο γράφει την απάντησή του από αυτό το κείμενο, αντί να βασίζεται μόνο σε όσα έτυχε να μάθει στην εκπαίδευσή του.
Γιατί έχει σημασία το RAG όταν χτίζεις με AI
Ένα μεγάλο γλωσσικό μοντέλο ξέρει πολλά για τον κόσμο γενικά, αλλά τίποτα για την επιχείρησή σου: τις τιμές σου, τις πολιτικές σου, το εγχειρίδιο προϊόντων, τα αιτήματα υποστήριξης της προηγούμενης εβδομάδας. Έχει επίσης ημερομηνία αποκοπής εκπαίδευσης, οπότε δεν ξέρει τίποτα πρόσφατο. Αν του κάνεις την ερώτηση ούτως ή άλλως, μπορεί να σου δώσει μια σίγουρη, εύλογη και λανθασμένη απάντηση.
Έχεις τρεις βασικές επιλογές για να το λύσεις:
| Προσέγγιση | Τι κάνει | Κατάλληλο για |
|---|---|---|
| Να βάλεις τα πάντα στο prompt | Στέλνεις όλα τα έγγραφά σου με κάθε ερώτηση | Λίγο κείμενο — μερικές σελίδες |
| RAG | Ψάχνεις στα έγγραφά σου και στέλνεις μόνο τα σχετικά μέρη | Μεγαλύτερες ή μεταβαλλόμενες συλλογές: κέντρα βοήθειας, εγχειρίδια, σημειώσεις |
| Fine-tuning | Εκπαιδεύεις περαιτέρω το μοντέλο σε παραδείγματα | Τόνος, μορφή και επαναλαμβανόμενες εργασίες — όχι γεγονότα που αλλάζουν |
Τα σύγχρονα μοντέλα δέχονται μεγάλα prompts, οπότε για ένα σύντομο FAQ η πρώτη επιλογή είναι συχνά αρκετή. Το RAG αξίζει όταν έχεις περισσότερο κείμενο απ' όσο θέλεις να στέλνεις κάθε φορά — γιατί κάθε λέξη που στέλνεις κοστίζει χρήματα και χρόνο (δες πώς χρεώνουν τα LLM APIs).
Αν χτίζεις λειτουργία «συνομίλησε με τα έγγραφά μας», βοηθό υποστήριξης ή εσωτερικό εργαλείο γνώσης, σχεδόν σίγουρα χτίζεις κάποια μορφή RAG.
Μια καθημερινή αναλογία
Σκέψου ένα διαγώνισμα με ανοιχτό βιβλίο. Ένας μαθητής που πρέπει να απαντήσει από μνήμης μπορεί να θυμηθεί λάθος ή να μπλοφάρει. Ένας μαθητής που επιτρέπεται πρώτα να ανοίξει στις σωστές σελίδες, να τις διαβάσει και μετά να απαντήσει είναι πολύ πιο αξιόπιστος — αρκεί να βρει τις σωστές σελίδες.
- Ο μαθητής είναι το γλωσσικό μοντέλο.
- Το βιβλίο είναι τα έγγραφά σου.
- Το άνοιγμα στις σωστές σελίδες είναι η ανάκτηση (retrieval).
- Το γράψιμο της απάντησης από αυτές τις σελίδες είναι η παραγωγή (generation).
Το RAG είναι η έκδοση με ανοιχτό βιβλίο. Και, όπως στο διαγώνισμα, η ποιότητα της απάντησης εξαρτάται σε μεγάλο βαθμό από το αν βρέθηκαν οι σωστές σελίδες.
Πώς λειτουργεί το RAG, βήμα βήμα
Μια τυπική εγκατάσταση RAG έχει δύο φάσεις.
Προετοιμασία των εγγράφων σου (γίνεται εκ των προτέρων):
- Συλλογή του υλικού προέλευσης — άρθρα βοήθειας, PDFs, πολιτικές, δεδομένα προϊόντων.
- Chunking: χώρισε τα μεγάλα έγγραφα σε μικρότερα κομμάτια, συχνά λίγες παραγράφους το καθένα, ώστε η αναζήτηση να επιστρέφει μόνο το σχετικό μέρος.
- Embedding κάθε κομματιού: στείλ' το σε ένα μοντέλο embeddings, που μετατρέπει το κείμενο σε embedding — μια μακριά λίστα αριθμών που αποτυπώνει το νόημά του. Κείμενα για παρόμοια πράγματα καταλήγουν με παρόμοιους αριθμούς.
- Αποθήκευση των κομματιών και των embeddings τους σε βάση δεδομένων που μπορεί να αναζητά με ομοιότητα (συχνά λέγεται vector database ή vector index).
Απάντηση σε μια ερώτηση (γίνεται κάθε φορά):
- Embedding της ερώτησης με το ίδιο μοντέλο embeddings.
- Ανάκτηση των κομματιών με embeddings πιο κοντά σε αυτό της ερώτησης — ας πούμε τα πρώτα πέντε.
- Κατασκευή του prompt: οδηγίες, τα ανακτημένα κομμάτια και η ερώτηση.
- Παραγωγή: το γλωσσικό μοντέλο γράφει απάντηση βασισμένη σε αυτά τα κομμάτια, κατά προτίμηση αναφέροντας ποια χρησιμοποίησε.
Η αναζήτηση με βάση το νόημα είναι αυτό που κάνει τη διαδικασία να δουλεύει: μια ερώτηση για το «πώς παίρνω πίσω τα χρήματά μου» μπορεί να βρει ένα κομμάτι με τίτλο «Πολιτική επιστροφής», παρότι δεν έχουν καμία κοινή λέξη.
Ένα παράδειγμα: ο βοηθός βοήθειας ενός γυμναστηρίου
Υποθέστε ότι ένα γυμναστήριο έχει 40 άρθρα βοήθειας και θέλει έναν βοηθό συνομιλίας στην ιστοσελίδα του. Ένα μέλος ρωτά: «Μπορώ να παγώσω τη συνδρομή μου όταν ταξιδεύω;»
Η εφαρμογή κάνει embedding την ερώτηση και ανακτά τα τρία πιο κοντινά κομμάτια. Ένα από αυτά γράφει:
Πάγωμα συνδρομής: Τα μέλη με μηνιαίο πλάνο μπορούν να παγώσουν
τη συνδρομή τους έως 2 μήνες τον χρόνο. Ζήτα το στη ρεσεψιόν
ή στην εφαρμογή τουλάχιστον 7 ημέρες πριν ξεκινήσει το πάγωμα.
Το prompt που στέλνεται στο μοντέλο μοιάζει κάπως έτσι:
Είσαι ο βοηθός βοήθειας του Northside Gym.
Απάντα μόνο από τις πηγές που ακολουθούν. Αν η απάντηση
δεν βρίσκεται σε αυτές, πες ότι δεν ξέρεις και πρότεινε
επικοινωνία με τη ρεσεψιόν.
ανάφερε ποια πηγή χρησιμοποίησες.
[Πηγή 1: Πάγωμα συνδρομής] Τα μέλη με μηνιαίο πλάνο μπορούν να παγώσουν...
[Πηγή 2: Ακύρωση συνδρομής] ...
[Πηγή 3: Προσκλήσεις επισκεπτών] ...
Ερώτηση: Μπορώ να παγώσω τη συνδρομή μου όταν ταξιδεύω;
Και το μοντέλο απαντά: «Ναι — με μηνιαίο πλάνο μπορείς να παγώσεις τη συνδρομή σου έως δύο μήνες τον χρόνο. Ζήτα το στη ρεσεψιόν ή στην εφαρμογή τουλάχιστον 7 ημέρες πριν (πηγή: Πάγωμα συνδρομής).»
Το γυμναστήριο δεν εκπαίδευσε τίποτα εκ νέου. Όταν αλλάξει την πολιτική παγώματος, ενημερώνει το άρθρο, η εφαρμογή κάνει ξανά embedding εκείνο το κομμάτι και η επόμενη απάντηση το αντικατοπτρίζει.
Βασικοί όροι
| Όρος | Σημασία |
|---|---|
| LLM | Μεγάλο γλωσσικό μοντέλο — η AI που γράφει την απάντηση. Δες τι είναι ένα LLM. |
| Embedding | Μια λίστα αριθμών που αντιπροσωπεύει το νόημα ενός κομματιού κειμένου. |
| Embedding model | Μοντέλο που παράγει embeddings. Συνήθως είναι ξεχωριστό από το μοντέλο συνομιλίας και πολύ φθηνότερο. |
| Chunk | Ένα κομμάτι εγγράφου, μεγέθους που μπορεί να ανακτηθεί μόνο του. |
| Vector database / vector search | Αποθήκευση που βρίσκει στοιχεία με παρόμοια embeddings. Κάποιες κανονικές βάσεις το προσφέρουν επίσης — το Postgres, για παράδειγμα, μέσω της επέκτασης pgvector. |
| Top-k | Πόσα κομμάτια ανακτώνται ανά ερώτηση. |
| Hybrid search | Συνδυασμός αναζήτησης με βάση το νόημα και κλασικής αναζήτησης με λέξεις-κλειδιά, που βοηθά σε ακριβείς όρους όπως κωδικοί προϊόντων. |
| Context window | Το μέγιστο κείμενο που μπορεί να δεχτεί ένα μοντέλο σε ένα αίτημα. |
| Grounding / citations | Σύνδεση της απάντησης με συγκεκριμένες ανακτημένες πηγές και εμφάνισή τους. |
Συνηθισμένες παρανοήσεις
- «Το RAG εκπαιδεύει το μοντέλο με τα δεδομένα μου.» Δεν το κάνει. Τίποτα στο μοντέλο δεν αλλάζει· απλώς διαβάζει επιπλέον κείμενο τη στιγμή της ερώτησης.
- «Το RAG σημαίνει ότι δεν υπάρχουν άλλες παραισθήσεις.» Σημαίνει λιγότερες. Αν η ανάκτηση χάσει το σωστό κομμάτι, ή αν η απάντηση δεν υπάρχει στα έγγραφά σου, το μοντέλο μπορεί ακόμα να μαντέψει. Δώσ' του οδηγία να λέει «δεν ξέρω» και δοκίμασε με ερωτήσεις των οποίων γνωρίζεις τις απαντήσεις.
- «Χρειάζομαι ειδική vector database.» Συχνά δεν χρειάζεσαι. Για μέτρια δεδομένα, μια επέκταση διανυσμάτων στη βάση που ήδη έχεις, ή ακόμα και απλή αναζήτηση λέξεων-κλειδιών, μπορεί να αρκεί.
- «Τα μεγαλύτερα κομμάτια είναι καλύτερα.» Αν είναι πολύ μεγάλα, στέλνεις πολύ άσχετο κείμενο (περισσότερο κόστος, περισσότερη σύγχυση)· αν είναι πολύ μικρά, ένα κομμάτι χάνει το πλαίσιο που το έκανε χρήσιμο. Περίμενε να προσαρμόσεις.
- «Απλά ανέβασε τα πάντα.» Παλιά, διπλά ή αντιφατικά έγγραφα παράγουν αντιφατικές απαντήσεις. Ο καθαρισμός του υλικού προέλευσης είναι συχνά η μεγαλύτερη βελτίωση που μπορείς να κάνεις.
- «Ο καθένας μπορεί να δει οποιοδήποτε έγγραφο.» Μόνο αν το χτίσεις έτσι. Αν κάποια έγγραφα είναι ιδιωτικά για ορισμένους χρήστες, η ίδια η αναζήτηση πρέπει να φιλτράρει με βάση το ποιος ρωτά — αλλιώς ο βοηθός μπορεί να αναφέρει δεδομένα ενός πελάτη σε έναν άλλο.
Τι κοστίζει
Μια λειτουργία RAG έχει συνήθως τρία συνεχή κόστη: το embedding των εγγράφων σου (μικρό και κυρίως εφάπαξ), το embedding κάθε ερώτησης (ελάχιστο) και την κλήση στο γλωσσικό μοντέλο (το κύριο κόστος, που μεγαλώνει με το πόσα κομμάτια στέλνεις). Συν την αποθήκευση στη βάση δεδομένων σου. Ο πάροχος AI τα χρεώνει στον δικό σου λογαριασμό, οπότε όρισε εκεί όριο δαπανών.
Τι να ζητάς από τον AI builder σου
- «Πριν χτίσεις RAG, έλεγξε: το περιεχόμενό μας είναι αρκετά μικρό ώστε απλώς να μπει στο prompt;»
- «Χώρισε τα άρθρα βοήθειας σε κομμάτια λίγων παραγράφων, κράτα τον τίτλο και τον σύνδεσμο πηγής κάθε κομματιού και αποθήκευσε τα embeddings στη βάση μας.»
- «Χρησιμοποίησε hybrid search — με βάση το νόημα και λέξεις-κλειδιά — ώστε οι κωδικοί προϊόντων να εξακολουθούν να ταιριάζουν.»
- «Πες στο μοντέλο να απαντά μόνο από τις ανακτημένες πηγές, να λέει πότε δεν ξέρει και να δείχνει τις πηγές κάτω από κάθε απάντηση.»
- «Να ψάχνεις μόνο έγγραφα που επιτρέπεται να δει ο συνδεδεμένος χρήστης.»
- «Κάνε ξανά embedding ένα έγγραφο αυτόματα όποτε τροποποιείται.»
- «Κράτα το κλειδί του παρόχου AI στον server, ως μυστικό, ποτέ στον browser.»
- «Κατέγραψε κάθε ερώτηση, τα ανακτημένα κομμάτια και την απάντηση, ώστε να ελέγχω τις κακές απαντήσεις.»
Το RAG στο Mythex
Το Mythex δεν περιλαμβάνει έτοιμο προϊόν βάσης γνώσης ή RAG. Αυτό που κάνει είναι να γράφει τον κώδικα για ένα τέτοιο σύστημα μέσα στην εφαρμογή σου: φέρνεις τα έγγραφά σου και το δικό σου κλειδί παρόχου AI, αποθηκευμένο ως μυστικό έργου, και ο agent χτίζει τα κομμάτια ανάκτησης και συνομιλίας, χρησιμοποιώντας τη βάση δεδομένων Postgres του έργου για αποθήκευση. Η χρήση του παρόχου χρεώνεται στον λογαριασμό του παρόχου σου, όχι σε credits του Mythex. Η τεκμηρίωση προτείνει να ξεκινήσεις με μία απλή λειτουργία AI και να προσθέσεις RAG όταν αυτή δουλεύει — δες χτίζοντας μια εφαρμογή AI, και τους οδηγούς μας για χτίσιμο εφαρμογής chatbot AI και προσθήκη λειτουργιών AI.
Ερωτήσεις
Τι είναι το RAG με απλά λόγια;
Το RAG (retrieval-augmented generation) είναι ένας τρόπος να απαντά ένα μοντέλο AI με βάση τις δικές σου πληροφορίες. Πριν απαντήσει το μοντέλο, η εφαρμογή σου ψάχνει στα έγγραφά σου τα αποσπάσματα που σχετίζονται περισσότερο με την ερώτηση και τα βάζει στο prompt, ώστε η απάντηση να βασίζεται σε αυτό το κείμενο και όχι μόνο σε όσα έμαθε το μοντέλο στην εκπαίδευσή του.
Το RAG εκπαιδεύει την AI με τα δεδομένα μου;
Όχι. Το RAG δεν αλλάζει καθόλου το μοντέλο. Αναζητά σχετικό κείμενο τη στιγμή που γίνεται μια ερώτηση και το περνά στο μοντέλο μαζί με την ερώτηση. Αν ενημερώσεις ένα έγγραφο, η επόμενη απάντηση μπορεί να χρησιμοποιήσει αμέσως τη νέα έκδοση.
Είναι το RAG το ίδιο με το fine-tuning;
Όχι. Το fine-tuning αλλάζει τη συμπεριφορά ενός μοντέλου εκπαιδεύοντάς το περαιτέρω σε παραδείγματα, κάτι πιο αργό και καλύτερο για ύφος ή μορφή. Το RAG δίνει στο μοντέλο γεγονότα να διαβάσει τη στιγμή της ερώτησης, κάτι καλύτερο για γνώση που αλλάζει ή που πρέπει να αναφέρεται με ακρίβεια.
Το RAG σταματά τις παραισθήσεις της AI;
Τις μειώνει, αλλά δεν τις εξαλείφει. Αν η αναζήτηση βρει λάθος αποσπάσματα, ή αν η απάντηση δεν υπάρχει στα έγγραφά σου, το μοντέλο μπορεί ακόμα να μαντέψει. Οι καλές εφαρμογές RAG λένε στο μοντέλο να δηλώνει όταν δεν ξέρει και δείχνουν τις πηγές που χρησιμοποίησαν.