
Η γραμμή 1 του αρχείου LICENSE στο repo του Arize Phoenix γράφει "Elastic License 2.0 (ELv2)". Όχι Apache. Όχι MIT. Ένα ιδιαίτερα προτεινόμενο open source framework αξιολόγησης LLM δεν είναι open source σύμφωνα με τον ορισμό του OSI, και σχεδόν κάθε σελίδα που κατατάσσεται για αυτό το ερώτημα επαναλαμβάνει τον ισχυρισμό ούτως ή άλλως. Το ίδιο έκανε και μία δική μας σελίδα, μέχρι σήμερα. Στις 2026-08-04 διαβάσαμε με το χέρι το αρχείο άδειας χρήσης και το ιστορικό commits του default branch οκτώ frameworks, συν τρία ακόμα που οι κορυφαίες σελίδες εξακολουθούν να προτείνουν, μετά εγκαταστήσαμε έξι και τρέξαμε τα ίδια 10 test cases σε καθένα. Δεν πουλάμε framework αξιολόγησης, οπότε καμία κρίση παρακάτω δεν προστατεύει κάποιο προϊόν.
Βασικά Συμπεράσματα
- Το Arize Phoenix διανέμεται με άδεια Elastic License 2.0, την οποία το OSI δεν εγκρίνει ως open source.
- Το τελευταίο commit του UpTrain στο
mainήταν στις 2024-07-29. Μην ξεκινάτε νέο project πάνω του. - Το
pip install promptfooσας δίνει ένα τρίτο-κόμματος wrapper. Το πραγματικό project διανέμεται μέσω npm. - Το Ragas δεν έχει commits από τις 2026-02-24 και μετακόμισε σε νέο GitHub org, το
vibrantlabsai.
Ποιο Open-Source Framework Αξιολόγησης LLM Πρέπει να Εγκαταστήσετε το 2026;
Επιλέξτε με βάση τον περιορισμό σας, όχι με βάση την κατάταξη. Για assertions τύπου pytest μέσα σε υπάρχον test suite, εγκαταστήστε το DeepEval. Για ρύθμιση YAML και CLI που ταιριάζει σε οποιοδήποτε stack γλωσσών, εγκαταστήστε το promptfoo. Για τον πιο καθαρό διαχωρισμό καλού-κακού που μετρήσαμε, εγκαταστήστε το Opik. Και τα τρία διανέμονται με Apache-2.0 ή MIT.
Εδώ είναι ο έλεγχος. Οκτώ frameworks στο πεδίο εφαρμογής, συν τρία ακόμα που οι κορυφαίες σελίδες για αυτό το ερώτημα εξακολουθούν να προτείνουν.
| Framework | Άδεια χρήσης (επαληθευμένη στις 2026-08-04) | Τελευταία έκδοση | Τελευταίο commit στο main | Εγκατάσταση | Μορφή διεπαφής | Καλύτερο σε | Κόστος αλλαγής |
|---|---|---|---|---|---|---|---|
| DeepEval | Apache-2.0 | v4.1.5 (2026-07-29) | 2026-08-03 | pip install deepeval | assertions τύπου pytest | πύλη ποιότητας σε Python test suite | χαμηλό, οι μετρικές είναι απλά αντικείμενα |
| Promptfoo | MIT | 0.121.20 (2026-07-31) | 2026-08-04 | npm install promptfoo | YAML config και CLI | δοκιμή prompts ανεξαρτήτως γλώσσας | μεσαίο, η μορφή config είναι ειδική για το promptfoo |
| Opik | Apache-2.0 | 2.2.17 (2026-08-04) | 2026-08-04 | pip install opik | αυτόνομες κλήσεις .score() | χρησιμοποιήσιμη βαθμολογία με τις λιγότερες γραμμές | χαμηλό, οι μετρικές τρέχουν χωρίς την πλατφόρμα |
| Arize Phoenix | Elastic License 2.0, μη εγκεκριμένη από το OSI | v19.15.0 (2026-08-03) | 2026-08-04 | pip install arize-phoenix-evals | έτοιμοι evaluators πάνω σε dataframe | δυαδικές ετικέτες pass/fail | χαμηλό για evals, δεσμευμένο από την άδεια αν το μεταπωλήσετε |
| Ragas | Apache-2.0 | v0.4.3 (2026-01-13) | 2026-02-24 | pip install ragas | ασύγχρονο evaluate() πάνω σε dataset | μετρικές ανάκτησης RAG | χαμηλό, οι γραμμές είναι απλά dicts |
| Evidently | Apache-2.0 | v0.7.21 (2026-03-10) | 2026-05-02 | pip install evidently | descriptors και αναφορά HTML | αναφορές σε πολλαπλές γραμμές δεδομένων | υψηλό, η κλίμακα βαθμολόγησης είναι ανεστραμμένη |
| Inspect AI | MIT | 0.3.252 (2026-08-04) | 2026-08-04 | pip install inspect-ai | αρχεία Python tasks και CLI | benchmarking μοντέλου | υψηλό, τα tasks είναι ειδικά για το Inspect |
| Giskard | Apache-2.0 | 2.19.2 στο PyPI (2026-07-06), σειρά v2 | 2026-08-04 | pip install giskard | scan API | αυτοματοποιημένα scans ευπαθειών | μεσαίο, η έξοδος scan είναι ειδική για το Giskard |
| lm-evaluation-harness | MIT | v0.4.12 (2026-05-11) | 2026-07-13 | pip install lm-eval | CLI πάνω σε ορισμούς tasks | τυπικά benchmarks μοντέλων | υψηλό, οι ορισμοί tasks είναι ειδικοί για το harness |
| UpTrain | Apache-2.0 | v0.7.1 (2024-05-14) | 2024-07-29 | pip install uptrain | τελεστές ελέγχου Python | τίποτα που θα ξεκινούσαμε σήμερα | n/a |
| Deepchecks | δεν εντοπίζεται από το GitHub | 0.19.1 (2024-12-15) | 2025-11-24 | pip install deepchecks | αντικείμενα suite και check | επικύρωση tabular και ML | υψηλό, τα suites είναι ειδικά για το Deepchecks |
Οι ημερομηνίες είναι το τελευταίο commit στο default branch κάθε project, όπως ίσχυε στις 2026-08-04. Η σελίδα repo του GitHub δείχνει το τελευταίο push σε οποιοδήποτε branch, το οποίο είναι μεταγενέστερο για δύο projects εδώ: UpTrain 2024-08-18 και Deepchecks 2025-12-28. Κανένα repo δεν είναι archived.
Η στήλη κόστους αλλαγής είναι αυτή που ο κόσμος παραλείπει και μετά μετανιώνει. Οι βαθμολογίες είναι απλά αριθμοί, οπότε η μετάβαση μεταξύ DeepEval, Ragas, Opik και phoenix-evals σημαίνει κυρίως ξαναγράψιμο ενός loop. Η μετάβαση από το promptfoo ή το Inspect AI σημαίνει ξαναγράψιμο μορφής config ή task χωρίς αντίστοιχο αλλού, και η μετάβαση από το Evidently σημαίνει έλεγχο κάθε threshold που έχετε γράψει, γιατί η κλίμακά του τρέχει αντίστροφα. Δύο από τα frameworks που οι κορυφαίες σελίδες εξακολουθούν να προτείνουν δεν έχουν βγάλει έκδοση από το 2024.
Θέλετε επίπεδα, φιλοξενούμενες πλατφόρμες και μια απλή κατάταξη αντ' αυτού; Αυτή είναι διαφορετική δουλειά, και την κάναμε ήδη στη συγκριτική μας κατάταξη εργαλείων αξιολόγησης LLM με πλατφόρμες επί πληρωμή.
Τα Οκτώ Frameworks Αξιολόγησης LLM, Ομαδοποιημένα Ανά Τρόπο Εγκατάστασης
Η μορφή εγκατάστασης είναι αυτό με το οποίο θα ζήσετε, οπότε αυτή είναι η ομαδοποίηση.
Βιβλιοθήκες Python που εισάγετε σε tests
Το DeepEval (pip install deepeval, Apache-2.0) τυλίγει τις μετρικές LLM σε assertions τύπου pytest: χτίζετε ένα LLMTestCase, το δίνετε στο assert_test, και το test αποτυγχάνει κάτω από το threshold σας. Καλύτερο για να βάλετε μια πύλη ποιότητας δίπλα στα unit tests που η ομάδα ήδη τρέχει. Επιλέξτε το αν τα evals σας ανήκουν στην ίδια δουλειά CI με όλα τα υπόλοιπα.
Μία αποκάλυψη, δηλωμένη μία φορά: το DeepEval είναι φτιαγμένο από την Confident AI, η οποία είναι πληρωμένος συνεργάτης σε δύο άλλες αναρτήσεις αυτού του site, συμπεριλαμβανομένης της συγκριτικής κατάταξης προς την οποία παραπέμπει αυτή η σελίδα. Δεν λαμβάνει ειδική μεταχείριση εδώ, και κάθε σύνδεσμος DeepEval σε αυτή τη σελίδα οδηγεί στο repo GitHub.
Το Ragas (pip install ragas, Apache-2.0) είναι η επιλογή ειδική για RAG: το evaluate() παίρνει γραμμές ερώτησης, context και απάντησης και επιστρέφει βαθμολογίες ανά μετρική ασύγχρονα. Καλύτερο για μέτρηση ποιότητας ανάκτησης μέσα σε pipeline Python. Το repo του μετακόμισε από το explodinggradients στο vibrantlabsai, η τελευταία του έκδοση ήταν η v0.4.3 στις 2026-01-13, και δεν υπάρχουν commits από τις 2026-02-24. Επιλέξτε το αν οι μετρικές RAG είναι όλη η δουλειά και ένα ήσυχο repo είναι αποδεκτό, και δείτε την ευρύτερη στοίβα εργαλείων RAG.
Το Opik (pip install opik, Apache-2.0, από την Comet) διανέμει μετρικές που μπορείτε να καλέσετε αυτόνομα. Ρυθμίστε OPIK_TRACK_DISABLE=true και το AnswerRelevance().score() τρέχει χωρίς λογαριασμό, χωρίς τοπικό server και χωρίς αρχείο config, κάτι που η προϊοντική παρουσίαση δεν διαφημίζει. Καλύτερο για να πάρετε πραγματική βαθμολογία με τις λιγότερες γραμμές κώδικα. Επιλέξτε το αν θέλετε μετρικές τώρα και ενδεχομένως την πλατφόρμα αργότερα.
Το Evidently (pip install evidently, Apache-2.0) αντιμετωπίζει τα evals ως descriptors πάνω σε ένα dataset και γράφει μια αναφορά HTML ως παράπλευρη ενέργεια. Καλύτερο για μαζική αναφορά σε πολλές γραμμές αντί για δυαδική πύλη. Οι βαθμολογίες LLM του είναι ανεστραμμένες: το 1.0 σημαίνει μη πιστό στο context. Επιλέξτε το αν αυτό που χρωστάτε σε κάποιον είναι μια κοινοποιήσιμη αναφορά, όχι ένα κόκκινο build.
Το Giskard (pip install giskard, Apache-2.0) σαρώνει ένα μοντέλο για ευπάθειες αντί να βαθμολογεί ένα dataset που γράψατε. Το πακέτο PyPI επιλύει τη σειρά v2, και το ίδιο το README του project δηλώνει ότι το v2 "δεν συντηρείται πλέον ενεργά". Καλύτερο για αυτοματοποιημένα scans τύπου red-team. Επιλέξτε το αν θέλετε ευπάθειες να βρίσκονται για εσάς αντί για μετρικές LLM-as-a-judge που ορίζετε εσείς οι ίδιοι.
Εργαλεία CLI-και-config που τρέχετε πάνω σε αρχείο YAML
Το promptfoo (npm install promptfoo, MIT) είναι ένα CLI που διαβάζει αρχείο YAML: δηλώνετε providers, test cases και assertions, τρέχετε npx promptfoo eval, και παίρνετε pass/fail ανά περίπτωση συν τοπικό UI αποτελεσμάτων. Καλύτερο για αξιολόγηση prompts όταν η εφαρμογή σας δεν είναι γραμμένη σε Python. Επιλέξτε το αν η πύλη ποιότητάς σας πρέπει να είναι ένα αρχείο config που μπορεί να επεξεργαστεί κάποιος συνάδελφος εκτός Python.
Τύπου harness και ενσωματωμένα σε πλατφόρμα
Το Inspect AI (pip install inspect-ai, MIT) προέρχεται από το UK AI Safety Institute και αξιολογεί μοντέλα με βάση tasks που ορίζετε σε Python, με πραγματικές αφαιρέσεις solver και scorer και προβολέα εκτέλεσης. Καλύτερο για benchmarking σε επίπεδο μοντέλου με αναπαραγώγιμους ορισμούς tasks. Επιλέξτε το αν αυτό που ελέγχεται είναι ένα μοντέλο και όχι η εφαρμογή σας.
Το Arize Phoenix (pip install arize-phoenix-evals) σας δίνει έτοιμους evaluators όπως το FaithfulnessEvaluator και το CorrectnessEvaluator που επιστρέφουν δυαδική ετικέτα συν βαθμολογία. Καλύτερο για ντετερμινιστικές ετικέτες πάνω στις οποίες μπορείτε να θέσετε πύλη χωρίς να επιλέξετε όριο. Η άδεια χρήσης του είναι ο λόγος που αυτό το άρθρο έχει παρένθεση στον τίτλο, και αυτό έχει τη δική του ενότητα στη συνέχεια.
Είναι το Arize Phoenix Open Source;
Όχι, όχι σύμφωνα με τον ορισμό που διατηρεί το Open Source Initiative. Το Arize Phoenix διανέμεται με την Elastic License 2.0 (ELv2). Η γραμμή 1 του αρχείου LICENSE του repo το λέει ξεκάθαρα, και το PyPI δηλώνει ανεξάρτητα license: Elastic-2.0 στο v19.15.0. Ο κώδικας πηγής είναι αναγνώσιμος, δυνατός για fork και self-hosting (source-available). Ένας τρόπος χρήσης περιορίζεται.
Ο περιορισμός που έχει σημασία: το ELv2 απαγορεύει την παροχή του λογισμικού σε τρίτους ως φιλοξενούμενη ή διαχειριζόμενη υπηρεσία. Διαβάστε το προσεκτικά, γιατί δεσμεύει πολύ λιγότερους ανθρώπους απ' όσο ακούγεται. Αν εγκαταστήσετε το arize-phoenix-evals για να βαθμολογήσετε τη δική σας εφαρμογή, το ELv2 δεν σας αγγίζει ποτέ. Αν είστε συμβουλευτική εταιρεία ή ομάδα πλατφόρμας που πακετάρει το Phoenix σε υπηρεσία αξιολόγησης που πουλάτε σε εξωτερικούς πελάτες, τότε σας αγγίζει. Αυτή είναι όλη η διαφορά, και ο Open Source Definition είναι αυτό που το ELv2 αποτυγχάνει, συγκεκριμένα οι ρήτρες για περιορισμούς πεδίου χρήσης.
| Άδεια χρήσης | Εγκεκριμένη από OSI; | Μπορείτε να κάνετε self-host; | Μπορείτε να την προσφέρετε ως διαχειριζόμενη υπηρεσία; | Frameworks σε αυτή τη λίστα |
|---|---|---|---|---|
| Apache-2.0 | ναι | ναι | ναι | DeepEval, Ragas, Opik, Evidently, Giskard, UpTrain |
| MIT | ναι | ναι | ναι | promptfoo, Inspect AI, lm-evaluation-harness |
| Elastic License 2.0 | όχι | ναι | όχι | Arize Phoenix |
Κάθε σελίδα που κατατάσσεται αυτή τη στιγμή για αυτό το ερώτημα κατατάσσει το Phoenix ως "open source", και το ίδιο κάναμε κι εμείς. Η δική μας συγκριτική κατάταξη εργαλείων αξιολόγησης LLM περιγράφει το Phoenix ως πλήρως open-source, κάτι που είναι λάθος, και διορθώνεται. Το Phoenix είναι source-available, όχι open source, και η διάκριση έχει σημασία μόνο αν σκοπεύετε να το πουλήσετε ως υπηρεσία. Αν αυτό που πραγματικά χρειάζεστε είναι tracing και όχι βαθμολόγηση, αυτό ανήκει στις πλατφόρμες παρατηρησιμότητας AI, όχι εδώ.
Ποια από Αυτά Συντηρούνται Ακόμα Ενεργά;
Τα περισσότερα. Έξι από τα έντεκα repos που ελέγξαμε δέχτηκαν commit στο main στις 2026-08-03 ή 2026-08-04: DeepEval, promptfoo, Opik, Arize Phoenix, Inspect AI και Giskard. Δύο δεν έχουν βγάλει έκδοση από το 2024. Ένα έχει ησυχάσει το 2026 μετά από αλλαγή οργανισμού GitHub.
Frameworks με τα οποία δεν θα ξεκινούσαμε νέο project το 2026
Το UpTrain είναι νεκρό. Το τελευταίο του commit στο main έγινε στις 2024-07-29 και η τελευταία του έκδοση, η v0.7.1, ήταν στις 2024-05-14, κάτι που το τοποθετεί δύο χρόνια «κρύο» με όποιο μέτρο κι αν το δείτε. Το repo υπάρχει ακόμα και παραμένει Apache-2.0, οπότε τίποτα δεν σας εμποδίζει, αλλά το να ξεκινήσετε νέα δουλειά πάνω σε εγκαταλελειμμένη βιβλιοθήκη αξιολόγησης είναι μια απόφαση που θα εξηγείτε αργότερα.
Το Deepchecks αξίζει την ακριβή διατύπωση. Δεν έχει βγάλει έκδοση από το 0.19.1 στις 2024-12-15, αν και το repo εξακολουθεί να δέχεται commits, με το τελευταίο στο main στις 2025-11-24. Ο κόσμος συνεχίζει να δουλεύει πάνω του· κανείς δεν έχει βγάλει έκδοση εδώ και πάνω από δεκαοκτώ μήνες. Ούτε το UpTrain ούτε το Deepchecks είναι archived στο GitHub, και κανένα από τα δύο δεν έχει κλείσει σε συνεισφορές.
Το Ragas παίρνει ημερομηνίες και τίποτα άλλο. Τελευταία έκδοση v0.4.3 στις 2026-01-13, χωρίς commits από τις 2026-02-24, και το repo μετακόμισε από το explodinggradients στο vibrantlabsai. Δεν βρήκαμε επαληθεύσιμη εξήγηση για την αλλαγή οργανισμού, οπότε δεν θα επινοήσουμε καμία. Ένα ήσυχο repo δεν είναι απαραίτητα χαλασμένο: κώδικας Apache-2.0 που υπολογίζει μια βαθμολογία πιστότητας σήμερα θα την υπολογίζει και του χρόνου. Η έκθεση είναι σε μη ενημερωμένες εξαρτήσεις, ακριβώς αυτό που μας «δάγκωσε» στη δοκιμή παρακάτω.
Άλλες σελίδες στην πρώτη σελίδα αυτού του ερωτήματος εξακολουθούν να προτείνουν και το UpTrain και το Deepchecks, χωρίς καμία ημερομηνία να συνοδεύει την πρόταση. Ένα framework χωρίς έκδοση από τον Δεκέμβριο του 2024 είναι απόφαση εξάρτησης, όχι απόφαση χαρακτηριστικών.
Χρειάζεστε Framework Αξιολόγησης ή Harness Αξιολόγησης;
Ένα framework αξιολόγησης εφαρμογής (application eval framework) βαθμολογεί τις δικές σας εξόδους πάνω στα δικά σας δεδομένα. Τα DeepEval, Ragas, promptfoo, Opik, phoenix-evals και Evidently κάνουν όλα αυτό. Ένα harness αξιολόγησης μοντέλου (model eval harness) κάνει benchmark ενός μοντέλου έναντι τυποποιημένων δημόσιων tasks αντ' αυτού. Τα lm-evaluation-harness και Inspect AI κάνουν αυτό. Η επιλογή της λάθος κατηγορίας είναι το πιο ακριβό λάθος σε αυτή τη σελίδα.
| Διάσταση | Framework αξιολόγησης εφαρμογής | Harness αξιολόγησης μοντέλου |
|---|---|---|
| Τι δοκιμάζετε | το prompt, την ανάκτηση και την έξοδο σας | ένα checkpoint ή endpoint μοντέλου |
| Τι παρέχετε εσείς | δικές σας ερωτήσεις, contexts και απαντήσεις | όνομα task από τυποποιημένη σουίτα |
| Τυπική έξοδος | βαθμολογία ανά μετρική ανά γραμμή, συν pass/fail | ακρίβεια σε δημοσιευμένο benchmark |
| Πού τρέχει | στο CI σας, σε κάθε pull request | μεμονωμένη εκτέλεση ανά μοντέλο ή fine-tune |
| Παραδείγματα | DeepEval, Ragas, promptfoo, Opik, Evidently, phoenix-evals | lm-evaluation-harness, Inspect AI |
Ο τρόπος αποτυχίας είναι συγκεκριμένος. Κάποιος συνδέει το lm-evaluation-harness για να δοκιμάσει το chatbot RAG του, παίρνει πίσω ένα σύνολο βαθμολογιών MMLU, και δεν μαθαίνει τίποτα απολύτως για το αν ο retriever του επιστρέφει τα σωστά αποσπάσματα. Οι βαθμολογίες είναι πραγματικές. Μετρούν το βασικό μοντέλο, για το οποίο κανείς δεν ανησυχούσε.
Η μορφή του Inspect AI προκύπτει από την προέλευσή του: χτίστηκε στο UK AI Safety Institute με άδεια MIT για την αξιολόγηση μοντέλων αιχμής, οπότε τα solvers, scorers και tasks είναι πρωτεύουσας σημασίας και η εφαρμογή σας δεν είναι έννοια που διαθέτει. Αυτό είναι καλός λόγος να το χρησιμοποιήσετε για ό,τι είναι φτιαγμένο. Αν το πρόβλημά σας είναι agents και όχι μεμονωμένοι γύροι, η αξιολόγηση agents σε παραγωγή είναι διαφορετικός κλάδος, και οι servers κλήσεων εργαλείων έχουν τη δική τους ξεχωριστή μεταχείριση στον οδηγό μας για αξιολόγηση servers και εργαλείων MCP.
Τι Συνέβη Όταν Εγκαταστήσαμε Έξι από Αυτά και Τρέξαμε τα Ίδια 10 Test Cases
Στις 2026-08-04 εγκαταστήσαμε έξι από αυτά σε νέα venvs Python 3.11.14 (συν npm για το promptfoo) και βαθμολογήσαμε ένα πανομοιότυπο σύνολο 10 στοιχείων RAG με έναν κριτή, τον openai/gpt-4o-mini μέσω OpenRouter σε θερμοκρασία 0. Επτά στοιχεία ήταν σωστά. Τρία ήταν χαλασμένα με τρεις διαφορετικούς τρόπους: ένα αντιφάσκει με το context του, ένα επινοεί στοιχεία, ένα είναι ρέων πεζός λόγος που δεν απαντά ποτέ στην ερώτηση. Κάθε framework έτρεξε δύο φορές, η μία μετά την άλλη.
Framework (10 στοιχεία, κριτής openai/gpt-4o-mini, εκτέλεση 2026-08-04) | Εγκατάσταση | Γραμμές μέχρι την πρώτη βαθμολογία | Χρόνος εκτέλεσης, run 1 / run 2 | Ελαττώματα που εντοπίστηκαν στη μετρική grounding | Στοιχεία με απόκλιση σε 2 runs |
|---|---|---|---|---|---|
| DeepEval 4.1.5 | 26.6 s | 21 | 126.8 s / 134.1 s | 2 από 3, παρέβλεψε την άσχετη απάντηση | 0 από 10 |
| Ragas 0.4.3 | 56.1 s συν pin έκδοσης | 23 | 21.2 s / 25.7 s | 3 από 3 | 1 από 10 |
| promptfoo 0.121.20 | 337.9 s | 14 συν 40 dataset | 34.3 s / 44.4 s | 3 από 3 | 2 από 10 |
| Opik 2.2.17 | 142.3 s | 15 | 54.1 s / 44.8 s | 3 από 3 | 4 από 10 |
| Phoenix evals 3.3.0 | 8.7 s | 18 | 41.2 s / 44.0 s | 3 από 3 | 0 από 10 |
| Evidently 0.7.21 | 42.6 s συν openai | 25 | 9.9 s / 9.7 s | 3 από 3 | 4 από 10 |
Πέντε από τις έξι μετρικές grounding έπιασαν και τα τρία ελαττώματα. Τα τρία ευρήματα παρακάτω είναι ο λόγος που υπάρχει αυτή η ενότητα.
Οι μετρικές συνάφειας δεν είναι μετρικές ποιότητας, και δύο από αυτές βαθμολόγησαν ένα σίγουρο ψέμα πιο ψηλά από μια σωστή απάντηση. Το ResponseRelevancy του Ragas βαθμολόγησε το στοιχείο που ισχυρίζεται ότι το HTTP 404 είναι σφάλμα 5xx server στο 0.777, πάνω από δύο από τις επτά σωστές απαντήσεις, και το στοιχείο με τα επινοημένα rate limits στο 0.813, πάνω από τέσσερις. Το answer-relevance του promptfoo έκανε το ίδιο: 0.800 για το στοιχείο 404, καθαρό πέρασμα έναντι threshold 0.7, ενώ απέτυχε στη σωστή ερώτηση q01 με 0.679. Δεν είναι bug. Μια σίγουρη λανθασμένη απάντηση απαντά τέλεια στην ερώτηση. Αλλά αν η συνάφεια είναι ο αριθμός στο dashboard σας, μια ρέουσα παραίσθηση μοιάζει με την καλύτερή σας έξοδο.
Μια πύλη μόνο-πιστότητας χάνει την άσχετη απάντηση. Το DeepEval βαθμολόγησε το στοιχείο που δεν απαντά ποτέ στην ερώτηση με 1.000 πιστότητα, καθαρό πέρασμα, κάτι που είναι δικαιολογημένο: μια απάντηση που δεν ισχυρίζεται τίποτα σχετικά με το context δεν αντιφάσκει με τίποτα σε αυτό. Μόνο η συνάφεια το έπιασε, με 0.000. Αυτό είναι το μοναδικό grounding miss στον παραπάνω πίνακα. Καθεμιά μετρική μόνη της έχει τρύπα· το ζευγάρι καλύπτει και τα δύο.
Οι δυαδικοί evaluators ήταν σταθεροί στη θερμοκρασία 0. Οι κλιμακωτοί δεν ήταν. Το Phoenix και το DeepEval δεν μετακίνησαν κανένα από τα δέκα στοιχεία σε δύο πανομοιότυπες εκτελέσεις. Το Opik μετακίνησε τέσσερα, όλα στο AnswerRelevance, σε πλέγμα 0.05· το Evidently επίσης μετακίνησε τέσσερα. Καμία απόκλιση δεν αναποδογύρισε κρίση εδώ, αλλά η σωστή ερώτηση q01 του promptfoo προσγειώθηκε στο 0.679 και μετά στο 0.642 έναντι threshold 0.700, κάτι που έχει τη μορφή μιας ασταθούς πύλης CI.
Δύο μικρότερες σημειώσεις: τρία από τα έξι (DeepEval, Opik, Phoenix) εγκαταστάθηκαν και έτρεξαν καθαρά με την πρώτη φορά, ενώ το Ragas δεν εισαγόταν μέχρι να κάνουμε pin το langchain-community<0.4. Μόνο το promptfoo ανέφερε χρήση tokens του κριτή, 16.011 tokens assertion στο run 1 και 16.010 στο run 2.
Τα όρια αυτού, ειπωμένα ξεκάθαρα. n = 10 είναι smoke test, όχι benchmark: σας λέει για την εργονομία και τα τυφλά σημεία, όχι για την ακρίβεια της μετρικής. Ένα μοντέλο κριτή βαθμολόγησε τα πάντα, και ένας μεγαλύτερος κριτής θα μετακινούσε κάθε αριθμό, πιθανώς συμπεριλαμβανομένων και των δύο ψευδώς θετικών που παρήγαγαν και το DeepEval και το Ragas στο ίδιο σωστό στοιχείο. Δύο εκτελέσεις αποδεικνύουν ότι υπάρχει απόκλιση αλλά δεν μπορούν να την χαρακτηρίσουν. Οι απαντήσεις ήταν προγραμμένες εκ των προτέρων, οπότε τίποτα εδώ δεν εξασκεί τη γέννηση, το tracing ή τη διαχείριση dataset, κάτι που κάνει τα 337.9 δευτερόλεπτα εγκατάστασης του promptfoo να φαίνονται χειρότερα απ' όσο αξίζουν. Το "καλύτερο" σημαίνει πάντα καλύτερο για έναν περιορισμό: μια πύλη CI, μετρικές RAG ή ένα UI αλλάζουν το καθένα την απάντηση, όπως και η διάκριση μεταξύ offline και online αξιολόγησης.
Ο Ίδιος Έλεγχος, Γραμμένος με Τρεις Τρόπους
Ο ταχύτερος τρόπος να επιλέξετε μορφή διεπαφής είναι να διαβάσετε το ίδιο assertion τρεις φορές. Εδώ είναι ένας έλεγχος grounding σε ένα στοιχείο στο DeepEval, το Ragas και το promptfoo, περικομμένος από τα scripts που πραγματικά τρέξαμε. Τα ονόματα μετρικών διαφέρουν· παραπέμπουμε στο πώς λειτουργούν πραγματικά οι μετρικές LLM-as-a-judge αντί να τις ξαναορίσουμε εδώ.
# DeepEval 4.1.5: τύπου pytest, αποτυγχάνει το test κάτω από το threshold
from deepeval import assert_test
from deepeval.models import GPTModel
from deepeval.metrics import FaithfulnessMetric
from deepeval.test_case import LLMTestCase
judge = GPTModel(
model="openai/gpt-4o-mini",
base_url="https://openrouter.ai/api/v1",
api_key=OPENROUTER_KEY,
)
def test_faithfulness():
case = LLMTestCase(
input=question,
actual_output=answer,
retrieval_context=[context],
)
assert_test(case, [FaithfulnessMetric(threshold=0.7, model=judge)])# Ragas 0.4.3: προσέξτε το μονοπάτι εισαγωγής. `from ragas.metrics import Faithfulness`
# προκαλεί ImportError σε αυτή την έκδοση· η συγκεκριμένη μετρική μετακόμισε.
from ragas import evaluate, EvaluationDataset
from ragas.metrics._faithfulness import Faithfulness
from ragas.llms import LangchainLLMWrapper
from langchain_openai import ChatOpenAI
judge = LangchainLLMWrapper(
ChatOpenAI(model="openai/gpt-4o-mini",
base_url="https://openrouter.ai/api/v1")
)
result = evaluate(
dataset=EvaluationDataset.from_list(rows),
metrics=[Faithfulness(llm=judge)],
)# promptfoo 0.121.20: npm install promptfoo, μετά npx promptfoo eval
providers:
- id: echo # βαθμολογήσαμε προγραμμένες απαντήσεις αντί να τις παράγουμε
defaultTest:
assert:
- type: context-faithfulness
threshold: 0.7
tests:
- vars:
query: "Is HTTP 404 a client error or a server error?"
context: "HTTP 404 Not Found is in the 4xx class, which denotes client errors."
output: "HTTP 404 is a server error in the 5xx class."Οι γραμμές εγκατάστασης κρύβουν περισσότερες παγίδες από τον κώδικα, και κάθε σχόλιο παρακάτω είναι κάτι που μας κόστισε χρόνο στις 2026-08-04:
# Το πραγματικό promptfoo διανέμεται μέσω npm. Το πακέτο PyPI με το ίδιο όνομα
# είναι τρίτο-κόμματος wrapper: https://pypi.org/project/promptfoo/ έναντι
# https://www.npmjs.com/package/promptfoo
npm install promptfoo
# Το pip install giskard επιλύει τη σειρά v2, την οποία το ίδιο το README
# του project σημειώνει ως μη ενεργά συντηρούμενη πλέον.
pip install giskard
# Το lm-evaluation-harness εγκαθίσταται με το όνομα πακέτου lm-eval.
pip install lm-eval
# Το Evidently δεν τραβάει το openai, και ο κριτής καταρρέει κατά την κλήση
# αντί κατά την εισαγωγή, αφού έχετε ήδη χτίσει το dataset.
pip install evidently openai
# Το Ragas 0.4.3 δεν εισάγεται έναντι langchain-community 0.4.x.
pip install ragas "langchain-community<0.4"Μπορείτε να Αποτύχετε ένα Build Λόγω Βαθμολογίας Eval;
Ναι. Κάθε framework εδώ επιστρέφει αριθμητική ή δυαδική βαθμολογία, και το καθένα θα βγει με μη μηδενικό κωδικό όταν ένα assertion threshold αποτύχει, κάτι που είναι όλο κι όλο ό,τι χρειάζεται το GitHub Actions για να κάνει ένα build κόκκινο. Η σύνδεση του κωδικού εξόδου είναι το εύκολο κομμάτι. Η επιλογή ενός threshold που το μοντέλο κριτή σας δεν θα ξεπεράσει κατά λάθος είναι το κομμάτι που παίρνει μια εβδομάδα.
Αυτή είναι η μορφή workflow που τρέχουμε, καρφωμένη στις εκδόσεις από τη δοκιμή μας στις 2026-08-04:
name: evals
on: [pull_request]
jobs:
eval:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11.14"
- run: pip install deepeval==4.1.5
- name: Score the golden set
env:
# Καρφώστε τον κριτή. Μια αναβάθμιση μοντέλου στη μέση του τριμήνου
# μετακινεί κάθε βαθμολογία.
JUDGE_MODEL: openai/gpt-4o-mini
# Τα thresholds ζουν σε ένα μέρος, διαβάζονται από τους κατασκευαστές μετρικών.
EVAL_THRESHOLD: "0.7"
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
run: deepeval test run tests/evals/Δύο παγίδες χτυπάνε πριν το threshold. Πρώτον, οι κλήσεις κριτή είναι κλήσεις δικτύου: η εκτέλεση DeepEval των 10 στοιχείων μας πήρε 126.8 δευτερόλεπτα γιατί το .measure() είναι σειριακό, και ένα golden set 200 στοιχείων πάνω σε αυτό το μονοπάτι κώδικα είναι διάλειμμα καφέ σε κάθε pull request. Κάθε άλλο framework στη δοκιμή παραλληλοποιεί από προεπιλογή, κάτι που είναι ο μεγαλύτερος μοχλός για τον χρόνο ρολογιού του CI.
Δεύτερον, η αστάθεια. Στη θερμοκρασία 0, το Opik και το Evidently μετακίνησαν το καθένα τέσσερα από τα δέκα στοιχεία μεταξύ διαδοχικών εκτελέσεων, και η σωστή απάντηση του promptfoo βρέθηκε στο 0.679 και μετά στο 0.642 έναντι πύλης 0.700. Οι μετριασμοί είναι βαρετοί και δουλεύουν: τρέξτε ένα σταθερό golden dataset που αλλάζει μόνο ανά pull request, καρφώστε το μοντέλο κριτή, προτιμήστε δυαδικούς evaluators όπου μια ετικέτα αρκεί, και θέστε πύλη σε ένα delta αντί για απόλυτο κατώφλι. Αυτό το τελευταίο έχει τη μεγαλύτερη σημασία για την αξιολόγηση πολλαπλών γύρων, όπου μια συνομιλία παράγει πολλές βαθμολογίες που η καθεμία μπορεί να ταλαντεύεται.
Για κλίμακα: η έρευνα του LangChain State of Agent Engineering (1.340 απαντήσεις, συλλέχθηκαν από 18 Νοεμβρίου έως 2 Δεκεμβρίου 2025, δημοσιεύτηκε στις 12 Ιουνίου 2026) βρήκε ότι το 89% των οργανισμών έχουν εφαρμόσει κάποια μορφή παρατηρησιμότητας για τους agents τους, ενώ μόνο το 52.4% τρέχει offline αξιολογήσεις σε σύνολα δοκιμών. Η παρακολούθηση είναι κοινή. Η πύλη δεν είναι.
Τι Θα Εγκαθιστούσαμε Αυτή την Εβδομάδα
Τέσσερα πράγματα προς αποκόμιση. Το Arize Phoenix είναι source-available με άδεια Elastic License 2.0 και δεν είναι εγκεκριμένο open source από το OSI, κάτι που δεν αλλάζει τίποτα για τους περισσότερους αναγνώστες και αλλάζει τα πάντα αν μεταπωλείτε εργαλεία αξιολόγησης. Το UpTrain είναι νεκρό, και σελίδες χωρίς ημερομηνία εξακολουθούν να το προτείνουν. Το Deepchecks δεν έχει βγάλει έκδοση από τον Δεκέμβριο του 2024 επίσης, αν και το repo του συνεχίζει να δέχεται commits. Μια μετρική grounding και μια μετρική συνάφειας έχουν η καθεμία μια τρύπα που καλύπτει η άλλη, οπότε θέστε πύλη και στις δύο. Και οι κλιμακωτές βαθμολογίες αποκλίνουν στη θερμοκρασία 0, οπότε καρφώστε τον κριτή σας και δώστε στα thresholds περιθώριο.
Αν ξεκινούσα νέα σουίτα αξιολόγησης αυτή την εβδομάδα, θα εγκαθιστούσα το DeepEval για την πύλη CI γιατί τα assertions ανήκουν δίπλα στα tests (αποκάλυψη παραπάνω), και θα πρόσθετα τις αυτόνομες μετρικές του Opik για τον πιο καθαρό διαχωρισμό που μετρήσαμε. Αν η στοίβα μας δεν ήταν Python, το promptfoo χωρίς δισταγμό. Αν προτιμάτε κάποιος άλλος να συνδέσει το golden set και το workflow, αυτή είναι μια συζήτηση που θα κάνουμε ευχαρίστως.
Συχνές Ερωτήσεις
Ποιο είναι το καλύτερο open-source framework αξιολόγησης LLM;
Δεν υπάρχει ένας νικητής, μόνο η καλύτερη επιλογή ανά περιορισμό. Για πύλη pass/fail μέσα σε Python test suite, DeepEval. Για ρύθμιση YAML και CLI ανεξάρτητη γλώσσας, promptfoo. Για μετρικές ανάκτησης RAG, Ragas, αν μπορείτε να δεχτείτε ένα repo χωρίς commits από τις 2026-02-24. Για τον πιο καθαρό διαχωρισμό καλού και κακού στη δοκιμή μας στις 2026-08-04, Opik.
Είναι το Arize Phoenix open source;
Όχι σύμφωνα με τον ορισμό του Open Source Initiative. Το Arize Phoenix διανέμεται με την Elastic License 2.0, την οποία το PyPI δηλώνει ως license: Elastic-2.0 στο v19.15.0 και την οποία η γραμμή 1 του αρχείου LICENSE του repo δηλώνει άμεσα. Είναι source-available: μπορείτε να το διαβάσετε, να το κάνετε fork, να το τροποποιήσετε και να το κάνετε self-host. Ο μόνος περιορισμός είναι η προσφορά του λογισμικού σε τρίτους ως φιλοξενούμενη ή διαχειριζόμενη υπηρεσία.
Συντηρείται ακόμα το Ragas;
Τα επαληθεύσιμα γεγονότα, όπως ίσχυαν στις 2026-08-04: η τελευταία έκδοση ήταν η v0.4.3 στις 2026-01-13, δεν υπάρχουν commits από τις 2026-02-24, και το repository μετακόμισε από τον οργανισμό explodinggradients στον vibrantlabsai. Το repo δεν είναι archived. Δεν βρήκαμε αξιόπιστη δημόσια εξήγηση για την αλλαγή οργανισμού και δεν θα εικάσουμε καμία. Ο κώδικας Apache-2.0 συνεχίζει να τρέχει· η έκθεση είναι σε μη ενημερωμένες εξαρτήσεις.
Χρειάζομαι framework αξιολόγησης ή πλατφόρμα παρατηρησιμότητας;
Και τα δύο, τελικά, αλλά απαντούν σε διαφορετικές ερωτήσεις. Ένα framework αξιολόγησης σας λέει αν μια αλλαγή έκανε τις εξόδους σας καλύτερες ή χειρότερες πριν τις στείλετε, πάνω σε ένα dataset που ελέγχετε εσείς. Μια πλατφόρμα παρατηρησιμότητας σας λέει τι πραγματικά συνέβη σε παραγωγή αφού στείλατε. Ξεκινήστε με το framework αξιολόγησης αν έχετε pipeline CI· δείτε τις πλατφόρμες παρατηρησιμότητας AI για την πλευρά παραγωγής.
Μπορώ να τρέξω αξιολογήσεις LLM σε CI/CD;
Ναι. Κάθε framework που καλύπτεται εδώ βγαίνει με μη μηδενικό κωδικό όταν ένα threshold assertion αποτυγχάνει, κάτι που είναι όλο κι όλο ό,τι χρειάζεται μια δουλειά GitHub Actions. Οι πρακτικοί περιορισμοί είναι ο χρόνος ρολογιού (οι κλήσεις κριτή είναι κλήσεις δικτύου, και η σειριακή εκτέλεση DeepEval μας πήρε 126.8 δευτερόλεπτα για 10 στοιχεία) και ο μη ντετερμινισμός του κριτή. Η μορφή workflow και οι μετριασμοί βρίσκονται στην ενότητα CI παραπάνω.
Ποια είναι η διαφορά μεταξύ DeepEval και Ragas;
Μορφή διεπαφής και εύρος, όχι ποιότητα. Το DeepEval είναι τύπου pytest και γενικού σκοπού: γράφετε test cases και κάνετε assert σε thresholds μετρικών, και καλύπτει εξόδους εφαρμογής πολλών ειδών. Το Ragas είναι βιβλιοθήκη ειδική για RAG της οποίας το evaluate() τρέχει ασύγχρονα πάνω σε dataset από γραμμές ερώτησης, context και απάντησης. Το DeepEval ταιριάζει πιο φυσικά σε πύλη CI· το Ragas πηγαίνει βαθύτερα στην ανάκτηση.
Γιατί το pip install promptfoo μου δίνει το λάθος πακέτο;
Επειδή το promptfoo είναι project Node. Το πραγματικό διανέμεται στο npm με άδεια MIT και εγκαθίσταται με npm install promptfoo. Το πακέτο PyPI με το ίδιο όνομα είναι τρίτο-κόμματος wrapper, όχι το αρχικό project, και η εγκατάστασή του είναι συνηθισμένος τρόπος να καταλήξετε να ξορκίζετε ένα CLI που δεν είναι αυτό που περιγράφουν τα docs.
Είναι το lm-evaluation-harness framework αξιολόγησης LLM;
Είναι harness αξιολόγησης μοντέλου, μια σχετική αλλά διαφορετική δουλειά. Το lm-evaluation-harness (εγκαθίσταται ως pip install lm-eval) κάνει benchmark ενός μοντέλου έναντι τυποποιημένων δημόσιων tasks όπως το MMLU. Δεν θα σας πει αν το pipeline ανάκτησής σας επέστρεψε το σωστό απόσπασμα, γιατί η εφαρμογή σας δεν είναι έννοια που διαθέτει. Δείτε την ενότητα framework-εναντίον-harness παραπάνω για τη διάκριση.
Είναι δωρεάν στη χρήση αυτά τα frameworks;
Όσον αφορά την άδεια χρήσης, ναι. Τα DeepEval, Ragas, Opik, Evidently και Giskard είναι Apache-2.0· τα promptfoo, Inspect AI και lm-evaluation-harness είναι MIT. Και οι δύο άδειες επιτρέπουν εμπορική χρήση, τροποποίηση και αναδιανομή. Το Arize Phoenix είναι η εξαίρεση: η Elastic License 2.0 επιτρέπει το self-hosting αλλά όχι την προσφορά του λογισμικού σε τρίτους ως διαχειριζόμενη υπηρεσία. Η χρήση API του μοντέλου κριτή χρεώνεται ξεχωριστά από τον πάροχό σας.