Το text-to-SQL επιτρέπει σε έναν άνθρωπο να κάνει μια ερώτηση σε απλή γλώσσα, και στα ελληνικά, και να πάρει απάντηση υπολογισμένη από τη βάση δεδομένων της εταιρείας. Στα δημόσια benchmarks τα καλύτερα συστήματα έφταναν τον Σεπτέμβριο του 2026 περίπου 82% σωστές απαντήσεις, κοντά στο 93% των ανθρώπων ειδικών. Σε πραγματικές αποθήκες δεδομένων εταιρειών, τα καλύτερα συστήματα agents έφτασαν 10,8%. Ο κίνδυνος δεν είναι ένα μήνυμα σφάλματος, αλλά ένας πειστικός λάθος αριθμός που κανείς δεν μπορεί να ξεχωρίσει από τον σωστό. Για τις περισσότερες επιχειρήσεις, αυτό που δουλεύει είναι ένα επιμελημένο επίπεδο: λίγα ελεγμένα views της βάσης ή 15 έως 40 έτοιμες αναφορές, όπου η τεχνητή νοημοσύνη απλώς διαλέγει την αναφορά και συμπληρώνει ημερομηνίες και ονόματα.
Τι είναι το text-to-SQL;
Είναι ένα γλωσσικό μοντέλο που μετατρέπει μια ερώτηση όπως «πόσες παραγγελίες στείλαμε στη Θεσσαλονίκη τον προηγούμενο μήνα» σε ερώτημα προς τη βάση, το εκτελεί και επιστρέφει το αποτέλεσμα. Υπόσχεται ότι τα στελέχη μπορούν να ρωτούν ό,τι θέλουν το ERP ή τη βάση του e-shop χωρίς να περιμένουν αναφορά. Το μοντέλο πρέπει να ξέρει ποιοι πίνακες έχουν την απάντηση, πώς ενώνονται, ποιες εγγραφές μετράνε και τι σημαίνει πραγματικά η ερώτηση, και καθένα από αυτά είναι ένα σημείο όπου μπορεί να κάνει λάθος. Αν τα στοιχεία σας ζουν ακόμη σε λογιστικά φύλλα, το πρώτο βήμα είναι να μπουν σε βάση δεδομένων, όπως εξηγώ στο άρθρο «Το Excel σας είναι ένα ERP που αστοχεί αθόρυβα».
Πόσο ακριβές είναι το text-to-SQL;
Ακριβές σε καθαρές βάσεις benchmark και πολύ λιγότερο σε πραγματικές. Στο BIRD, το βασικό benchmark, τα κορυφαία συστήματα φτάνουν περίπου 82% σωστή εκτέλεση, έναντι 92,96% για ανθρώπους ειδικούς (BIRD, Σεπτέμβριος 2026). Στο BEAVER, που φτιάχτηκε από πραγματικά ερωτήματα σε ιδιωτικές αποθήκες δεδομένων, τα πιο προηγμένα συστήματα agents με ένα τρέχον κορυφαίο μοντέλο έφτασαν 10,8%, και 30,1% ακόμη και με υποδείξεις για κάθε βήμα (BEAVER). Μια εγκατάσταση σε πραγματική λειτουργία, από έναν μεγάλο πάροχο cloud, ξεκίνησε από 36,77% σε πραγματικές ερωτήσεις χρηστών και έφτασε 53,61% μετά από σημαντική δουλειά. Σχεδιάστε με βάση κάτι ανάμεσα στο 10% και στο 55% πάνω στο δικό σας ακατέργαστο σχήμα, όχι με βάση το νούμερο του benchmark.
Γιατί οι πραγματικές βάσεις δεδομένων το «σπάνε»;
Γιατί κουβαλούν γνώση που δεν είναι γραμμένη πουθενά που μπορεί να τη δει το μοντέλο:
- Κρυπτικά ονόματα στηλών: οι έντονες συντομογραφίες μείωσαν την ακρίβεια έως 17% σε ελεγχόμενη μελέτη.
- Ξένα κλειδιά που λείπουν: συνηθισμένο στις βάσεις MySQL που μεγάλωσαν μαζί με τον κώδικα μιας εφαρμογής, όπως πολλά e-shop, όπου οι σχέσεις ζουν στο πρόγραμμα και όχι στη βάση.
- Εγγραφές που «διαγράφονται» με σημαία: μια στήλη όπως η
deleted_atπου πρέπει να φιλτράρει κάθε σωστό ερώτημα, ενώ η ερώτηση δεν την αναφέρει ποτέ, οπότε τα νούμερα βγαίνουν φουσκωμένα. - Επιχειρηματικές συμβάσεις: η κατάσταση 7 σημαίνει ακυρωμένη, ποσά σε λεπτά σε έναν πίνακα και σε ευρώ σε άλλον, μια οικονομική χρήση που δεν ξεκινά τον Ιανουάριο.
- Δύο πηγές για ένα νούμερο: ένας πίνακας αναφορών και οι αρχικοί πίνακες, σωστοί και οι δύο, με διαφορετικά σύνολα.
Η τυπική αποτυχία είναι ένα ερώτημα που τρέχει, επιστρέφει γραμμές και απαντά σε μια ελαφρώς διαφορετική ερώτηση από αυτή που έγινε. Γιατί τα μοντέλα δίνουν γενικά σίγουρες λάθος απαντήσεις, στο άρθρο παραισθήσεις της τεχνητής νοημοσύνης.
Τι κάνει το text-to-SQL αξιόπιστο;
Το κάνει αξιόπιστο ένας μικρότερος, τεκμηριωμένος στόχος από την ακατέργαστη βάση. Σε μια μελέτη του 2026, ένα ελεγχόμενο σημασιολογικό επίπεδο, όπου το μοντέλο διαλέγει από τεκμηριωμένα, ελεγμένα κομμάτια και ο κώδικας συνθέτει το ερώτημα, απάντησε σωστά σε 37 από τις 38 ερωτήσεις του benchmark σε κάθε εκτέλεση (97,4%), έναντι 21 στις 38 (55,3%) για την ελεύθερη παραγωγή SQL, χωρίς καμία λάθος απάντηση που να έχει εκτελεστεί (μελέτη semantic path compilation). Μια άλλη βρήκε ότι η βελτίωση της περιγραφής του σχήματος και των παραδειγμάτων έδωσε 12% έως 25% περισσότερη ακρίβεια, ενώ η ρύθμιση του μηχανισμού ανάκτησης έδωσε 3% έως 12% (μελέτη για τα context artifacts). Σε PHP και MySQL η πρακτική εκδοχή στήνεται σε περίπου μία εβδομάδα: 10 έως 30 views στη βάση, το καθένα με μια γραμμή επιχειρηματικής περιγραφής, το καθένα με ήδη ενσωματωμένο το φίλτρο για τις «διαγραμμένες» εγγραφές, τις σωστές ενώσεις και όποιο φίλτρο πελάτη χρειάζεται, το καθένα ελεγμένο με ένα ερώτημα γνωστής απάντησης, και ένα μοντέλο που επιτρέπεται να ρωτά μόνο αυτά τα views.
Είναι ασφαλές να αφήσετε την τεχνητή νοημοσύνη να ρωτά τη βάση σας;
Είναι ασφαλές μόνο αν τα όρια τα επιβάλλει η βάση, όχι η εντολή. Η ερώτηση του χρήστη είναι είσοδος που δεν ελέγχετε, και το ίδιο ισχύει για τις γραμμές που επιστρέφει το ερώτημα, γιατί κείμενο που έγραψαν χρήστες μπορεί να κρύβει εντολές προς το μοντέλο, όπως εξηγώ στο prompt injection. Οι έλεγχοι ανήκουν στη βάση: ένας ξεχωριστός λογαριασμός μόνο για ανάγνωση που βλέπει μόνο τα views που εκτίθενται, φίλτρα πελάτη ενσωματωμένα σε αυτά τα views αντί να περιμένετε να τα θυμηθεί το μοντέλο, χρονικό όριο σε κάθε ερώτημα, που η MySQL το ορίζει σε χιλιοστά του δευτερολέπτου μόνο για SELECT και η MariaDB σε δευτερόλεπτα για σχεδόν κάθε ερώτημα (MariaDB, aborting statements), ένα αντίγραφο της βάσης μόνο για ανάγνωση αντί για τη βάση που εξυπηρετεί το ταμείο, και καταγραφή κάθε ερωτήματος μαζί με την ερώτηση και τον χρήστη. Μια λεπτομέρεια της MariaDB βγάζει σιωπηλά λάθος νούμερα: δεν επιβάλλει από προεπιλογή αυστηρή ομαδοποίηση, οπότε ενεργοποιήστε το ONLY_FULL_GROUP_BY στη σύνδεση του μοντέλου. Πώς ορίζετε γενικά την πρόσβαση ενός agent, στο άρθρο δικαιώματα AI agents.
Πότε οι έτοιμες αναφορές είναι καλύτερη λύση;
Όταν οι περισσότερες ερωτήσεις επαναλαμβάνονται, που στις περισσότερες επιχειρήσεις ισχύει. Μαζέψτε 100 πραγματικές ερωτήσεις από τους ανθρώπους που θα τις κάνουν. Αν το 80% ή περισσότερο χωρά σε λιγότερα από 40 σχήματα ερωτήματος, φτιάξτε τα ως ελεγμένες αναφορές με παραμέτρους, όπως διάστημα ημερομηνιών, πελάτης και κατάσταση, και αφήστε το μοντέλο απλώς να διαλέγει την αναφορά και να συμπληρώνει τις παραμέτρους. Έτσι μια δύσκολη εργασία παραγωγής γίνεται εύκολη εργασία επιλογής, η ακρίβεια στις ερωτήσεις που καλύπτονται πλησιάζει το 100%, και μια ερώτηση έξω από το σύνολο απορρίπτεται αντί να απαντηθεί λάθος. Τα νούμερα που χρειάζεται πραγματικά ένας επιχειρηματίας κάθε πρωί είναι συνήθως λίγα, όπως υποστηρίζω στο άρθρο «Τα τρία νούμερα που θέλει ένας επιχειρηματίας στις 8 το πρωί», και η ιδέα της επιλογής αντί της γραφής βρίσκεται πίσω από το Jev: όταν η τεχνητή νοημοσύνη επιλέγει αντί να γράφει.
Τι αλλάζει όταν οι ερωτήσεις είναι στα ελληνικά;
Το μοντέλο τα βγάζει πέρα με τη γλώσσα, τα δεδομένα είναι το δυσκολότερο κομμάτι. Τα σημερινά μοντέλα μετατρέπουν μια ελληνική ερώτηση σε SQL περίπου εξίσου καλά με μια αγγλική. Το πρόβλημα είναι οι ελληνικές τιμές μέσα στη βάση: αν ταιριάζουν το «Αθήνα», το «ΑΘΗΝΑ» και το «Αθηνα» εξαρτάται από το σύνολο χαρακτήρων και το collation του πίνακα, που κρίνουν αν οι συγκρίσεις αγνοούν τόνους και κεφαλαία. Χρησιμοποιήστε utf8mb4, διαλέξτε συνειδητά collation και κανονικοποιήστε τα ονόματα κατά την εισαγωγή. Το ίδιο πρόβλημα με τους τόνους στην αναζήτηση, με μετρημένο παράδειγμα, στο άρθρο βάση γνώσης για τεχνητή νοημοσύνη χωρίς vector database. Οι απαντήσεις που υπολογίζονται από ένα σύνολο αριθμών που όλοι εμπιστεύονται είναι η βάση της τεχνητής νοημοσύνης σε λειτουργίες και εφοδιαστική αλυσίδα.
Συχνές ερωτήσεις
Μπορούν τα στελέχη να κάνουν ερωτήσεις απευθείας στο ERP;
Ναι, αν κάθε απάντηση έρχεται μαζί με τα φίλτρα που κατάλαβε το σύστημα, όπως το διάστημα ημερομηνιών και την κατάσταση, ώστε μια λάθος ερμηνεία να φαίνεται. Χωρίς αυτό, ένας λάθος αριθμός μοιάζει ακριβώς με τον σωστό.
Χρειάζομαι πρώτα αποθήκη δεδομένων;
Όχι για μια μικρή ή μεσαία επιχείρηση. Ένα σύνολο καλά περιγραμμένων views σε ένα αντίγραφο της βασικής βάσης μόνο για ανάγνωση φτάνει για αρχή, και από εκεί έρχεται έτσι κι αλλιώς το μεγαλύτερο μέρος της ακρίβειας.
Πρέπει να επιτρέπεται στην τεχνητή νοημοσύνη να αλλάζει δεδομένα;
Όχι. Το text-to-SQL για ερωτήσεις πρέπει να είναι μόνο για ανάγνωση από τον σχεδιασμό του. Οι αλλαγές στα δεδομένα ανήκουν στην εφαρμογή, με τους δικούς της ελέγχους και εγκρίσεις.
Αν η ομάδα σας περιμένει κάποιον για να βγάλει νούμερα από τη βάση, στείλτε μου είκοσι ερωτήσεις που έκαναν τον προηγούμενο μήνα. Πόσες χωράνε σε λίγες αναφορές και πόσες θέλουν πραγματική παραγωγή ερωτημάτων φαίνεται συνήθως από αυτή τη λίστα.