{
  "aboutHtml": "<p>Το Jev είναι το κορυφαίο μοντέλο της TypeSafe και το πρώτο μιας νέας κατηγορίας, της <strong>System One</strong>. Δεν γράφει κείμενο, αλλά λαμβάνει γρήγορα αποφάσεις που το πρόγραμμα μπορεί να χρησιμοποιήσει αμέσως: παρέχετε <strong>κατάσταση</strong> (<code>state</code>) — κείμενο ή JSON — και σύνολο <strong>ερωτημάτων</strong> και λαμβάνετε ως απάντηση τιμές καθορισμένου τύπου με βαθμονομημένες πιθανότητες.</p><p>Τα γλωσσικά μοντέλα γράφουν λέξεις για ανθρώπους, ενώ το Jev, σύμφωνα με την TypeSafe, μοιάζει περισσότερο με κώδικα: η απάντηση έρχεται αμέσως στη μορφή που χρειάζεται ο κώδικας, με υψηλή ταχύτητα και χωρίς καμία τιμή εκτός των καθορισμένων επιλογών. Το μοντέλο έχει σχεδιαστεί ώστε να δίνει σταθερές απαντήσεις σε επαναλαμβανόμενα αιτήματα.</p><h4>Πώς διαφέρει το System One από ένα γλωσσικό μοντέλο</h4><ul><li><strong>Δεν παράγει περιεχόμενο.</strong> Το Jev δεν γράφει απαντήσεις στον χρήστη, δεν γράφει κώδικα και δεν εξηγεί τη συλλογιστική του. Εσείς ορίζετε τις πιθανές απαντήσεις μέσω ενός από τους τρεις τύπους ερωτημάτων.</li><li><strong>Έχει εκπαιδευτεί για βαθμονομημένες αποφάσεις.</strong> Η TypeSafe εκπαιδεύει το μοντέλο με τη μέθοδο RLCD (Reinforcement Learning for Calibrated Decisions): οι πιθανότητες προσαρμόζονται στα πραγματικά αποτελέσματα και αποτυπώνουν την αβεβαιότητα. Από πολλές απαντήσεις με πιθανότητα 0,8, περίπου το 80% θα πρέπει να είναι σωστές. Η βαθμονόμηση αποτελεί ιδιότητα μεγάλου δείγματος, όχι εγγύηση ορθότητας μιας μεμονωμένης απάντησης.</li><li><strong>Διαφορετικός στόχος εκπαίδευσης.</strong> Τα μοντέλα συνομιλίας εκπαιδεύονται να αρέσουν στους ανθρώπους (RLHF) και, σύμφωνα με την TypeSafe, αυτό ενθαρρύνει την κολακευτική συμφωνία και τα λάθη που διατυπώνονται με βεβαιότητα. Ένας από τους συνδημιουργούς του RLHF, ο Ντιόγκο Αλμέιντα, είναι συνιδρυτής της TypeSafe.</li></ul><p>Η ονομασία παραπέμπει στο «Σύστημα 1» από το βιβλίο του Ντάνιελ Κάνεμαν «Σκέψη, αργή και γρήγορη»: γρήγορη διαισθητική κρίση έναντι αργής, συνειδητής σκέψης του «Συστήματος 2». Το Jev δημιουργήθηκε για γρήγορες, περιορισμένου εύρους κρίσεις.</p><h4>Τρεις τύποι ερωτημάτων</h4><p>Το ερώτημα είναι μία κρίση για την κατάσταση και η απάντηση μια τιμή που ο κώδικας συγκρίνει με όριο, ταξινομεί ή μεταβιβάζει παρακάτω.</p><ol><li><strong>Choice — επιλογή απάντησης.</strong> Τμήμα για ένα αίτημα, κατηγορία προϊόντος, γλώσσα αποσπάσματος κώδικα. Οι επιλογές είναι λεξικό «επιλογή → περιγραφή», έως 255 επιλογές. Η απάντηση περιέχει την επιλεγμένη <code>choice</code>, τις πιθανότητες <code>probabilities</code> όλων των επιλογών (με άθροισμα 1) και τη βεβαιότητα <code>confidence</code>. Αν ο κατάλογος ενδέχεται να μην καλύπτει όλες τις περιπτώσεις, προσθέστε «άλλο» ή «κανένα από τα παραπάνω».</li><li><strong>Score — αξιολόγηση σε κλίμακα.</strong> Θέση σε διατεταγμένη κλίμακα που περιγράφετε εσείς: σοβαρότητα σφάλματος, εκνευρισμός πελάτη, επίπεδο δεξιότητας. Από 2 έως 10 επίπεδα, από το χαμηλότερο στο υψηλότερο· το μοντέλο αξιολογεί κάθε επίπεδο χωριστά, χωρίς να βλέπει τον αριθμό του και τα γειτονικά του επίπεδα. Η απάντηση περιέχει <code>score</code> (το άθροισμα των αριθμών επιπέδων επί τις πιθανότητές τους, επομένως η τιμή μπορεί να βρίσκεται μεταξύ επιπέδων), <code>legend</code> με περιγραφές επιπέδων, <code>probabilities</code> και <code>confidence</code>.</li><li><strong>Noul — ναι ή όχι.</strong> Αν μια δήλωση είναι αληθής. Η απάντηση <code>noul</code> είναι η πιθανότητα «ναι» από 0 έως 1: κοντά στο 1 σημαίνει βέβαιο «ναι», κοντά στο 0 βέβαιο «όχι», κοντά στο 0,5 το μοντέλο αμφιταλαντεύεται. Δεν υπάρχει ξεχωριστό <code>confidence</code>: ένας αριθμός περιγράφει πλήρως την απάντηση. Το προαιρετικό <code>criteria</code> διευκρινίζει τι θεωρείται «ναι» και τι «όχι».</li></ol><p>Πώς να επιλέξετε: γνωστές επιλογές χωρίς σειρά — choice· βαθμίδες ενός φάσματος — score· καθαρό «ναι/όχι», όπου έχει σημασία η ίδια η πιθανότητα — noul. Το Noul 0,5 σημαίνει ίσες πιθανότητες για «ναι» και «όχι», όχι «μέσο επίπεδο»: τον βαθμό τον μετρά το score. Αν ταιριάζουν δύο τύποι, επιλέξτε εκείνον βάσει του οποίου ο κώδικας ενεργεί αμέσως: choice για διακλαδώσεις, score για όριο, noul για <code>if</code>.</p><p>Οι τύποι μπορούν να συνδυάζονται στο ίδιο αίτημα. Η απάντηση περιορίζεται πάντα στις επιλογές σας και δεν εξαρτάται από άλλα ερωτήματα: μπορείτε να προσθέτετε και να αφαιρείτε ερωτήματα χωρίς να αλλάζουν οι υπόλοιπες απαντήσεις.</p><h4>Κατάσταση</h4><p>Η κατάσταση είναι αυτό που αξιολογεί το μοντέλο: μήνυμα πελάτη, απόσπασμα εγγράφου, εγγραφή βάσης δεδομένων ή κατάσταση της εφαρμογής σας.</p><ul><li><strong>Συμβολοσειρά</strong> — όταν υπάρχει ένα κείμενο: μήνυμα, άρθρο, απόσπασμα.</li><li><strong>Αντικείμενο</strong> — ονομασμένα πεδία, συνδεδεμένες εγγραφές, κατάσταση εφαρμογής. Η TypeSafe συνιστά αντικείμενο για τα περισσότερα αιτήματα: κάθε μέρος έχει κατανοητό όνομα.</li><li><strong>Πίνακας</strong> — ακολουθία μηνυμάτων ή εγγραφών.</li></ul><p>Προετοιμάστε την όπως υλικό για ειδικούς: τοποθετήστε μαζί την αλληλογραφία, την παραγγελία και τους κανόνες επιστροφής, αν η απόφαση απαιτεί σύγκρισή τους. Κρατήστε το περιεχόμενο στην κατάσταση και τις κρίσεις στα ερωτήματα. Αν ένα ερώτημα αφορά μέρος της κατάστασης, αναφέρετε σε αυτό τη διαδρομή του μέσα σε ανάστροφες αποστρόφους, για παράδειγμα <code>ticket.messages[0].text</code>.</p><h4>Πώς διατυπώνονται τα ερωτήματα</h4><ul><li><strong>Μία γρήγορη κρίση ανά ερώτημα.</strong> Καλό ερώτημα είναι εκείνο στο οποίο ένας γνώστης με τα κατάλληλα συμφραζόμενα θα απαντούσε σε ένα δευτερόλεπτο: «Υπάρχει επείγον ζήτημα στο μήνυμα;». Το «Ανάλυσε το μήνυμα και αποφάσισε τι πρέπει να γίνει» απαιτεί ήδη αργό συλλογισμό και πρέπει να χωριστεί σε απλά ερωτήματα.</li><li><strong>Ολόκληρο το ερώτημα στο <code>instructions</code>.</strong> Το κλειδί του ερωτήματος, για παράδειγμα <code>refund_requested</code>, χρειάζεται μόνο στον κώδικά σας και δεν μεταβιβάζεται στο μοντέλο.</li><li><strong>Όλα τα ερωτήματα για την ίδια κατάσταση σε ένα αίτημα.</strong> Το μοντέλο τα αξιολογεί παράλληλα: σύμφωνα με την TypeSafe, τα πρόσθετα ερωτήματα αυξάνουν ελάχιστα τον χρόνο απόκρισης και κοστίζουν μόνο τα δικά τους token. Ένα ερώτημα «για κάθε ενδεχόμενο» κοστίζει σχεδόν τίποτα· ο κώδικας θα αποφασίσει ποιες απαντήσεις χρειάζονται.</li><li><strong>Η σύνθετη κρίση σε μέρη.</strong> Αντί για «αξιολόγησε την αίτηση της νεοφυούς επιχείρησης», ρωτήστε χωριστά για το μέγεθος αγοράς, την τεχνική εφικτότητα και τις διαφορές από ανταγωνιστές και υπολογίστε το αποτέλεσμα στον κώδικα με βάρη. Αν αλλάξουν οι προτεραιότητες, αλλάζετε τα βάρη αντί να ξαναγράφετε το ερώτημα.</li><li><strong>Εξαρτώμενα ερωτήματα σε δεύτερο αίτημα.</strong> Οι απαντήσεις του ίδιου αιτήματος δεν χρησιμεύουν ως συμφραζόμενα η μία για την άλλη. Δεύτερο αίτημα χρειάζεται μόνο αν δεν μπορεί να κατασκευαστεί χωρίς την πρώτη απάντηση: αν πρέπει να φορτωθούν δεδομένα ή να επιλεγούν οι επιλογές του επόμενου ερωτήματος.</li><li><strong>Μεγάλο ερώτημα ως αντικείμενο.</strong> Τα <code>instructions</code> και <code>criteria</code> είναι συνήθως συμβολοσειρές, αλλά μπορούν να είναι αντικείμενο ή πίνακας: το ερώτημα σε ένα πεδίο, τα δεδομένα στα άλλα. Έτσι διευκολύνεται η σύγκριση βιογραφικού με εγγραφές βάσης δεδομένων μέσω ενός ερωτήματος.</li></ul><h4>Βεβαιότητα</h4><p>Στα choice και score, το <code>confidence</code> από 0 έως 1 δείχνει πόσο συγκεντρώνεται η πιθανότητα σε μία απάντηση: 1 σημαίνει ότι όλη βρίσκεται σε μία επιλογή, 0 ότι κατανέμεται εξίσου σε όλες. Στο score, ένα γειτονικό επίπεδο μειώνει τη βεβαιότητα λιγότερο από ένα μακρινό. Στο noul, η βεβαιότητα είναι η ίδια η τιμή: όσο απέχει από το 0,5, τόσο πιο βέβαιη είναι η απάντηση.</p><p>Η TypeSafe συνιστά τρία εύρη:</p><ol><li><strong>Υψηλή βεβαιότητα</strong> — ενεργήστε αυτόματα.</li><li><strong>Μέτρια</strong> — ενεργήστε προσεκτικά, για παράδειγμα ζητήστε επιβεβαίωση από τον χρήστη.</li><li><strong>Χαμηλή</strong> — αναθέστε την περίπτωση σε άνθρωπο, διευκρινίστε το αίτημα ή χρησιμοποιήστε εφεδρική διαδρομή, για παράδειγμα ισχυρότερο μοντέλο με συλλογισμό.</li></ol><p>Όσο πιο δαπανηρό είναι το λάθος, τόσο αυστηρότερο το όριο: για μη αναστρέψιμες ενέργειες υψηλότερο από ό,τι για ανάγνωση. Η απάντηση λέει τι να επιλέξετε και η βεβαιότητα αν αξίζει να ενεργήσετε. Επιλέξτε τα όρια με τα δικά σας δεδομένα, συγκρίνοντας βεβαιότητα και ακρίβεια.</p><h4>Πώς χτίζεται ένα σύστημα γύρω από το Jev</h4><p>Το Jev προορίζεται για προγράμματα όπου ο κώδικας ελέγχει τη διαδικασία και το μοντέλο απαντά σε στενά σημασιολογικά ερωτήματα, αντί για πράκτορες που επιλέγουν μόνοι το επόμενο βήμα και μπορούν να παρεκκλίνουν σε κάθε κύκλο. Οκτώ βήματα σχεδιασμού σύμφωνα με την TypeSafe:</p><ol><li>Ό,τι μπορεί να γίνει με κώδικα, κάντε το με κώδικα — αξιόπιστα και οικονομικά.</li><li>Στην κατάσταση βάλτε μόνο όσα χρειάζονται τα τρέχοντα ερωτήματα· αντλήστε πρόσφατα στοιχεία από τη δική σας βάση γνώσεων, όχι από τη μνήμη του μοντέλου.</li><li>Δομή στην κατάσταση: εμφωλευμένο JSON και, στο ερώτημα, διαδρομή προς το επιθυμητό πεδίο μέσα σε ανάστροφες αποστρόφους, αν έτσι μειώνεται η αμφισημία.</li><li>Όσο το δυνατόν στενότερα και συγκεκριμένα ερωτήματα — σύμφωνα με την TypeSafe, ίσως ο σημαντικότερος κανόνας: ένα ευρύ ερώτημα κρύβει πολλές κρίσεις πίσω από μία απάντηση.</li><li>Δομή στα ερωτήματα: το ίδιο το ερώτημα σύντομο· εξηγήσεις, παραδείγματα και τιμές από τη βάση σας σε γειτονικά πεδία αντικειμένου <code>instructions</code> ή <code>criteria</code>, όχι σε μία μεγάλη συμβολοσειρά.</li><li>Πολλά ανεξάρτητα ερωτήματα για την ίδια κατάσταση στο ίδιο αίτημα — περισσότερη χρησιμότητα ανά δολάριο.</li><li>Οι απαντήσεις συνδυάζονται από τον κώδικα: με κανόνες, σταθμισμένο άθροισμα ή ως χαρακτηριστικά για κλασικό μοντέλο μηχανικής μάθησης.</li><li>Διακλάδωση βάσει βεβαιότητας: οι αβέβαιες περιπτώσεις σε άνθρωπο ή μοντέλο με συλλογισμό.</li></ol><p>Το Jev δεν είναι συνομιλία ούτε μοντέλο αυτόματης συμπλήρωσης κώδικα και δεν μπορεί να αντικαταστήσει ένα γλωσσικό μοντέλο σε πράκτορα προγραμματισμού. Ένας πράκτορας όμως μπορεί να γράψει για εσάς κώδικα που καλεί το Jev εκεί όπου απαιτείται γρήγορη, βαθμονομημένη απάντηση.</p><h4>Πού χρησιμοποιείται</h4><ul><li><strong>Αυτοματοποίηση στο παρασκήνιο</strong> — αποφάσεις που εκτελούνται ένα εκατομμύριο φορές χωρίς άνθρωπο δίπλα.</li><li><strong>Πραγματικός χρόνος</strong> — σύμφωνα με την TypeSafe, τα περισσότερα αιτήματα εκτελούνται σε περίπου 100 ms: αρκετά για επεξεργασία σε πραγματικό χρόνο και διεπαφές.</li><li><strong>Μεγάλα δεδομένα</strong> — αναζήτηση σε τεράστια σώματα δεδομένων, επισήμανση αρχείων καταγραφής εργασίας πρακτόρων, χαρακτηριστικά για προβλέψεις.</li><li><strong>Έλεγχος άλλων μοντέλων</strong> — αιτήματα, εξαγωγές, συλλογισμοί, κλήσεις εργαλείων: παράκαμψη περιορισμών, σφάλματα παραπομπών, επινοήσεις.</li><li><strong>Αναζήτηση και κατάταξη</strong> — συνάφεια ζεύγους «ερώτημα — υποψήφιο αποτέλεσμα», ανακατάταξη, επιλογή συμφραζομένων.</li><li><strong>Διακλάδωση βάσει πρόθεσης</strong> — τι θέλει ο χρήστης και ποιος χειριστής απαιτείται: απλή λογική, εξειδικευμένο μοντέλο ή άνθρωπος· το θέμα, η δυσκολία και ο κίνδυνος καθορίζουν σε ποιο γλωσσικό μοντέλο θα δοθεί το αίτημα.</li><li><strong>Έλεγχοι προστασίας</strong> — είσοδος, έξοδος και κλήσεις εργαλείων γλωσσικού μοντέλου: ενσωματωμένες κακόβουλες οδηγίες, παραβιάσεις κανόνων, διαρροή προσωπικών δεδομένων.</li><li><strong>Υποστήριξη</strong> — θέμα και πρόθεση αιτήματος, επείγον χαρακτήρας, εκνευρισμός, κίνδυνος αποχώρησης, αίτημα επιστροφής χρημάτων, ουρά.</li><li><strong>Έλεγχος περιεχομένου</strong> — βάσει των κανόνων της πλατφόρμας σας: τοξικότητα, παρενόχληση, spam, απάτη, επικίνδυνες συμβουλές, προσωπικά δεδομένα· ανάλογα με τη σοβαρότητα και τη βεβαιότητα, αποδοχή, προειδοποίηση, έλεγχος ή αποκλεισμός.</li><li><strong>Κλάδοι</strong> — ασφαλιστικές υποθέσεις, χρηματοοικονομικές έρευνες και KYC, συμβάσεις και διαφήμιση, κάρτες προϊόντων, προσλήψεις, δυνητικοί πελάτες, παιχνίδια, κίνδυνοι, πρόβλεψη ζήτησης, γράφοι γνώσεων, επιστημονικές ανασκοπήσεις, σημασιολογικοί έλεγχοι κώδικα σε CI.</li></ul><h4>Χαρακτηριστικά</h4><ul><li><strong><code>jev-latest</code></strong> — ψευδώνυμο της τελευταίας σταθερής έκδοσης, επί του παρόντος Jev 1.13· η έκδοση που απάντησε βρίσκεται στο πεδίο <code>model</code>, για παράδειγμα <code>jev-1.13.0</code>. Με νέα έκδοση, το ψευδώνυμο μεταβαίνει σε αυτήν και οι απαντήσεις μπορεί να αλλάξουν χωρίς δικές σας αλλαγές· παρακολουθείτε αυτό το πεδίο αν τα όρια έχουν επιλεγεί για συγκεκριμένη έκδοση.</li><li><strong>Παράθυρο συμφραζομένων</strong> — 64K token ανά αίτημα: η κατάσταση και όλα τα ερωτήματα μαζί· η κατάσταση με το μεγαλύτερο ερώτημα έως 32K. Το μοντέλο διαβάζει την κατάσταση μία φορά και ελέγχει έναντι αυτής όλα τα ερωτήματα παράλληλα.</li><li><strong>Είσοδος</strong> — μόνο κείμενο: συμβολοσειρά, αντικείμενο JSON ή πίνακας κειμένων. Εικόνες, ήχος και βίντεο δεν υποστηρίζονται ακόμη· μετατρέψτε τα προηγουμένως σε κείμενο.</li><li><strong>Γλώσσα</strong> — η κύρια γλώσσα εκπαίδευσης είναι τα αγγλικά, όπου η ακρίβεια είναι επί του παρόντος υψηλότερη. Το μοντέλο δέχεται άλλες γλώσσες, συμπεριλαμβανομένων κινεζικών, ιαπωνικών και κορεατικών, αλλά η ακρίβεια είναι χαμηλότερη· ελέγξτε με τα δικά σας δεδομένα.</li><li><strong>Τιμές και χρέωση στο Ailoot API</strong> — οι όροι εξαρτώνται από την επιλεγμένη μέθοδο και αναγράφονται στην κάρτα της.</li><li><strong>Προσαρμογή</strong> — το Jev δεν εκπαιδεύεται περαιτέρω με δεδομένα του πελάτη: το δικό σας υλικό στο <code>state</code>, οι κανόνες του πεδίου στα <code>instructions</code> και <code>criteria</code>.</li><li><strong>Δεδομένα</strong> — η TypeSafe αναφέρει ότι το Jev δεν εκπαιδεύεται με αιτήματα και απαντήσεις πελατών.</li></ul><h4>Γνωστές αδυναμίες του Jev 1.13</h4><p>Η TypeSafe απαριθμεί ανοιχτά τις αδυναμίες της τρέχουσας έκδοσης και υπόσχεται να διορθώσει πολλές στις επόμενες. Το μοντέλο είναι γρήγορο, βαθμονομημένο και κρίνει καλά με κοινή λογική, αλλά:</p><ol><li><strong>Διαβάζει κυριολεκτικά.</strong> Απαντά στο γραμμένο ερώτημα, όχι στο υπονοούμενο: ερμηνεύει κατά λέξη επιφυλάξεις, αρνήσεις και άρρητες συνθήκες. Γράψτε την ακριβή συνθήκη και τις οριακές περιπτώσεις στο <code>criteria</code>· χωρίστε την αναπόφευκτη ερμηνεία σε δύο κυριολεκτικά ερωτήματα.</li><li><strong>Δεν είναι αριθμομηχανή.</strong> Η καταμέτρηση χαρακτήρων, επαναλήψεων και στοιχείων λίστας είναι αναξιόπιστη και το σφάλμα αυξάνεται με το μέγεθος· μετρήστε στον κώδικα, με ένα ερώτημα ανά υποψήφιο. Το μοντέλο κατανοεί χρώματα σε hex ή RGB χειρότερα από ονομασίες. Το <code>score</code> είναι κατάλληλο για όριο, όχι για ακριβή αριθμό μεταξύ επιπέδων.</li><li><strong>Ημερομηνίες και χρόνος.</strong> Ποια ημερομηνία προηγείται, πόσο απέχουν, αν μια ημερομηνία εμπίπτει σε περίοδο — αναξιόπιστα, ιδιαίτερα με ανάμεικτες μορφές και σχετικές ημερομηνίες. Εξαγάγετε τα μέρη ημερομηνίας μέσω choice (με επιλογή «δεν αναφέρεται») και συγκρίνετε στον κώδικα.</li><li><strong>Έμμεση διατύπωση.</strong> Οι διπλές αρνήσεις και τα ερωτήματα για ιδιότητα μιας ιδιότητας μειώνουν την ακρίβεια. Γράψτε άμεσα και κατονομάστε τα μέρη της κατάστασης.</li><li><strong>Περιττό υλικό στην κατάσταση.</strong> Το άσχετο κείμενο μειώνει την ακρίβεια. Φιλτράρετε στον κώδικα και, αν δεν γίνεται, αποκλείστε το μη συναφές με ερωτήματα noul.</li><li><strong>Εχθρικό κείμενο.</strong> Το μοντέλο δεν αναμένει από προεπιλογή παγίδες στην κατάσταση: μια ενσωματωμένη κακόβουλη οδηγία ή κείμενο που αμφισβητεί τη δική του ταξινόμηση μπορεί να μετατοπίσει την απάντηση. Γράψτε ακριβή κριτήρια και ελέγξτε οριακές περιπτώσεις πριν από την έναρξη χρήσης.</li><li><strong>Αντιφάσεις.</strong> Αν τα <code>instructions</code> και <code>criteria</code> ζητούν διαφορετικά πράγματα — για παράδειγμα στο noul το «ναι» περιγράφεται ως «όχι» — η ακρίβεια μειώνεται. Τα κριτήρια αποτελούν συνέχεια του ερωτήματος.</li><li><strong>Σειρά επιλογών.</strong> Μερικές φορές το μοντέλο τείνει προς την πρώτη επιλογή choice. Αλλάξτε τη σειρά επιλογών και ελέγξτε ότι η απάντηση δεν αλλάζει.</li><li><strong>Παραγωγή περιεχομένου.</strong> Το Jev δεν έχει εκπαιδευτεί να γράφει κείμενο. Για εξαγωγή δεδομένων, εντοπίστε υποψηφίους με κανονική έκφραση ή παραγωγικό μοντέλο και αφήστε το Jev να επιλέξει τον σωστό μέσω choice.</li></ol>",
  "aboutText": "Το Jev είναι το κορυφαίο μοντέλο της TypeSafe και το πρώτο μιας νέας κατηγορίας, της **System One**. Δεν γράφει κείμενο, αλλά λαμβάνει γρήγορα αποφάσεις που το πρόγραμμα μπορεί να χρησιμοποιήσει αμέσως: παρέχετε **κατάσταση** (`state`) — κείμενο ή JSON — και σύνολο **ερωτημάτων** και λαμβάνετε ως απάντηση τιμές καθορισμένου τύπου με βαθμονομημένες πιθανότητες.\n\nΤα γλωσσικά μοντέλα γράφουν λέξεις για ανθρώπους, ενώ το Jev, σύμφωνα με την TypeSafe, μοιάζει περισσότερο με κώδικα: η απάντηση έρχεται αμέσως στη μορφή που χρειάζεται ο κώδικας, με υψηλή ταχύτητα και χωρίς καμία τιμή εκτός των καθορισμένων επιλογών. Το μοντέλο έχει σχεδιαστεί ώστε να δίνει σταθερές απαντήσεις σε επαναλαμβανόμενα αιτήματα.\n\n### Πώς διαφέρει το System One από ένα γλωσσικό μοντέλο\n\n- **Δεν παράγει περιεχόμενο.** Το Jev δεν γράφει απαντήσεις στον χρήστη, δεν γράφει κώδικα και δεν εξηγεί τη συλλογιστική του. Εσείς ορίζετε τις πιθανές απαντήσεις μέσω ενός από τους τρεις τύπους ερωτημάτων.\n- **Έχει εκπαιδευτεί για βαθμονομημένες αποφάσεις.** Η TypeSafe εκπαιδεύει το μοντέλο με τη μέθοδο RLCD (Reinforcement Learning for Calibrated Decisions): οι πιθανότητες προσαρμόζονται στα πραγματικά αποτελέσματα και αποτυπώνουν την αβεβαιότητα. Από πολλές απαντήσεις με πιθανότητα 0,8, περίπου το 80% θα πρέπει να είναι σωστές. Η βαθμονόμηση αποτελεί ιδιότητα μεγάλου δείγματος, όχι εγγύηση ορθότητας μιας μεμονωμένης απάντησης.\n- **Διαφορετικός στόχος εκπαίδευσης.** Τα μοντέλα συνομιλίας εκπαιδεύονται να αρέσουν στους ανθρώπους (RLHF) και, σύμφωνα με την TypeSafe, αυτό ενθαρρύνει την κολακευτική συμφωνία και τα λάθη που διατυπώνονται με βεβαιότητα. Ένας από τους συνδημιουργούς του RLHF, ο Ντιόγκο Αλμέιντα, είναι συνιδρυτής της TypeSafe.\n\nΗ ονομασία παραπέμπει στο «Σύστημα 1» από το βιβλίο του Ντάνιελ Κάνεμαν «Σκέψη, αργή και γρήγορη»: γρήγορη διαισθητική κρίση έναντι αργής, συνειδητής σκέψης του «Συστήματος 2». Το Jev δημιουργήθηκε για γρήγορες, περιορισμένου εύρους κρίσεις.\n\n### Τρεις τύποι ερωτημάτων\n\nΤο ερώτημα είναι μία κρίση για την κατάσταση και η απάντηση μια τιμή που ο κώδικας συγκρίνει με όριο, ταξινομεί ή μεταβιβάζει παρακάτω.\n\n1. **Choice — επιλογή απάντησης.** Τμήμα για ένα αίτημα, κατηγορία προϊόντος, γλώσσα αποσπάσματος κώδικα. Οι επιλογές είναι λεξικό «επιλογή → περιγραφή», έως 255 επιλογές. Η απάντηση περιέχει την επιλεγμένη `choice`, τις πιθανότητες `probabilities` όλων των επιλογών (με άθροισμα 1) και τη βεβαιότητα `confidence`. Αν ο κατάλογος ενδέχεται να μην καλύπτει όλες τις περιπτώσεις, προσθέστε «άλλο» ή «κανένα από τα παραπάνω».\n2. **Score — αξιολόγηση σε κλίμακα.** Θέση σε διατεταγμένη κλίμακα που περιγράφετε εσείς: σοβαρότητα σφάλματος, εκνευρισμός πελάτη, επίπεδο δεξιότητας. Από 2 έως 10 επίπεδα, από το χαμηλότερο στο υψηλότερο· το μοντέλο αξιολογεί κάθε επίπεδο χωριστά, χωρίς να βλέπει τον αριθμό του και τα γειτονικά του επίπεδα. Η απάντηση περιέχει `score` (το άθροισμα των αριθμών επιπέδων επί τις πιθανότητές τους, επομένως η τιμή μπορεί να βρίσκεται μεταξύ επιπέδων), `legend` με περιγραφές επιπέδων, `probabilities` και `confidence`.\n3. **Noul — ναι ή όχι.** Αν μια δήλωση είναι αληθής. Η απάντηση `noul` είναι η πιθανότητα «ναι» από 0 έως 1: κοντά στο 1 σημαίνει βέβαιο «ναι», κοντά στο 0 βέβαιο «όχι», κοντά στο 0,5 το μοντέλο αμφιταλαντεύεται. Δεν υπάρχει ξεχωριστό `confidence`: ένας αριθμός περιγράφει πλήρως την απάντηση. Το προαιρετικό `criteria` διευκρινίζει τι θεωρείται «ναι» και τι «όχι».\n\nΠώς να επιλέξετε: γνωστές επιλογές χωρίς σειρά — choice· βαθμίδες ενός φάσματος — score· καθαρό «ναι/όχι», όπου έχει σημασία η ίδια η πιθανότητα — noul. Το Noul 0,5 σημαίνει ίσες πιθανότητες για «ναι» και «όχι», όχι «μέσο επίπεδο»: τον βαθμό τον μετρά το score. Αν ταιριάζουν δύο τύποι, επιλέξτε εκείνον βάσει του οποίου ο κώδικας ενεργεί αμέσως: choice για διακλαδώσεις, score για όριο, noul για `if`.\n\nΟι τύποι μπορούν να συνδυάζονται στο ίδιο αίτημα. Η απάντηση περιορίζεται πάντα στις επιλογές σας και δεν εξαρτάται από άλλα ερωτήματα: μπορείτε να προσθέτετε και να αφαιρείτε ερωτήματα χωρίς να αλλάζουν οι υπόλοιπες απαντήσεις.\n\n### Κατάσταση\n\nΗ κατάσταση είναι αυτό που αξιολογεί το μοντέλο: μήνυμα πελάτη, απόσπασμα εγγράφου, εγγραφή βάσης δεδομένων ή κατάσταση της εφαρμογής σας.\n\n- **Συμβολοσειρά** — όταν υπάρχει ένα κείμενο: μήνυμα, άρθρο, απόσπασμα.\n- **Αντικείμενο** — ονομασμένα πεδία, συνδεδεμένες εγγραφές, κατάσταση εφαρμογής. Η TypeSafe συνιστά αντικείμενο για τα περισσότερα αιτήματα: κάθε μέρος έχει κατανοητό όνομα.\n- **Πίνακας** — ακολουθία μηνυμάτων ή εγγραφών.\n\nΠροετοιμάστε την όπως υλικό για ειδικούς: τοποθετήστε μαζί την αλληλογραφία, την παραγγελία και τους κανόνες επιστροφής, αν η απόφαση απαιτεί σύγκρισή τους. Κρατήστε το περιεχόμενο στην κατάσταση και τις κρίσεις στα ερωτήματα. Αν ένα ερώτημα αφορά μέρος της κατάστασης, αναφέρετε σε αυτό τη διαδρομή του μέσα σε ανάστροφες αποστρόφους, για παράδειγμα `ticket.messages[0].text`.\n\n### Πώς διατυπώνονται τα ερωτήματα\n\n- **Μία γρήγορη κρίση ανά ερώτημα.** Καλό ερώτημα είναι εκείνο στο οποίο ένας γνώστης με τα κατάλληλα συμφραζόμενα θα απαντούσε σε ένα δευτερόλεπτο: «Υπάρχει επείγον ζήτημα στο μήνυμα;». Το «Ανάλυσε το μήνυμα και αποφάσισε τι πρέπει να γίνει» απαιτεί ήδη αργό συλλογισμό και πρέπει να χωριστεί σε απλά ερωτήματα.\n- **Ολόκληρο το ερώτημα στο `instructions`.** Το κλειδί του ερωτήματος, για παράδειγμα `refund_requested`, χρειάζεται μόνο στον κώδικά σας και δεν μεταβιβάζεται στο μοντέλο.\n- **Όλα τα ερωτήματα για την ίδια κατάσταση σε ένα αίτημα.** Το μοντέλο τα αξιολογεί παράλληλα: σύμφωνα με την TypeSafe, τα πρόσθετα ερωτήματα αυξάνουν ελάχιστα τον χρόνο απόκρισης και κοστίζουν μόνο τα δικά τους token. Ένα ερώτημα «για κάθε ενδεχόμενο» κοστίζει σχεδόν τίποτα· ο κώδικας θα αποφασίσει ποιες απαντήσεις χρειάζονται.\n- **Η σύνθετη κρίση σε μέρη.** Αντί για «αξιολόγησε την αίτηση της νεοφυούς επιχείρησης», ρωτήστε χωριστά για το μέγεθος αγοράς, την τεχνική εφικτότητα και τις διαφορές από ανταγωνιστές και υπολογίστε το αποτέλεσμα στον κώδικα με βάρη. Αν αλλάξουν οι προτεραιότητες, αλλάζετε τα βάρη αντί να ξαναγράφετε το ερώτημα.\n- **Εξαρτώμενα ερωτήματα σε δεύτερο αίτημα.** Οι απαντήσεις του ίδιου αιτήματος δεν χρησιμεύουν ως συμφραζόμενα η μία για την άλλη. Δεύτερο αίτημα χρειάζεται μόνο αν δεν μπορεί να κατασκευαστεί χωρίς την πρώτη απάντηση: αν πρέπει να φορτωθούν δεδομένα ή να επιλεγούν οι επιλογές του επόμενου ερωτήματος.\n- **Μεγάλο ερώτημα ως αντικείμενο.** Τα `instructions` και `criteria` είναι συνήθως συμβολοσειρές, αλλά μπορούν να είναι αντικείμενο ή πίνακας: το ερώτημα σε ένα πεδίο, τα δεδομένα στα άλλα. Έτσι διευκολύνεται η σύγκριση βιογραφικού με εγγραφές βάσης δεδομένων μέσω ενός ερωτήματος.\n\n### Βεβαιότητα\n\nΣτα choice και score, το `confidence` από 0 έως 1 δείχνει πόσο συγκεντρώνεται η πιθανότητα σε μία απάντηση: 1 σημαίνει ότι όλη βρίσκεται σε μία επιλογή, 0 ότι κατανέμεται εξίσου σε όλες. Στο score, ένα γειτονικό επίπεδο μειώνει τη βεβαιότητα λιγότερο από ένα μακρινό. Στο noul, η βεβαιότητα είναι η ίδια η τιμή: όσο απέχει από το 0,5, τόσο πιο βέβαιη είναι η απάντηση.\n\nΗ TypeSafe συνιστά τρία εύρη:\n\n1. **Υψηλή βεβαιότητα** — ενεργήστε αυτόματα.\n2. **Μέτρια** — ενεργήστε προσεκτικά, για παράδειγμα ζητήστε επιβεβαίωση από τον χρήστη.\n3. **Χαμηλή** — αναθέστε την περίπτωση σε άνθρωπο, διευκρινίστε το αίτημα ή χρησιμοποιήστε εφεδρική διαδρομή, για παράδειγμα ισχυρότερο μοντέλο με συλλογισμό.\n\nΌσο πιο δαπανηρό είναι το λάθος, τόσο αυστηρότερο το όριο: για μη αναστρέψιμες ενέργειες υψηλότερο από ό,τι για ανάγνωση. Η απάντηση λέει τι να επιλέξετε και η βεβαιότητα αν αξίζει να ενεργήσετε. Επιλέξτε τα όρια με τα δικά σας δεδομένα, συγκρίνοντας βεβαιότητα και ακρίβεια.\n\n### Πώς χτίζεται ένα σύστημα γύρω από το Jev\n\nΤο Jev προορίζεται για προγράμματα όπου ο κώδικας ελέγχει τη διαδικασία και το μοντέλο απαντά σε στενά σημασιολογικά ερωτήματα, αντί για πράκτορες που επιλέγουν μόνοι το επόμενο βήμα και μπορούν να παρεκκλίνουν σε κάθε κύκλο. Οκτώ βήματα σχεδιασμού σύμφωνα με την TypeSafe:\n\n1. Ό,τι μπορεί να γίνει με κώδικα, κάντε το με κώδικα — αξιόπιστα και οικονομικά.\n2. Στην κατάσταση βάλτε μόνο όσα χρειάζονται τα τρέχοντα ερωτήματα· αντλήστε πρόσφατα στοιχεία από τη δική σας βάση γνώσεων, όχι από τη μνήμη του μοντέλου.\n3. Δομή στην κατάσταση: εμφωλευμένο JSON και, στο ερώτημα, διαδρομή προς το επιθυμητό πεδίο μέσα σε ανάστροφες αποστρόφους, αν έτσι μειώνεται η αμφισημία.\n4. Όσο το δυνατόν στενότερα και συγκεκριμένα ερωτήματα — σύμφωνα με την TypeSafe, ίσως ο σημαντικότερος κανόνας: ένα ευρύ ερώτημα κρύβει πολλές κρίσεις πίσω από μία απάντηση.\n5. Δομή στα ερωτήματα: το ίδιο το ερώτημα σύντομο· εξηγήσεις, παραδείγματα και τιμές από τη βάση σας σε γειτονικά πεδία αντικειμένου `instructions` ή `criteria`, όχι σε μία μεγάλη συμβολοσειρά.\n6. Πολλά ανεξάρτητα ερωτήματα για την ίδια κατάσταση στο ίδιο αίτημα — περισσότερη χρησιμότητα ανά δολάριο.\n7. Οι απαντήσεις συνδυάζονται από τον κώδικα: με κανόνες, σταθμισμένο άθροισμα ή ως χαρακτηριστικά για κλασικό μοντέλο μηχανικής μάθησης.\n8. Διακλάδωση βάσει βεβαιότητας: οι αβέβαιες περιπτώσεις σε άνθρωπο ή μοντέλο με συλλογισμό.\n\nΤο Jev δεν είναι συνομιλία ούτε μοντέλο αυτόματης συμπλήρωσης κώδικα και δεν μπορεί να αντικαταστήσει ένα γλωσσικό μοντέλο σε πράκτορα προγραμματισμού. Ένας πράκτορας όμως μπορεί να γράψει για εσάς κώδικα που καλεί το Jev εκεί όπου απαιτείται γρήγορη, βαθμονομημένη απάντηση.\n\n### Πού χρησιμοποιείται\n\n- **Αυτοματοποίηση στο παρασκήνιο** — αποφάσεις που εκτελούνται ένα εκατομμύριο φορές χωρίς άνθρωπο δίπλα.\n- **Πραγματικός χρόνος** — σύμφωνα με την TypeSafe, τα περισσότερα αιτήματα εκτελούνται σε περίπου 100 ms: αρκετά για επεξεργασία σε πραγματικό χρόνο και διεπαφές.\n- **Μεγάλα δεδομένα** — αναζήτηση σε τεράστια σώματα δεδομένων, επισήμανση αρχείων καταγραφής εργασίας πρακτόρων, χαρακτηριστικά για προβλέψεις.\n- **Έλεγχος άλλων μοντέλων** — αιτήματα, εξαγωγές, συλλογισμοί, κλήσεις εργαλείων: παράκαμψη περιορισμών, σφάλματα παραπομπών, επινοήσεις.\n- **Αναζήτηση και κατάταξη** — συνάφεια ζεύγους «ερώτημα — υποψήφιο αποτέλεσμα», ανακατάταξη, επιλογή συμφραζομένων.\n- **Διακλάδωση βάσει πρόθεσης** — τι θέλει ο χρήστης και ποιος χειριστής απαιτείται: απλή λογική, εξειδικευμένο μοντέλο ή άνθρωπος· το θέμα, η δυσκολία και ο κίνδυνος καθορίζουν σε ποιο γλωσσικό μοντέλο θα δοθεί το αίτημα.\n- **Έλεγχοι προστασίας** — είσοδος, έξοδος και κλήσεις εργαλείων γλωσσικού μοντέλου: ενσωματωμένες κακόβουλες οδηγίες, παραβιάσεις κανόνων, διαρροή προσωπικών δεδομένων.\n- **Υποστήριξη** — θέμα και πρόθεση αιτήματος, επείγον χαρακτήρας, εκνευρισμός, κίνδυνος αποχώρησης, αίτημα επιστροφής χρημάτων, ουρά.\n- **Έλεγχος περιεχομένου** — βάσει των κανόνων της πλατφόρμας σας: τοξικότητα, παρενόχληση, spam, απάτη, επικίνδυνες συμβουλές, προσωπικά δεδομένα· ανάλογα με τη σοβαρότητα και τη βεβαιότητα, αποδοχή, προειδοποίηση, έλεγχος ή αποκλεισμός.\n- **Κλάδοι** — ασφαλιστικές υποθέσεις, χρηματοοικονομικές έρευνες και KYC, συμβάσεις και διαφήμιση, κάρτες προϊόντων, προσλήψεις, δυνητικοί πελάτες, παιχνίδια, κίνδυνοι, πρόβλεψη ζήτησης, γράφοι γνώσεων, επιστημονικές ανασκοπήσεις, σημασιολογικοί έλεγχοι κώδικα σε CI.\n\n### Χαρακτηριστικά\n\n- **`jev-latest`** — ψευδώνυμο της τελευταίας σταθερής έκδοσης, επί του παρόντος Jev 1.13· η έκδοση που απάντησε βρίσκεται στο πεδίο `model`, για παράδειγμα `jev-1.13.0`. Με νέα έκδοση, το ψευδώνυμο μεταβαίνει σε αυτήν και οι απαντήσεις μπορεί να αλλάξουν χωρίς δικές σας αλλαγές· παρακολουθείτε αυτό το πεδίο αν τα όρια έχουν επιλεγεί για συγκεκριμένη έκδοση.\n- **Παράθυρο συμφραζομένων** — 64K token ανά αίτημα: η κατάσταση και όλα τα ερωτήματα μαζί· η κατάσταση με το μεγαλύτερο ερώτημα έως 32K. Το μοντέλο διαβάζει την κατάσταση μία φορά και ελέγχει έναντι αυτής όλα τα ερωτήματα παράλληλα.\n- **Είσοδος** — μόνο κείμενο: συμβολοσειρά, αντικείμενο JSON ή πίνακας κειμένων. Εικόνες, ήχος και βίντεο δεν υποστηρίζονται ακόμη· μετατρέψτε τα προηγουμένως σε κείμενο.\n- **Γλώσσα** — η κύρια γλώσσα εκπαίδευσης είναι τα αγγλικά, όπου η ακρίβεια είναι επί του παρόντος υψηλότερη. Το μοντέλο δέχεται άλλες γλώσσες, συμπεριλαμβανομένων κινεζικών, ιαπωνικών και κορεατικών, αλλά η ακρίβεια είναι χαμηλότερη· ελέγξτε με τα δικά σας δεδομένα.\n- **Τιμές και χρέωση στο Ailoot API** — οι όροι εξαρτώνται από την επιλεγμένη μέθοδο και αναγράφονται στην κάρτα της.\n- **Προσαρμογή** — το Jev δεν εκπαιδεύεται περαιτέρω με δεδομένα του πελάτη: το δικό σας υλικό στο `state`, οι κανόνες του πεδίου στα `instructions` και `criteria`.\n- **Δεδομένα** — η TypeSafe αναφέρει ότι το Jev δεν εκπαιδεύεται με αιτήματα και απαντήσεις πελατών.\n\n### Γνωστές αδυναμίες του Jev 1.13\n\nΗ TypeSafe απαριθμεί ανοιχτά τις αδυναμίες της τρέχουσας έκδοσης και υπόσχεται να διορθώσει πολλές στις επόμενες. Το μοντέλο είναι γρήγορο, βαθμονομημένο και κρίνει καλά με κοινή λογική, αλλά:\n\n1. **Διαβάζει κυριολεκτικά.** Απαντά στο γραμμένο ερώτημα, όχι στο υπονοούμενο: ερμηνεύει κατά λέξη επιφυλάξεις, αρνήσεις και άρρητες συνθήκες. Γράψτε την ακριβή συνθήκη και τις οριακές περιπτώσεις στο `criteria`· χωρίστε την αναπόφευκτη ερμηνεία σε δύο κυριολεκτικά ερωτήματα.\n2. **Δεν είναι αριθμομηχανή.** Η καταμέτρηση χαρακτήρων, επαναλήψεων και στοιχείων λίστας είναι αναξιόπιστη και το σφάλμα αυξάνεται με το μέγεθος· μετρήστε στον κώδικα, με ένα ερώτημα ανά υποψήφιο. Το μοντέλο κατανοεί χρώματα σε hex ή RGB χειρότερα από ονομασίες. Το `score` είναι κατάλληλο για όριο, όχι για ακριβή αριθμό μεταξύ επιπέδων.\n3. **Ημερομηνίες και χρόνος.** Ποια ημερομηνία προηγείται, πόσο απέχουν, αν μια ημερομηνία εμπίπτει σε περίοδο — αναξιόπιστα, ιδιαίτερα με ανάμεικτες μορφές και σχετικές ημερομηνίες. Εξαγάγετε τα μέρη ημερομηνίας μέσω choice (με επιλογή «δεν αναφέρεται») και συγκρίνετε στον κώδικα.\n4. **Έμμεση διατύπωση.** Οι διπλές αρνήσεις και τα ερωτήματα για ιδιότητα μιας ιδιότητας μειώνουν την ακρίβεια. Γράψτε άμεσα και κατονομάστε τα μέρη της κατάστασης.\n5. **Περιττό υλικό στην κατάσταση.** Το άσχετο κείμενο μειώνει την ακρίβεια. Φιλτράρετε στον κώδικα και, αν δεν γίνεται, αποκλείστε το μη συναφές με ερωτήματα noul.\n6. **Εχθρικό κείμενο.** Το μοντέλο δεν αναμένει από προεπιλογή παγίδες στην κατάσταση: μια ενσωματωμένη κακόβουλη οδηγία ή κείμενο που αμφισβητεί τη δική του ταξινόμηση μπορεί να μετατοπίσει την απάντηση. Γράψτε ακριβή κριτήρια και ελέγξτε οριακές περιπτώσεις πριν από την έναρξη χρήσης.\n7. **Αντιφάσεις.** Αν τα `instructions` και `criteria` ζητούν διαφορετικά πράγματα — για παράδειγμα στο noul το «ναι» περιγράφεται ως «όχι» — η ακρίβεια μειώνεται. Τα κριτήρια αποτελούν συνέχεια του ερωτήματος.\n8. **Σειρά επιλογών.** Μερικές φορές το μοντέλο τείνει προς την πρώτη επιλογή choice. Αλλάξτε τη σειρά επιλογών και ελέγξτε ότι η απάντηση δεν αλλάζει.\n9. **Παραγωγή περιεχομένου.** Το Jev δεν έχει εκπαιδευτεί να γράφει κείμενο. Για εξαγωγή δεδομένων, εντοπίστε υποψηφίους με κανονική έκφραση ή παραγωγικό μοντέλο και αφήστε το Jev να επιλέξει τον σωστό μέσω choice.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "3a2ceb9ff393329285401e40d6f78ddb1b3b2a0d63921292de931cbe0f8b786a",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "el",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">TS</span><h2 id=\"sheet-title\">jev-latest</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Κλείσιμο\">×</button></div><div class=\"idline\"><span>TypeSafe /</span><code>jev-latest</code><button type=\"button\" id=\"copy-id\">Αντιγραφή ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Ενότητες κάρτας μοντέλου\"><button type=\"button\" data-card-jump=\"overview\">Εισαγωγή</button><button type=\"button\" data-card-jump=\"methods\">Είσοδοι και μέθοδοι</button><button type=\"button\" data-card-jump=\"pricing\">Τιμολόγηση</button><button type=\"button\" data-card-jump=\"examples\">Παραδείγματα</button><button type=\"button\" data-card-jump=\"results\">Αποτελέσματα</button><button type=\"button\" data-card-jump=\"aliases\">Εναλλακτικά ονόματα</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Μέθοδοι API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Core|systemone|/v1/systemone|jev-latest\">System One</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Εισαγωγή</h3><p class=\"mdesc-full\">Μοντέλο αποφάσεων της TypeSafe: δεν γράφει κείμενο, αλλά απαντά σε ερωτήματα με καθορισμένο τύπο για κείμενο ή JSON — επιλογή απάντησης, αξιολόγηση σε κλίμακα ή «ναι/όχι» με πιθανότητες. Εξυπηρετεί δρομολόγηση, ταξινόμηση αιτημάτων, έλεγχο περιεχομένου και βαθμολόγηση· όλα τα ερωτήματα του ίδιου αιτήματος αξιολογούνται παράλληλα.</p><dl class=\"card-io\" data-card-io><div><dt>Αποδεκτές είσοδοι</dt><dd>Κείμενο</dd></div><div><dt>Αποτελέσματα</dt><dd>structured</dd></div></dl><details class=\"card-about\"><summary>Σχετικά με το μοντέλο</summary><p class=\"note-s\" data-model-method-boundary>Αυτή η περιγραφή καλύπτει τις δυνατότητες του μοντέλου. Οι είσοδοι, έξοδοι και επιλογές που διατίθενται στο Ailoot παρατίθενται παρακάτω για την επιλεγμένη μέθοδο.</p><div class=\"mabout\" id=\"m-about\"><p>Το Jev είναι το κορυφαίο μοντέλο της TypeSafe και το πρώτο μιας νέας κατηγορίας, της <strong>System One</strong>. Δεν γράφει κείμενο, αλλά λαμβάνει γρήγορα αποφάσεις που το πρόγραμμα μπορεί να χρησιμοποιήσει αμέσως: παρέχετε <strong>κατάσταση</strong> (<code>state</code>) — κείμενο ή JSON — και σύνολο <strong>ερωτημάτων</strong> και λαμβάνετε ως απάντηση τιμές καθορισμένου τύπου με βαθμονομημένες πιθανότητες.</p><p>Τα γλωσσικά μοντέλα γράφουν λέξεις για ανθρώπους, ενώ το Jev, σύμφωνα με την TypeSafe, μοιάζει περισσότερο με κώδικα: η απάντηση έρχεται αμέσως στη μορφή που χρειάζεται ο κώδικας, με υψηλή ταχύτητα και χωρίς καμία τιμή εκτός των καθορισμένων επιλογών. Το μοντέλο έχει σχεδιαστεί ώστε να δίνει σταθερές απαντήσεις σε επαναλαμβανόμενα αιτήματα.</p><h4>Πώς διαφέρει το System One από ένα γλωσσικό μοντέλο</h4><ul><li><strong>Δεν παράγει περιεχόμενο.</strong> Το Jev δεν γράφει απαντήσεις στον χρήστη, δεν γράφει κώδικα και δεν εξηγεί τη συλλογιστική του. Εσείς ορίζετε τις πιθανές απαντήσεις μέσω ενός από τους τρεις τύπους ερωτημάτων.</li><li><strong>Έχει εκπαιδευτεί για βαθμονομημένες αποφάσεις.</strong> Η TypeSafe εκπαιδεύει το μοντέλο με τη μέθοδο RLCD (Reinforcement Learning for Calibrated Decisions): οι πιθανότητες προσαρμόζονται στα πραγματικά αποτελέσματα και αποτυπώνουν την αβεβαιότητα. Από πολλές απαντήσεις με πιθανότητα 0,8, περίπου το 80% θα πρέπει να είναι σωστές. Η βαθμονόμηση αποτελεί ιδιότητα μεγάλου δείγματος, όχι εγγύηση ορθότητας μιας μεμονωμένης απάντησης.</li><li><strong>Διαφορετικός στόχος εκπαίδευσης.</strong> Τα μοντέλα συνομιλίας εκπαιδεύονται να αρέσουν στους ανθρώπους (RLHF) και, σύμφωνα με την TypeSafe, αυτό ενθαρρύνει την κολακευτική συμφωνία και τα λάθη που διατυπώνονται με βεβαιότητα. Ένας από τους συνδημιουργούς του RLHF, ο Ντιόγκο Αλμέιντα, είναι συνιδρυτής της TypeSafe.</li></ul><p>Η ονομασία παραπέμπει στο «Σύστημα 1» από το βιβλίο του Ντάνιελ Κάνεμαν «Σκέψη, αργή και γρήγορη»: γρήγορη διαισθητική κρίση έναντι αργής, συνειδητής σκέψης του «Συστήματος 2». Το Jev δημιουργήθηκε για γρήγορες, περιορισμένου εύρους κρίσεις.</p><h4>Τρεις τύποι ερωτημάτων</h4><p>Το ερώτημα είναι μία κρίση για την κατάσταση και η απάντηση μια τιμή που ο κώδικας συγκρίνει με όριο, ταξινομεί ή μεταβιβάζει παρακάτω.</p><ol><li><strong>Choice — επιλογή απάντησης.</strong> Τμήμα για ένα αίτημα, κατηγορία προϊόντος, γλώσσα αποσπάσματος κώδικα. Οι επιλογές είναι λεξικό «επιλογή → περιγραφή», έως 255 επιλογές. Η απάντηση περιέχει την επιλεγμένη <code>choice</code>, τις πιθανότητες <code>probabilities</code> όλων των επιλογών (με άθροισμα 1) και τη βεβαιότητα <code>confidence</code>. Αν ο κατάλογος ενδέχεται να μην καλύπτει όλες τις περιπτώσεις, προσθέστε «άλλο» ή «κανένα από τα παραπάνω».</li><li><strong>Score — αξιολόγηση σε κλίμακα.</strong> Θέση σε διατεταγμένη κλίμακα που περιγράφετε εσείς: σοβαρότητα σφάλματος, εκνευρισμός πελάτη, επίπεδο δεξιότητας. Από 2 έως 10 επίπεδα, από το χαμηλότερο στο υψηλότερο· το μοντέλο αξιολογεί κάθε επίπεδο χωριστά, χωρίς να βλέπει τον αριθμό του και τα γειτονικά του επίπεδα. Η απάντηση περιέχει <code>score</code> (το άθροισμα των αριθμών επιπέδων επί τις πιθανότητές τους, επομένως η τιμή μπορεί να βρίσκεται μεταξύ επιπέδων), <code>legend</code> με περιγραφές επιπέδων, <code>probabilities</code> και <code>confidence</code>.</li><li><strong>Noul — ναι ή όχι.</strong> Αν μια δήλωση είναι αληθής. Η απάντηση <code>noul</code> είναι η πιθανότητα «ναι» από 0 έως 1: κοντά στο 1 σημαίνει βέβαιο «ναι», κοντά στο 0 βέβαιο «όχι», κοντά στο 0,5 το μοντέλο αμφιταλαντεύεται. Δεν υπάρχει ξεχωριστό <code>confidence</code>: ένας αριθμός περιγράφει πλήρως την απάντηση. Το προαιρετικό <code>criteria</code> διευκρινίζει τι θεωρείται «ναι» και τι «όχι».</li></ol><p>Πώς να επιλέξετε: γνωστές επιλογές χωρίς σειρά — choice· βαθμίδες ενός φάσματος — score· καθαρό «ναι/όχι», όπου έχει σημασία η ίδια η πιθανότητα — noul. Το Noul 0,5 σημαίνει ίσες πιθανότητες για «ναι» και «όχι», όχι «μέσο επίπεδο»: τον βαθμό τον μετρά το score. Αν ταιριάζουν δύο τύποι, επιλέξτε εκείνον βάσει του οποίου ο κώδικας ενεργεί αμέσως: choice για διακλαδώσεις, score για όριο, noul για <code>if</code>.</p><p>Οι τύποι μπορούν να συνδυάζονται στο ίδιο αίτημα. Η απάντηση περιορίζεται πάντα στις επιλογές σας και δεν εξαρτάται από άλλα ερωτήματα: μπορείτε να προσθέτετε και να αφαιρείτε ερωτήματα χωρίς να αλλάζουν οι υπόλοιπες απαντήσεις.</p><h4>Κατάσταση</h4><p>Η κατάσταση είναι αυτό που αξιολογεί το μοντέλο: μήνυμα πελάτη, απόσπασμα εγγράφου, εγγραφή βάσης δεδομένων ή κατάσταση της εφαρμογής σας.</p><ul><li><strong>Συμβολοσειρά</strong> — όταν υπάρχει ένα κείμενο: μήνυμα, άρθρο, απόσπασμα.</li><li><strong>Αντικείμενο</strong> — ονομασμένα πεδία, συνδεδεμένες εγγραφές, κατάσταση εφαρμογής. Η TypeSafe συνιστά αντικείμενο για τα περισσότερα αιτήματα: κάθε μέρος έχει κατανοητό όνομα.</li><li><strong>Πίνακας</strong> — ακολουθία μηνυμάτων ή εγγραφών.</li></ul><p>Προετοιμάστε την όπως υλικό για ειδικούς: τοποθετήστε μαζί την αλληλογραφία, την παραγγελία και τους κανόνες επιστροφής, αν η απόφαση απαιτεί σύγκρισή τους. Κρατήστε το περιεχόμενο στην κατάσταση και τις κρίσεις στα ερωτήματα. Αν ένα ερώτημα αφορά μέρος της κατάστασης, αναφέρετε σε αυτό τη διαδρομή του μέσα σε ανάστροφες αποστρόφους, για παράδειγμα <code>ticket.messages[0].text</code>.</p><h4>Πώς διατυπώνονται τα ερωτήματα</h4><ul><li><strong>Μία γρήγορη κρίση ανά ερώτημα.</strong> Καλό ερώτημα είναι εκείνο στο οποίο ένας γνώστης με τα κατάλληλα συμφραζόμενα θα απαντούσε σε ένα δευτερόλεπτο: «Υπάρχει επείγον ζήτημα στο μήνυμα;». Το «Ανάλυσε το μήνυμα και αποφάσισε τι πρέπει να γίνει» απαιτεί ήδη αργό συλλογισμό και πρέπει να χωριστεί σε απλά ερωτήματα.</li><li><strong>Ολόκληρο το ερώτημα στο <code>instructions</code>.</strong> Το κλειδί του ερωτήματος, για παράδειγμα <code>refund_requested</code>, χρειάζεται μόνο στον κώδικά σας και δεν μεταβιβάζεται στο μοντέλο.</li><li><strong>Όλα τα ερωτήματα για την ίδια κατάσταση σε ένα αίτημα.</strong> Το μοντέλο τα αξιολογεί παράλληλα: σύμφωνα με την TypeSafe, τα πρόσθετα ερωτήματα αυξάνουν ελάχιστα τον χρόνο απόκρισης και κοστίζουν μόνο τα δικά τους token. Ένα ερώτημα «για κάθε ενδεχόμενο» κοστίζει σχεδόν τίποτα· ο κώδικας θα αποφασίσει ποιες απαντήσεις χρειάζονται.</li><li><strong>Η σύνθετη κρίση σε μέρη.</strong> Αντί για «αξιολόγησε την αίτηση της νεοφυούς επιχείρησης», ρωτήστε χωριστά για το μέγεθος αγοράς, την τεχνική εφικτότητα και τις διαφορές από ανταγωνιστές και υπολογίστε το αποτέλεσμα στον κώδικα με βάρη. Αν αλλάξουν οι προτεραιότητες, αλλάζετε τα βάρη αντί να ξαναγράφετε το ερώτημα.</li><li><strong>Εξαρτώμενα ερωτήματα σε δεύτερο αίτημα.</strong> Οι απαντήσεις του ίδιου αιτήματος δεν χρησιμεύουν ως συμφραζόμενα η μία για την άλλη. Δεύτερο αίτημα χρειάζεται μόνο αν δεν μπορεί να κατασκευαστεί χωρίς την πρώτη απάντηση: αν πρέπει να φορτωθούν δεδομένα ή να επιλεγούν οι επιλογές του επόμενου ερωτήματος.</li><li><strong>Μεγάλο ερώτημα ως αντικείμενο.</strong> Τα <code>instructions</code> και <code>criteria</code> είναι συνήθως συμβολοσειρές, αλλά μπορούν να είναι αντικείμενο ή πίνακας: το ερώτημα σε ένα πεδίο, τα δεδομένα στα άλλα. Έτσι διευκολύνεται η σύγκριση βιογραφικού με εγγραφές βάσης δεδομένων μέσω ενός ερωτήματος.</li></ul><h4>Βεβαιότητα</h4><p>Στα choice και score, το <code>confidence</code> από 0 έως 1 δείχνει πόσο συγκεντρώνεται η πιθανότητα σε μία απάντηση: 1 σημαίνει ότι όλη βρίσκεται σε μία επιλογή, 0 ότι κατανέμεται εξίσου σε όλες. Στο score, ένα γειτονικό επίπεδο μειώνει τη βεβαιότητα λιγότερο από ένα μακρινό. Στο noul, η βεβαιότητα είναι η ίδια η τιμή: όσο απέχει από το 0,5, τόσο πιο βέβαιη είναι η απάντηση.</p><p>Η TypeSafe συνιστά τρία εύρη:</p><ol><li><strong>Υψηλή βεβαιότητα</strong> — ενεργήστε αυτόματα.</li><li><strong>Μέτρια</strong> — ενεργήστε προσεκτικά, για παράδειγμα ζητήστε επιβεβαίωση από τον χρήστη.</li><li><strong>Χαμηλή</strong> — αναθέστε την περίπτωση σε άνθρωπο, διευκρινίστε το αίτημα ή χρησιμοποιήστε εφεδρική διαδρομή, για παράδειγμα ισχυρότερο μοντέλο με συλλογισμό.</li></ol><p>Όσο πιο δαπανηρό είναι το λάθος, τόσο αυστηρότερο το όριο: για μη αναστρέψιμες ενέργειες υψηλότερο από ό,τι για ανάγνωση. Η απάντηση λέει τι να επιλέξετε και η βεβαιότητα αν αξίζει να ενεργήσετε. Επιλέξτε τα όρια με τα δικά σας δεδομένα, συγκρίνοντας βεβαιότητα και ακρίβεια.</p><h4>Πώς χτίζεται ένα σύστημα γύρω από το Jev</h4><p>Το Jev προορίζεται για προγράμματα όπου ο κώδικας ελέγχει τη διαδικασία και το μοντέλο απαντά σε στενά σημασιολογικά ερωτήματα, αντί για πράκτορες που επιλέγουν μόνοι το επόμενο βήμα και μπορούν να παρεκκλίνουν σε κάθε κύκλο. Οκτώ βήματα σχεδιασμού σύμφωνα με την TypeSafe:</p><ol><li>Ό,τι μπορεί να γίνει με κώδικα, κάντε το με κώδικα — αξιόπιστα και οικονομικά.</li><li>Στην κατάσταση βάλτε μόνο όσα χρειάζονται τα τρέχοντα ερωτήματα· αντλήστε πρόσφατα στοιχεία από τη δική σας βάση γνώσεων, όχι από τη μνήμη του μοντέλου.</li><li>Δομή στην κατάσταση: εμφωλευμένο JSON και, στο ερώτημα, διαδρομή προς το επιθυμητό πεδίο μέσα σε ανάστροφες αποστρόφους, αν έτσι μειώνεται η αμφισημία.</li><li>Όσο το δυνατόν στενότερα και συγκεκριμένα ερωτήματα — σύμφωνα με την TypeSafe, ίσως ο σημαντικότερος κανόνας: ένα ευρύ ερώτημα κρύβει πολλές κρίσεις πίσω από μία απάντηση.</li><li>Δομή στα ερωτήματα: το ίδιο το ερώτημα σύντομο· εξηγήσεις, παραδείγματα και τιμές από τη βάση σας σε γειτονικά πεδία αντικειμένου <code>instructions</code> ή <code>criteria</code>, όχι σε μία μεγάλη συμβολοσειρά.</li><li>Πολλά ανεξάρτητα ερωτήματα για την ίδια κατάσταση στο ίδιο αίτημα — περισσότερη χρησιμότητα ανά δολάριο.</li><li>Οι απαντήσεις συνδυάζονται από τον κώδικα: με κανόνες, σταθμισμένο άθροισμα ή ως χαρακτηριστικά για κλασικό μοντέλο μηχανικής μάθησης.</li><li>Διακλάδωση βάσει βεβαιότητας: οι αβέβαιες περιπτώσεις σε άνθρωπο ή μοντέλο με συλλογισμό.</li></ol><p>Το Jev δεν είναι συνομιλία ούτε μοντέλο αυτόματης συμπλήρωσης κώδικα και δεν μπορεί να αντικαταστήσει ένα γλωσσικό μοντέλο σε πράκτορα προγραμματισμού. Ένας πράκτορας όμως μπορεί να γράψει για εσάς κώδικα που καλεί το Jev εκεί όπου απαιτείται γρήγορη, βαθμονομημένη απάντηση.</p><h4>Πού χρησιμοποιείται</h4><ul><li><strong>Αυτοματοποίηση στο παρασκήνιο</strong> — αποφάσεις που εκτελούνται ένα εκατομμύριο φορές χωρίς άνθρωπο δίπλα.</li><li><strong>Πραγματικός χρόνος</strong> — σύμφωνα με την TypeSafe, τα περισσότερα αιτήματα εκτελούνται σε περίπου 100 ms: αρκετά για επεξεργασία σε πραγματικό χρόνο και διεπαφές.</li><li><strong>Μεγάλα δεδομένα</strong> — αναζήτηση σε τεράστια σώματα δεδομένων, επισήμανση αρχείων καταγραφής εργασίας πρακτόρων, χαρακτηριστικά για προβλέψεις.</li><li><strong>Έλεγχος άλλων μοντέλων</strong> — αιτήματα, εξαγωγές, συλλογισμοί, κλήσεις εργαλείων: παράκαμψη περιορισμών, σφάλματα παραπομπών, επινοήσεις.</li><li><strong>Αναζήτηση και κατάταξη</strong> — συνάφεια ζεύγους «ερώτημα — υποψήφιο αποτέλεσμα», ανακατάταξη, επιλογή συμφραζομένων.</li><li><strong>Διακλάδωση βάσει πρόθεσης</strong> — τι θέλει ο χρήστης και ποιος χειριστής απαιτείται: απλή λογική, εξειδικευμένο μοντέλο ή άνθρωπος· το θέμα, η δυσκολία και ο κίνδυνος καθορίζουν σε ποιο γλωσσικό μοντέλο θα δοθεί το αίτημα.</li><li><strong>Έλεγχοι προστασίας</strong> — είσοδος, έξοδος και κλήσεις εργαλείων γλωσσικού μοντέλου: ενσωματωμένες κακόβουλες οδηγίες, παραβιάσεις κανόνων, διαρροή προσωπικών δεδομένων.</li><li><strong>Υποστήριξη</strong> — θέμα και πρόθεση αιτήματος, επείγον χαρακτήρας, εκνευρισμός, κίνδυνος αποχώρησης, αίτημα επιστροφής χρημάτων, ουρά.</li><li><strong>Έλεγχος περιεχομένου</strong> — βάσει των κανόνων της πλατφόρμας σας: τοξικότητα, παρενόχληση, spam, απάτη, επικίνδυνες συμβουλές, προσωπικά δεδομένα· ανάλογα με τη σοβαρότητα και τη βεβαιότητα, αποδοχή, προειδοποίηση, έλεγχος ή αποκλεισμός.</li><li><strong>Κλάδοι</strong> — ασφαλιστικές υποθέσεις, χρηματοοικονομικές έρευνες και KYC, συμβάσεις και διαφήμιση, κάρτες προϊόντων, προσλήψεις, δυνητικοί πελάτες, παιχνίδια, κίνδυνοι, πρόβλεψη ζήτησης, γράφοι γνώσεων, επιστημονικές ανασκοπήσεις, σημασιολογικοί έλεγχοι κώδικα σε CI.</li></ul><h4>Χαρακτηριστικά</h4><ul><li><strong><code>jev-latest</code></strong> — ψευδώνυμο της τελευταίας σταθερής έκδοσης, επί του παρόντος Jev 1.13· η έκδοση που απάντησε βρίσκεται στο πεδίο <code>model</code>, για παράδειγμα <code>jev-1.13.0</code>. Με νέα έκδοση, το ψευδώνυμο μεταβαίνει σε αυτήν και οι απαντήσεις μπορεί να αλλάξουν χωρίς δικές σας αλλαγές· παρακολουθείτε αυτό το πεδίο αν τα όρια έχουν επιλεγεί για συγκεκριμένη έκδοση.</li><li><strong>Παράθυρο συμφραζομένων</strong> — 64K token ανά αίτημα: η κατάσταση και όλα τα ερωτήματα μαζί· η κατάσταση με το μεγαλύτερο ερώτημα έως 32K. Το μοντέλο διαβάζει την κατάσταση μία φορά και ελέγχει έναντι αυτής όλα τα ερωτήματα παράλληλα.</li><li><strong>Είσοδος</strong> — μόνο κείμενο: συμβολοσειρά, αντικείμενο JSON ή πίνακας κειμένων. Εικόνες, ήχος και βίντεο δεν υποστηρίζονται ακόμη· μετατρέψτε τα προηγουμένως σε κείμενο.</li><li><strong>Γλώσσα</strong> — η κύρια γλώσσα εκπαίδευσης είναι τα αγγλικά, όπου η ακρίβεια είναι επί του παρόντος υψηλότερη. Το μοντέλο δέχεται άλλες γλώσσες, συμπεριλαμβανομένων κινεζικών, ιαπωνικών και κορεατικών, αλλά η ακρίβεια είναι χαμηλότερη· ελέγξτε με τα δικά σας δεδομένα.</li><li><strong>Τιμές και χρέωση στο Ailoot API</strong> — οι όροι εξαρτώνται από την επιλεγμένη μέθοδο και αναγράφονται στην κάρτα της.</li><li><strong>Προσαρμογή</strong> — το Jev δεν εκπαιδεύεται περαιτέρω με δεδομένα του πελάτη: το δικό σας υλικό στο <code>state</code>, οι κανόνες του πεδίου στα <code>instructions</code> και <code>criteria</code>.</li><li><strong>Δεδομένα</strong> — η TypeSafe αναφέρει ότι το Jev δεν εκπαιδεύεται με αιτήματα και απαντήσεις πελατών.</li></ul><h4>Γνωστές αδυναμίες του Jev 1.13</h4><p>Η TypeSafe απαριθμεί ανοιχτά τις αδυναμίες της τρέχουσας έκδοσης και υπόσχεται να διορθώσει πολλές στις επόμενες. Το μοντέλο είναι γρήγορο, βαθμονομημένο και κρίνει καλά με κοινή λογική, αλλά:</p><ol><li><strong>Διαβάζει κυριολεκτικά.</strong> Απαντά στο γραμμένο ερώτημα, όχι στο υπονοούμενο: ερμηνεύει κατά λέξη επιφυλάξεις, αρνήσεις και άρρητες συνθήκες. Γράψτε την ακριβή συνθήκη και τις οριακές περιπτώσεις στο <code>criteria</code>· χωρίστε την αναπόφευκτη ερμηνεία σε δύο κυριολεκτικά ερωτήματα.</li><li><strong>Δεν είναι αριθμομηχανή.</strong> Η καταμέτρηση χαρακτήρων, επαναλήψεων και στοιχείων λίστας είναι αναξιόπιστη και το σφάλμα αυξάνεται με το μέγεθος· μετρήστε στον κώδικα, με ένα ερώτημα ανά υποψήφιο. Το μοντέλο κατανοεί χρώματα σε hex ή RGB χειρότερα από ονομασίες. Το <code>score</code> είναι κατάλληλο για όριο, όχι για ακριβή αριθμό μεταξύ επιπέδων.</li><li><strong>Ημερομηνίες και χρόνος.</strong> Ποια ημερομηνία προηγείται, πόσο απέχουν, αν μια ημερομηνία εμπίπτει σε περίοδο — αναξιόπιστα, ιδιαίτερα με ανάμεικτες μορφές και σχετικές ημερομηνίες. Εξαγάγετε τα μέρη ημερομηνίας μέσω choice (με επιλογή «δεν αναφέρεται») και συγκρίνετε στον κώδικα.</li><li><strong>Έμμεση διατύπωση.</strong> Οι διπλές αρνήσεις και τα ερωτήματα για ιδιότητα μιας ιδιότητας μειώνουν την ακρίβεια. Γράψτε άμεσα και κατονομάστε τα μέρη της κατάστασης.</li><li><strong>Περιττό υλικό στην κατάσταση.</strong> Το άσχετο κείμενο μειώνει την ακρίβεια. Φιλτράρετε στον κώδικα και, αν δεν γίνεται, αποκλείστε το μη συναφές με ερωτήματα noul.</li><li><strong>Εχθρικό κείμενο.</strong> Το μοντέλο δεν αναμένει από προεπιλογή παγίδες στην κατάσταση: μια ενσωματωμένη κακόβουλη οδηγία ή κείμενο που αμφισβητεί τη δική του ταξινόμηση μπορεί να μετατοπίσει την απάντηση. Γράψτε ακριβή κριτήρια και ελέγξτε οριακές περιπτώσεις πριν από την έναρξη χρήσης.</li><li><strong>Αντιφάσεις.</strong> Αν τα <code>instructions</code> και <code>criteria</code> ζητούν διαφορετικά πράγματα — για παράδειγμα στο noul το «ναι» περιγράφεται ως «όχι» — η ακρίβεια μειώνεται. Τα κριτήρια αποτελούν συνέχεια του ερωτήματος.</li><li><strong>Σειρά επιλογών.</strong> Μερικές φορές το μοντέλο τείνει προς την πρώτη επιλογή choice. Αλλάξτε τη σειρά επιλογών και ελέγξτε ότι η απάντηση δεν αλλάζει.</li><li><strong>Παραγωγή περιεχομένου.</strong> Το Jev δεν έχει εκπαιδευτεί να γράφει κείμενο. Για εξαγωγή δεδομένων, εντοπίστε υποψηφίους με κανονική έκφραση ή παραγωγικό μοντέλο και αφήστε το Jev να επιλέξει τον σωστό μέσω choice.</li></ol></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι</h3><details class=\"card-method\" open><summary><b>Ailoot · System One</b> <code>POST /v1/systemone</code></summary><dl class=\"method-capabilities\"><div><dt>Είσοδος</dt><dd><code>text</code></dd></div><div><dt>Έξοδος</dt><dd><code>structured</code></dd></div><div><dt>Παράθυρο συμφραζομένων</dt><dd>64.000 tokens</dd></div><div><dt>Μορφή εξόδου</dt><dd>json</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Πεδίο</th><th>Τύπος</th><th>Απαίτηση</th><th>Τιμές και όρια</th><th>Προεπιλογή</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>jev-latest</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">state</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string|object|array</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">questions</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>object</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Ελάχιστο πλήθος πεδίων αντικειμένου: 1</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">questions.&lt;id&gt;.type</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>noul, choice, score</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">questions.&lt;id&gt;.instructions</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string|object|array|null</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">questions.&lt;id&gt;.criteria</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>object|array|null</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Συνθήκες: noul: προαιρετικές περιγραφές true/false που δέχονται null· choice: αντικείμενο κριτηρίων· score: μη κενός πίνακας κριτηρίων</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>boolean|null</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>false, null</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Συνδυασμοί υλικών εισόδου</summary><p class=\"note-s\"><b>noul</b> · Υποχρεωτικό: state, questions.&lt;id&gt;.type=noul</p><p class=\"note-s\"><b>choice</b> · Υποχρεωτικό: state, questions.&lt;id&gt;.type=choice, criteria object</p><p class=\"note-s\"><b>score</b> · Υποχρεωτικό: state, questions.&lt;id&gt;.type=score, nonemptycriteriaarray</p></details><details class=\"note-s\" data-method-contract><summary>Παράμετροι και κύκλος ζωής μεθόδου</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Παράμετρος</th><th>Σύμβαση</th></tr></thead><tbody><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>material_types</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>text</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>required</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>model, state, questions</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>optional_controls</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>null</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>content_type</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>application/json</td></tr></tbody></table></div><p>Κύκλος ζωής: <code>exact retained published method</code></p><p class=\"note-s\">Οι δομές και τα ID των μεθόδων είναι ακριβή· η δυνατότητα του προμηθευτή είναι ξεχωριστή από την αποδοχή αιτημάτων.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Τιμολόγηση</h3><h4>Χρεώσεις μεθόδων Ailoot</h4><section class=\"meth\" data-route=\"Core\"><header><b><span class=\"alias\">Ailoot</span> System One</b><code>POST /v1/systemone</code></header><dl><div><dt>Είσοδος</dt><dd>≈0,000084 $ <em>/ 1K</em></dd></div><div><dt>Έξοδος</dt><dd>0,00 $ <em>/ 1K</em></dd></div></dl></section><p class=\"note-s\">Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. <a href=\"/docs/el/billing/reserve/\">Πώς λειτουργούν η δέσμευση και η εκκαθάριση →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Παραδείγματα αιτημάτων</h3><h4>Ailoot · System One</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-665-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-665-panel-0\" aria-selected=\"true\" tabindex=\"0\">Παράδειγμα ταξινόμησης</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Αντιγραφή κώδικα\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-665-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-665-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_TEXT_FILE:?Set your actual UTF-8 customer message}&quot;\nexport AILOOT_TEXT_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;jev-latest&quot;, &quot;state&quot;: &quot;&quot;, &quot;questions&quot;: {&quot;is_urgent&quot;: {&quot;type&quot;: &quot;noul&quot;, &quot;instructions&quot;: &quot;Does the supplied customer message express urgency?&quot;}}}&#39;)\nf=Path(os.environ[&quot;AILOOT_TEXT_FILE&quot;])\nif not f.is_file():raise SystemExit(&quot;Choose your actual UTF-8 source material&quot;)\ntext=f.read_text(encoding=&quot;utf-8&quot;)\nif not text.strip():raise SystemExit(&quot;Source material must contain text&quot;)\np[&quot;state&quot;]=text\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/systemone \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(&quot;result.json&quot;).read_text()),ensure_ascii=False,indent=2))\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Λήψη και αποθήκευση αποτελεσμάτων</h3><h4>Ailoot · System One</h4><p class=\"note-s\">json</p><div class=\"card-result-process\" data-all-results><h5>Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα</h5><p class=\"note-s\">Διατηρήστε κάθε πλήρη απάντηση, αρχείο και τμήμα περιεχομένου που επιστρέφεται.</p><p class=\"note-s\">Διατηρήστε κάθε απάντηση με το παρεχόμενο ID ερώτησης, την πιθανότητα και το υπόμνημα· ο τύπος βεβαιότητας που χρησιμοποιεί n απαιτεί n&gt;1, χωρίς να δηλώνεται κανόνας ελάχιστου αριθμού επιλογών του API.</p></div><details class=\"card-about\" data-output-fields><summary>Πεδία απάντησης</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Πεδίο</th><th>Τύπος</th></tr></thead><tbody><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">answers.&lt;id&gt;.type</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">answers.&lt;id&gt;.noul</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>number</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">answers.&lt;id&gt;.choice</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">answers.&lt;id&gt;.score</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>number</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">answers.&lt;id&gt;.confidence</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>number</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">answers.&lt;id&gt;.probabilities</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>object</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">answers.&lt;id&gt;.legend</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>object</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Σφάλματα και επόμενα βήματα</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Απάντηση</th><th>Συνθήκη</th><th>Επόμενο βήμα</th></tr></thead><tbody><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Μη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Εναλλακτικά ονόματα</h3><h4>Εναλλακτικά ονόματα μοντέλου</h4><p class=\"note-s\"><span data-model-alias-route=\"Core\"><b>Ailoot</b> <a href=\"#m=jev-latest&amp;route=Core&amp;caller=jev-latest&amp;fmt=systemone\"><code>jev-latest</code></a></span></p><h4>Εναλλακτικές διαδρομές μεθόδων</h4><p class=\"note-s\">Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.</p><h4>Σχετικά ID μοντέλων</h4><p class=\"note-s\"><a href=\"#m=jev-latest&amp;route=Core&amp;caller=jev-latest&amp;fmt=systemone\"><code>jev-latest</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "jev-latest",
        "fmt": "systemone",
        "http": "POST",
        "path": "/v1/systemone",
        "request_model_id": "jev-latest",
        "route_label": "Core"
      },
      "method_key": "Core|systemone|/v1/systemone|jev-latest",
      "ordinal": 0,
      "rawMethod": {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "Retain every answer by its supplied question ID, probability and legend; confidenceformulausingnrequiresn>1withoutassertinganAPIminchoicesrule.",
            "errors": [
              {
                "code": null,
                "condition": "Μη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου",
                "http_status": 400,
                "recovery": "Διορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "mode": "exact retained published method"
            },
            "material_combinations": [
              {
                "mode": "noul",
                "required": [
                  "state",
                  "questions.<id>.type=noul"
                ]
              },
              {
                "mode": "choice",
                "required": [
                  "state",
                  "questions.<id>.type=choice",
                  "criteria object"
                ]
              },
              {
                "mode": "score",
                "required": [
                  "state",
                  "questions.<id>.type=score",
                  "nonemptycriteriaarray"
                ]
              }
            ],
            "operation_modes": [
              "noul",
              "choice",
              "score"
            ],
            "outputs": {
              "all_results": "Διατηρήστε κάθε απάντηση με το παρεχόμενο ID ερώτησης, την πιθανότητα και το υπόμνημα· ο τύπος βεβαιότητας που χρησιμοποιεί n απαιτεί n>1, χωρίς να δηλώνεται κανόνας ελάχιστου αριθμού επιλογών του API.",
              "family": "structured",
              "fields": [
                {
                  "description": null,
                  "name": "answers.<id>.type",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "answers.<id>.noul",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "answers.<id>.choice",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "answers.<id>.score",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "answers.<id>.confidence",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "answers.<id>.probabilities",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "answers.<id>.legend",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "jev-latest"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "state",
                "required": true,
                "type": "string|object|array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_properties": 1,
                "name": "questions",
                "required": true,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "noul",
                  "choice",
                  "score"
                ],
                "enum_known": true,
                "name": "questions.<id>.type",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "questions.<id>.instructions",
                "required": false,
                "type": "string|object|array|null"
              },
              {
                "availability": "source_interface",
                "conditions": "noul: προαιρετικές περιγραφές true/false που δέχονται null· choice: αντικείμενο κριτηρίων· score: μη κενός πίνακας κριτηρίων",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "questions.<id>.criteria",
                "required": false,
                "type": "object|array|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  null
                ],
                "enum_known": true,
                "name": "stream",
                "required": false,
                "type": "boolean|null"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "stream=true",
              "duplicateandcase-variedcanonicalkeys"
            ]
          },
          "hints": [
            "Οι δομές και τα ID των μεθόδων είναι ακριβή· η δυνατότητα του προμηθευτή είναι ξεχωριστή από την αποδοχή αιτημάτων."
          ],
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": [
              "model",
              "state",
              "questions"
            ]
          },
          "lifecycle": {
            "mode": "exact retained published method"
          },
          "method": {
            "http": "POST",
            "path": "/v1/systemone"
          },
          "operation_modes": [
            "systemone"
          ],
          "output": {
            "family": [
              "structured"
            ],
            "format": "structured decisions JSON",
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": 64000,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 customer message}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"jev-latest\", \"state\": \"\", \"questions\": {\"is_urgent\": {\"type\": \"noul\", \"instructions\": \"Does the supplied customer message express urgency?\"}}}')\nf=Path(os.environ[\"AILOOT_TEXT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 source material\")\ntext=f.read_text(encoding=\"utf-8\")\nif not text.strip():raise SystemExit(\"Source material must contain text\")\np[\"state\"]=text\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/systemone \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"result.json\").read_text()),ensure_ascii=False,indent=2))\nPY_RESULT\n",
            "label": "Classify your actual customer message",
            "language": "bash"
          }
        ],
        "family": "systemone",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "systemone",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": 0.084,
        "input": [
          "text"
        ],
        "label": "System One",
        "max_out": 0,
        "max_tool_calls": null,
        "out": 0,
        "output": [
          "structured"
        ],
        "path": "/v1/systemone",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.084,
                "amount_unit": "usd_per_million_tokens",
                "key": "in",
                "label": "Input",
                "side": "in"
              },
              {
                "amount": 0,
                "amount_unit": "usd_per_million_tokens",
                "key": "out",
                "label": "Output",
                "side": "out"
              }
            ]
          }
        ],
        "request_model_id": "jev-latest",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "token",
        "units": []
      }
    }
  ],
  "model_id": "jev-latest",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "766699170560ee00b005b30b1b9dac068a9d68a57ce016620e24516f3f4b6a48",
    "input_html_sha256": "6e3d5eda18c32ca731a03dd5f0ae055385f6a93bf304480cbaa13a0bd76b7307",
    "private_audit_sha256": "7338a8aa80c3baecb6ed4c3e802a5e945f8e3b36813ad47f4d3e7dec7adca294",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/el/jev-latest/",
    "description": "Μοντέλο αποφάσεων της TypeSafe: δεν γράφει κείμενο, αλλά απαντά σε ερωτήματα με καθορισμένο τύπο για κείμενο ή JSON — επιλογή απάντησης, αξιολόγηση σε κλίμακα ή «ναι/όχι» με πιθανότητες. Εξυπηρετεί δρομολόγηση, ταξινόμηση αιτημάτων, έλεγχο περιεχομένου και βαθμολόγηση· όλα τα ερωτήματα του ίδιου αιτήματος αξιολογούνται παράλληλα.",
    "locale": "el",
    "md_url": "https://ailoot.ai/models/el/jev-latest/index.md",
    "title": "jev-latest — Ailoot",
    "url": "https://ailoot.ai/models/el/jev-latest/"
  },
  "rawModel": {
    "about": "Το Jev είναι το κορυφαίο μοντέλο της TypeSafe και το πρώτο μιας νέας κατηγορίας, της **System One**. Δεν γράφει κείμενο, αλλά λαμβάνει γρήγορα αποφάσεις που το πρόγραμμα μπορεί να χρησιμοποιήσει αμέσως: παρέχετε **κατάσταση** (`state`) — κείμενο ή JSON — και σύνολο **ερωτημάτων** και λαμβάνετε ως απάντηση τιμές καθορισμένου τύπου με βαθμονομημένες πιθανότητες.\n\nΤα γλωσσικά μοντέλα γράφουν λέξεις για ανθρώπους, ενώ το Jev, σύμφωνα με την TypeSafe, μοιάζει περισσότερο με κώδικα: η απάντηση έρχεται αμέσως στη μορφή που χρειάζεται ο κώδικας, με υψηλή ταχύτητα και χωρίς καμία τιμή εκτός των καθορισμένων επιλογών. Το μοντέλο έχει σχεδιαστεί ώστε να δίνει σταθερές απαντήσεις σε επαναλαμβανόμενα αιτήματα.\n\n### Πώς διαφέρει το System One από ένα γλωσσικό μοντέλο\n\n- **Δεν παράγει περιεχόμενο.** Το Jev δεν γράφει απαντήσεις στον χρήστη, δεν γράφει κώδικα και δεν εξηγεί τη συλλογιστική του. Εσείς ορίζετε τις πιθανές απαντήσεις μέσω ενός από τους τρεις τύπους ερωτημάτων.\n- **Έχει εκπαιδευτεί για βαθμονομημένες αποφάσεις.** Η TypeSafe εκπαιδεύει το μοντέλο με τη μέθοδο RLCD (Reinforcement Learning for Calibrated Decisions): οι πιθανότητες προσαρμόζονται στα πραγματικά αποτελέσματα και αποτυπώνουν την αβεβαιότητα. Από πολλές απαντήσεις με πιθανότητα 0,8, περίπου το 80% θα πρέπει να είναι σωστές. Η βαθμονόμηση αποτελεί ιδιότητα μεγάλου δείγματος, όχι εγγύηση ορθότητας μιας μεμονωμένης απάντησης.\n- **Διαφορετικός στόχος εκπαίδευσης.** Τα μοντέλα συνομιλίας εκπαιδεύονται να αρέσουν στους ανθρώπους (RLHF) και, σύμφωνα με την TypeSafe, αυτό ενθαρρύνει την κολακευτική συμφωνία και τα λάθη που διατυπώνονται με βεβαιότητα. Ένας από τους συνδημιουργούς του RLHF, ο Ντιόγκο Αλμέιντα, είναι συνιδρυτής της TypeSafe.\n\nΗ ονομασία παραπέμπει στο «Σύστημα 1» από το βιβλίο του Ντάνιελ Κάνεμαν «Σκέψη, αργή και γρήγορη»: γρήγορη διαισθητική κρίση έναντι αργής, συνειδητής σκέψης του «Συστήματος 2». Το Jev δημιουργήθηκε για γρήγορες, περιορισμένου εύρους κρίσεις.\n\n### Τρεις τύποι ερωτημάτων\n\nΤο ερώτημα είναι μία κρίση για την κατάσταση και η απάντηση μια τιμή που ο κώδικας συγκρίνει με όριο, ταξινομεί ή μεταβιβάζει παρακάτω.\n\n1. **Choice — επιλογή απάντησης.** Τμήμα για ένα αίτημα, κατηγορία προϊόντος, γλώσσα αποσπάσματος κώδικα. Οι επιλογές είναι λεξικό «επιλογή → περιγραφή», έως 255 επιλογές. Η απάντηση περιέχει την επιλεγμένη `choice`, τις πιθανότητες `probabilities` όλων των επιλογών (με άθροισμα 1) και τη βεβαιότητα `confidence`. Αν ο κατάλογος ενδέχεται να μην καλύπτει όλες τις περιπτώσεις, προσθέστε «άλλο» ή «κανένα από τα παραπάνω».\n2. **Score — αξιολόγηση σε κλίμακα.** Θέση σε διατεταγμένη κλίμακα που περιγράφετε εσείς: σοβαρότητα σφάλματος, εκνευρισμός πελάτη, επίπεδο δεξιότητας. Από 2 έως 10 επίπεδα, από το χαμηλότερο στο υψηλότερο· το μοντέλο αξιολογεί κάθε επίπεδο χωριστά, χωρίς να βλέπει τον αριθμό του και τα γειτονικά του επίπεδα. Η απάντηση περιέχει `score` (το άθροισμα των αριθμών επιπέδων επί τις πιθανότητές τους, επομένως η τιμή μπορεί να βρίσκεται μεταξύ επιπέδων), `legend` με περιγραφές επιπέδων, `probabilities` και `confidence`.\n3. **Noul — ναι ή όχι.** Αν μια δήλωση είναι αληθής. Η απάντηση `noul` είναι η πιθανότητα «ναι» από 0 έως 1: κοντά στο 1 σημαίνει βέβαιο «ναι», κοντά στο 0 βέβαιο «όχι», κοντά στο 0,5 το μοντέλο αμφιταλαντεύεται. Δεν υπάρχει ξεχωριστό `confidence`: ένας αριθμός περιγράφει πλήρως την απάντηση. Το προαιρετικό `criteria` διευκρινίζει τι θεωρείται «ναι» και τι «όχι».\n\nΠώς να επιλέξετε: γνωστές επιλογές χωρίς σειρά — choice· βαθμίδες ενός φάσματος — score· καθαρό «ναι/όχι», όπου έχει σημασία η ίδια η πιθανότητα — noul. Το Noul 0,5 σημαίνει ίσες πιθανότητες για «ναι» και «όχι», όχι «μέσο επίπεδο»: τον βαθμό τον μετρά το score. Αν ταιριάζουν δύο τύποι, επιλέξτε εκείνον βάσει του οποίου ο κώδικας ενεργεί αμέσως: choice για διακλαδώσεις, score για όριο, noul για `if`.\n\nΟι τύποι μπορούν να συνδυάζονται στο ίδιο αίτημα. Η απάντηση περιορίζεται πάντα στις επιλογές σας και δεν εξαρτάται από άλλα ερωτήματα: μπορείτε να προσθέτετε και να αφαιρείτε ερωτήματα χωρίς να αλλάζουν οι υπόλοιπες απαντήσεις.\n\n### Κατάσταση\n\nΗ κατάσταση είναι αυτό που αξιολογεί το μοντέλο: μήνυμα πελάτη, απόσπασμα εγγράφου, εγγραφή βάσης δεδομένων ή κατάσταση της εφαρμογής σας.\n\n- **Συμβολοσειρά** — όταν υπάρχει ένα κείμενο: μήνυμα, άρθρο, απόσπασμα.\n- **Αντικείμενο** — ονομασμένα πεδία, συνδεδεμένες εγγραφές, κατάσταση εφαρμογής. Η TypeSafe συνιστά αντικείμενο για τα περισσότερα αιτήματα: κάθε μέρος έχει κατανοητό όνομα.\n- **Πίνακας** — ακολουθία μηνυμάτων ή εγγραφών.\n\nΠροετοιμάστε την όπως υλικό για ειδικούς: τοποθετήστε μαζί την αλληλογραφία, την παραγγελία και τους κανόνες επιστροφής, αν η απόφαση απαιτεί σύγκρισή τους. Κρατήστε το περιεχόμενο στην κατάσταση και τις κρίσεις στα ερωτήματα. Αν ένα ερώτημα αφορά μέρος της κατάστασης, αναφέρετε σε αυτό τη διαδρομή του μέσα σε ανάστροφες αποστρόφους, για παράδειγμα `ticket.messages[0].text`.\n\n### Πώς διατυπώνονται τα ερωτήματα\n\n- **Μία γρήγορη κρίση ανά ερώτημα.** Καλό ερώτημα είναι εκείνο στο οποίο ένας γνώστης με τα κατάλληλα συμφραζόμενα θα απαντούσε σε ένα δευτερόλεπτο: «Υπάρχει επείγον ζήτημα στο μήνυμα;». Το «Ανάλυσε το μήνυμα και αποφάσισε τι πρέπει να γίνει» απαιτεί ήδη αργό συλλογισμό και πρέπει να χωριστεί σε απλά ερωτήματα.\n- **Ολόκληρο το ερώτημα στο `instructions`.** Το κλειδί του ερωτήματος, για παράδειγμα `refund_requested`, χρειάζεται μόνο στον κώδικά σας και δεν μεταβιβάζεται στο μοντέλο.\n- **Όλα τα ερωτήματα για την ίδια κατάσταση σε ένα αίτημα.** Το μοντέλο τα αξιολογεί παράλληλα: σύμφωνα με την TypeSafe, τα πρόσθετα ερωτήματα αυξάνουν ελάχιστα τον χρόνο απόκρισης και κοστίζουν μόνο τα δικά τους token. Ένα ερώτημα «για κάθε ενδεχόμενο» κοστίζει σχεδόν τίποτα· ο κώδικας θα αποφασίσει ποιες απαντήσεις χρειάζονται.\n- **Η σύνθετη κρίση σε μέρη.** Αντί για «αξιολόγησε την αίτηση της νεοφυούς επιχείρησης», ρωτήστε χωριστά για το μέγεθος αγοράς, την τεχνική εφικτότητα και τις διαφορές από ανταγωνιστές και υπολογίστε το αποτέλεσμα στον κώδικα με βάρη. Αν αλλάξουν οι προτεραιότητες, αλλάζετε τα βάρη αντί να ξαναγράφετε το ερώτημα.\n- **Εξαρτώμενα ερωτήματα σε δεύτερο αίτημα.** Οι απαντήσεις του ίδιου αιτήματος δεν χρησιμεύουν ως συμφραζόμενα η μία για την άλλη. Δεύτερο αίτημα χρειάζεται μόνο αν δεν μπορεί να κατασκευαστεί χωρίς την πρώτη απάντηση: αν πρέπει να φορτωθούν δεδομένα ή να επιλεγούν οι επιλογές του επόμενου ερωτήματος.\n- **Μεγάλο ερώτημα ως αντικείμενο.** Τα `instructions` και `criteria` είναι συνήθως συμβολοσειρές, αλλά μπορούν να είναι αντικείμενο ή πίνακας: το ερώτημα σε ένα πεδίο, τα δεδομένα στα άλλα. Έτσι διευκολύνεται η σύγκριση βιογραφικού με εγγραφές βάσης δεδομένων μέσω ενός ερωτήματος.\n\n### Βεβαιότητα\n\nΣτα choice και score, το `confidence` από 0 έως 1 δείχνει πόσο συγκεντρώνεται η πιθανότητα σε μία απάντηση: 1 σημαίνει ότι όλη βρίσκεται σε μία επιλογή, 0 ότι κατανέμεται εξίσου σε όλες. Στο score, ένα γειτονικό επίπεδο μειώνει τη βεβαιότητα λιγότερο από ένα μακρινό. Στο noul, η βεβαιότητα είναι η ίδια η τιμή: όσο απέχει από το 0,5, τόσο πιο βέβαιη είναι η απάντηση.\n\nΗ TypeSafe συνιστά τρία εύρη:\n\n1. **Υψηλή βεβαιότητα** — ενεργήστε αυτόματα.\n2. **Μέτρια** — ενεργήστε προσεκτικά, για παράδειγμα ζητήστε επιβεβαίωση από τον χρήστη.\n3. **Χαμηλή** — αναθέστε την περίπτωση σε άνθρωπο, διευκρινίστε το αίτημα ή χρησιμοποιήστε εφεδρική διαδρομή, για παράδειγμα ισχυρότερο μοντέλο με συλλογισμό.\n\nΌσο πιο δαπανηρό είναι το λάθος, τόσο αυστηρότερο το όριο: για μη αναστρέψιμες ενέργειες υψηλότερο από ό,τι για ανάγνωση. Η απάντηση λέει τι να επιλέξετε και η βεβαιότητα αν αξίζει να ενεργήσετε. Επιλέξτε τα όρια με τα δικά σας δεδομένα, συγκρίνοντας βεβαιότητα και ακρίβεια.\n\n### Πώς χτίζεται ένα σύστημα γύρω από το Jev\n\nΤο Jev προορίζεται για προγράμματα όπου ο κώδικας ελέγχει τη διαδικασία και το μοντέλο απαντά σε στενά σημασιολογικά ερωτήματα, αντί για πράκτορες που επιλέγουν μόνοι το επόμενο βήμα και μπορούν να παρεκκλίνουν σε κάθε κύκλο. Οκτώ βήματα σχεδιασμού σύμφωνα με την TypeSafe:\n\n1. Ό,τι μπορεί να γίνει με κώδικα, κάντε το με κώδικα — αξιόπιστα και οικονομικά.\n2. Στην κατάσταση βάλτε μόνο όσα χρειάζονται τα τρέχοντα ερωτήματα· αντλήστε πρόσφατα στοιχεία από τη δική σας βάση γνώσεων, όχι από τη μνήμη του μοντέλου.\n3. Δομή στην κατάσταση: εμφωλευμένο JSON και, στο ερώτημα, διαδρομή προς το επιθυμητό πεδίο μέσα σε ανάστροφες αποστρόφους, αν έτσι μειώνεται η αμφισημία.\n4. Όσο το δυνατόν στενότερα και συγκεκριμένα ερωτήματα — σύμφωνα με την TypeSafe, ίσως ο σημαντικότερος κανόνας: ένα ευρύ ερώτημα κρύβει πολλές κρίσεις πίσω από μία απάντηση.\n5. Δομή στα ερωτήματα: το ίδιο το ερώτημα σύντομο· εξηγήσεις, παραδείγματα και τιμές από τη βάση σας σε γειτονικά πεδία αντικειμένου `instructions` ή `criteria`, όχι σε μία μεγάλη συμβολοσειρά.\n6. Πολλά ανεξάρτητα ερωτήματα για την ίδια κατάσταση στο ίδιο αίτημα — περισσότερη χρησιμότητα ανά δολάριο.\n7. Οι απαντήσεις συνδυάζονται από τον κώδικα: με κανόνες, σταθμισμένο άθροισμα ή ως χαρακτηριστικά για κλασικό μοντέλο μηχανικής μάθησης.\n8. Διακλάδωση βάσει βεβαιότητας: οι αβέβαιες περιπτώσεις σε άνθρωπο ή μοντέλο με συλλογισμό.\n\nΤο Jev δεν είναι συνομιλία ούτε μοντέλο αυτόματης συμπλήρωσης κώδικα και δεν μπορεί να αντικαταστήσει ένα γλωσσικό μοντέλο σε πράκτορα προγραμματισμού. Ένας πράκτορας όμως μπορεί να γράψει για εσάς κώδικα που καλεί το Jev εκεί όπου απαιτείται γρήγορη, βαθμονομημένη απάντηση.\n\n### Πού χρησιμοποιείται\n\n- **Αυτοματοποίηση στο παρασκήνιο** — αποφάσεις που εκτελούνται ένα εκατομμύριο φορές χωρίς άνθρωπο δίπλα.\n- **Πραγματικός χρόνος** — σύμφωνα με την TypeSafe, τα περισσότερα αιτήματα εκτελούνται σε περίπου 100 ms: αρκετά για επεξεργασία σε πραγματικό χρόνο και διεπαφές.\n- **Μεγάλα δεδομένα** — αναζήτηση σε τεράστια σώματα δεδομένων, επισήμανση αρχείων καταγραφής εργασίας πρακτόρων, χαρακτηριστικά για προβλέψεις.\n- **Έλεγχος άλλων μοντέλων** — αιτήματα, εξαγωγές, συλλογισμοί, κλήσεις εργαλείων: παράκαμψη περιορισμών, σφάλματα παραπομπών, επινοήσεις.\n- **Αναζήτηση και κατάταξη** — συνάφεια ζεύγους «ερώτημα — υποψήφιο αποτέλεσμα», ανακατάταξη, επιλογή συμφραζομένων.\n- **Διακλάδωση βάσει πρόθεσης** — τι θέλει ο χρήστης και ποιος χειριστής απαιτείται: απλή λογική, εξειδικευμένο μοντέλο ή άνθρωπος· το θέμα, η δυσκολία και ο κίνδυνος καθορίζουν σε ποιο γλωσσικό μοντέλο θα δοθεί το αίτημα.\n- **Έλεγχοι προστασίας** — είσοδος, έξοδος και κλήσεις εργαλείων γλωσσικού μοντέλου: ενσωματωμένες κακόβουλες οδηγίες, παραβιάσεις κανόνων, διαρροή προσωπικών δεδομένων.\n- **Υποστήριξη** — θέμα και πρόθεση αιτήματος, επείγον χαρακτήρας, εκνευρισμός, κίνδυνος αποχώρησης, αίτημα επιστροφής χρημάτων, ουρά.\n- **Έλεγχος περιεχομένου** — βάσει των κανόνων της πλατφόρμας σας: τοξικότητα, παρενόχληση, spam, απάτη, επικίνδυνες συμβουλές, προσωπικά δεδομένα· ανάλογα με τη σοβαρότητα και τη βεβαιότητα, αποδοχή, προειδοποίηση, έλεγχος ή αποκλεισμός.\n- **Κλάδοι** — ασφαλιστικές υποθέσεις, χρηματοοικονομικές έρευνες και KYC, συμβάσεις και διαφήμιση, κάρτες προϊόντων, προσλήψεις, δυνητικοί πελάτες, παιχνίδια, κίνδυνοι, πρόβλεψη ζήτησης, γράφοι γνώσεων, επιστημονικές ανασκοπήσεις, σημασιολογικοί έλεγχοι κώδικα σε CI.\n\n### Χαρακτηριστικά\n\n- **`jev-latest`** — ψευδώνυμο της τελευταίας σταθερής έκδοσης, επί του παρόντος Jev 1.13· η έκδοση που απάντησε βρίσκεται στο πεδίο `model`, για παράδειγμα `jev-1.13.0`. Με νέα έκδοση, το ψευδώνυμο μεταβαίνει σε αυτήν και οι απαντήσεις μπορεί να αλλάξουν χωρίς δικές σας αλλαγές· παρακολουθείτε αυτό το πεδίο αν τα όρια έχουν επιλεγεί για συγκεκριμένη έκδοση.\n- **Παράθυρο συμφραζομένων** — 64K token ανά αίτημα: η κατάσταση και όλα τα ερωτήματα μαζί· η κατάσταση με το μεγαλύτερο ερώτημα έως 32K. Το μοντέλο διαβάζει την κατάσταση μία φορά και ελέγχει έναντι αυτής όλα τα ερωτήματα παράλληλα.\n- **Είσοδος** — μόνο κείμενο: συμβολοσειρά, αντικείμενο JSON ή πίνακας κειμένων. Εικόνες, ήχος και βίντεο δεν υποστηρίζονται ακόμη· μετατρέψτε τα προηγουμένως σε κείμενο.\n- **Γλώσσα** — η κύρια γλώσσα εκπαίδευσης είναι τα αγγλικά, όπου η ακρίβεια είναι επί του παρόντος υψηλότερη. Το μοντέλο δέχεται άλλες γλώσσες, συμπεριλαμβανομένων κινεζικών, ιαπωνικών και κορεατικών, αλλά η ακρίβεια είναι χαμηλότερη· ελέγξτε με τα δικά σας δεδομένα.\n- **Τιμές και χρέωση στο Ailoot API** — οι όροι εξαρτώνται από την επιλεγμένη μέθοδο και αναγράφονται στην κάρτα της.\n- **Προσαρμογή** — το Jev δεν εκπαιδεύεται περαιτέρω με δεδομένα του πελάτη: το δικό σας υλικό στο `state`, οι κανόνες του πεδίου στα `instructions` και `criteria`.\n- **Δεδομένα** — η TypeSafe αναφέρει ότι το Jev δεν εκπαιδεύεται με αιτήματα και απαντήσεις πελατών.\n\n### Γνωστές αδυναμίες του Jev 1.13\n\nΗ TypeSafe απαριθμεί ανοιχτά τις αδυναμίες της τρέχουσας έκδοσης και υπόσχεται να διορθώσει πολλές στις επόμενες. Το μοντέλο είναι γρήγορο, βαθμονομημένο και κρίνει καλά με κοινή λογική, αλλά:\n\n1. **Διαβάζει κυριολεκτικά.** Απαντά στο γραμμένο ερώτημα, όχι στο υπονοούμενο: ερμηνεύει κατά λέξη επιφυλάξεις, αρνήσεις και άρρητες συνθήκες. Γράψτε την ακριβή συνθήκη και τις οριακές περιπτώσεις στο `criteria`· χωρίστε την αναπόφευκτη ερμηνεία σε δύο κυριολεκτικά ερωτήματα.\n2. **Δεν είναι αριθμομηχανή.** Η καταμέτρηση χαρακτήρων, επαναλήψεων και στοιχείων λίστας είναι αναξιόπιστη και το σφάλμα αυξάνεται με το μέγεθος· μετρήστε στον κώδικα, με ένα ερώτημα ανά υποψήφιο. Το μοντέλο κατανοεί χρώματα σε hex ή RGB χειρότερα από ονομασίες. Το `score` είναι κατάλληλο για όριο, όχι για ακριβή αριθμό μεταξύ επιπέδων.\n3. **Ημερομηνίες και χρόνος.** Ποια ημερομηνία προηγείται, πόσο απέχουν, αν μια ημερομηνία εμπίπτει σε περίοδο — αναξιόπιστα, ιδιαίτερα με ανάμεικτες μορφές και σχετικές ημερομηνίες. Εξαγάγετε τα μέρη ημερομηνίας μέσω choice (με επιλογή «δεν αναφέρεται») και συγκρίνετε στον κώδικα.\n4. **Έμμεση διατύπωση.** Οι διπλές αρνήσεις και τα ερωτήματα για ιδιότητα μιας ιδιότητας μειώνουν την ακρίβεια. Γράψτε άμεσα και κατονομάστε τα μέρη της κατάστασης.\n5. **Περιττό υλικό στην κατάσταση.** Το άσχετο κείμενο μειώνει την ακρίβεια. Φιλτράρετε στον κώδικα και, αν δεν γίνεται, αποκλείστε το μη συναφές με ερωτήματα noul.\n6. **Εχθρικό κείμενο.** Το μοντέλο δεν αναμένει από προεπιλογή παγίδες στην κατάσταση: μια ενσωματωμένη κακόβουλη οδηγία ή κείμενο που αμφισβητεί τη δική του ταξινόμηση μπορεί να μετατοπίσει την απάντηση. Γράψτε ακριβή κριτήρια και ελέγξτε οριακές περιπτώσεις πριν από την έναρξη χρήσης.\n7. **Αντιφάσεις.** Αν τα `instructions` και `criteria` ζητούν διαφορετικά πράγματα — για παράδειγμα στο noul το «ναι» περιγράφεται ως «όχι» — η ακρίβεια μειώνεται. Τα κριτήρια αποτελούν συνέχεια του ερωτήματος.\n8. **Σειρά επιλογών.** Μερικές φορές το μοντέλο τείνει προς την πρώτη επιλογή choice. Αλλάξτε τη σειρά επιλογών και ελέγξτε ότι η απάντηση δεν αλλάζει.\n9. **Παραγωγή περιεχομένου.** Το Jev δεν έχει εκπαιδευτεί να γράφει κείμενο. Για εξαγωγή δεδομένων, εντοπίστε υποψηφίους με κανονική έκφραση ή παραγωγικό μοντέλο και αφήστε το Jev να επιλέξει τον σωστό μέσω choice.",
    "alias_of": null,
    "aliases": [],
    "author": "TypeSafe",
    "ctx": 64000,
    "formats": [
      "systemone"
    ],
    "guide": "/docs/api/systemone/",
    "id": "jev-latest",
    "input": [
      "text"
    ],
    "kind": "decision",
    "max_out": null,
    "methods": [
      {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "Retain every answer by its supplied question ID, probability and legend; confidenceformulausingnrequiresn>1withoutassertinganAPIminchoicesrule.",
            "errors": [
              {
                "code": null,
                "condition": "Μη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου",
                "http_status": 400,
                "recovery": "Διορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "mode": "exact retained published method"
            },
            "material_combinations": [
              {
                "mode": "noul",
                "required": [
                  "state",
                  "questions.<id>.type=noul"
                ]
              },
              {
                "mode": "choice",
                "required": [
                  "state",
                  "questions.<id>.type=choice",
                  "criteria object"
                ]
              },
              {
                "mode": "score",
                "required": [
                  "state",
                  "questions.<id>.type=score",
                  "nonemptycriteriaarray"
                ]
              }
            ],
            "operation_modes": [
              "noul",
              "choice",
              "score"
            ],
            "outputs": {
              "all_results": "Διατηρήστε κάθε απάντηση με το παρεχόμενο ID ερώτησης, την πιθανότητα και το υπόμνημα· ο τύπος βεβαιότητας που χρησιμοποιεί n απαιτεί n>1, χωρίς να δηλώνεται κανόνας ελάχιστου αριθμού επιλογών του API.",
              "family": "structured",
              "fields": [
                {
                  "description": null,
                  "name": "answers.<id>.type",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "answers.<id>.noul",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "answers.<id>.choice",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "answers.<id>.score",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "answers.<id>.confidence",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "answers.<id>.probabilities",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "answers.<id>.legend",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "jev-latest"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "state",
                "required": true,
                "type": "string|object|array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_properties": 1,
                "name": "questions",
                "required": true,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "noul",
                  "choice",
                  "score"
                ],
                "enum_known": true,
                "name": "questions.<id>.type",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "questions.<id>.instructions",
                "required": false,
                "type": "string|object|array|null"
              },
              {
                "availability": "source_interface",
                "conditions": "noul: προαιρετικές περιγραφές true/false που δέχονται null· choice: αντικείμενο κριτηρίων· score: μη κενός πίνακας κριτηρίων",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "questions.<id>.criteria",
                "required": false,
                "type": "object|array|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  null
                ],
                "enum_known": true,
                "name": "stream",
                "required": false,
                "type": "boolean|null"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "stream=true",
              "duplicateandcase-variedcanonicalkeys"
            ]
          },
          "hints": [
            "Οι δομές και τα ID των μεθόδων είναι ακριβή· η δυνατότητα του προμηθευτή είναι ξεχωριστή από την αποδοχή αιτημάτων."
          ],
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": [
              "model",
              "state",
              "questions"
            ]
          },
          "lifecycle": {
            "mode": "exact retained published method"
          },
          "method": {
            "http": "POST",
            "path": "/v1/systemone"
          },
          "operation_modes": [
            "systemone"
          ],
          "output": {
            "family": [
              "structured"
            ],
            "format": "structured decisions JSON",
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": 64000,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 customer message}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"jev-latest\", \"state\": \"\", \"questions\": {\"is_urgent\": {\"type\": \"noul\", \"instructions\": \"Does the supplied customer message express urgency?\"}}}')\nf=Path(os.environ[\"AILOOT_TEXT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 source material\")\ntext=f.read_text(encoding=\"utf-8\")\nif not text.strip():raise SystemExit(\"Source material must contain text\")\np[\"state\"]=text\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/systemone \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"result.json\").read_text()),ensure_ascii=False,indent=2))\nPY_RESULT\n",
            "label": "Classify your actual customer message",
            "language": "bash"
          }
        ],
        "family": "systemone",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "systemone",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": 0.084,
        "input": [
          "text"
        ],
        "label": "System One",
        "max_out": 0,
        "max_tool_calls": null,
        "out": 0,
        "output": [
          "structured"
        ],
        "path": "/v1/systemone",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.084,
                "amount_unit": "usd_per_million_tokens",
                "key": "in",
                "label": "Input",
                "side": "in"
              },
              {
                "amount": 0,
                "amount_unit": "usd_per_million_tokens",
                "key": "out",
                "label": "Output",
                "side": "out"
              }
            ]
          }
        ],
        "request_model_id": "jev-latest",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "token",
        "units": []
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "jev-latest",
        "request_model_id": "jev-latest",
        "route_label": "Core"
      }
    ],
    "name": "jev-latest",
    "price": {
      "in": 0.084,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "sort_in": 0.084,
      "sort_out": 0,
      "varies": false
    },
    "short": "Μοντέλο αποφάσεων της TypeSafe: δεν γράφει κείμενο, αλλά απαντά σε ερωτήματα με καθορισμένο τύπο για κείμενο ή JSON — επιλογή απάντησης, αξιολόγηση σε κλίμακα ή «ναι/όχι» με πιθανότητες. Εξυπηρετεί δρομολόγηση, ταξινόμηση αιτημάτων, έλεγχο περιεχομένου και βαθμολόγηση· όλα τα ερωτήματα του ίδιου αιτήματος αξιολογούνται παράλληλα."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Μοντέλο αποφάσεων της TypeSafe: δεν γράφει κείμενο, αλλά απαντά σε ερωτήματα με καθορισμένο τύπο για κείμενο ή JSON — επιλογή απάντησης, αξιολόγηση σε κλίμακα ή «ναι/όχι» με πιθανότητες. Εξυπηρετεί δρομολόγηση, ταξινόμηση αιτημάτων, έλεγχο περιεχομένου και βαθμολόγηση· όλα τα ερωτήματα του ίδιου αιτήματος αξιολογούνται παράλληλα.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "ec534cacf4289a30b6d41a68eadf6318a48af510334f8f32af19fe4757233dce",
    "renderer_sha256": "3ed36f7af4f78822bafbd174fdcaed7b698a18a86efe254253d37f1b098a7566"
  },
  "sourceRevision": "f900854ae3fc9b012eac0c5e199a18b3a1f95905f80ee3218f974fcfd65eae5d"
}
