{
  "aboutHtml": "<p>Το Mistral Medium 3.1 είναι πολυτροπική έκδοση της Mistral AI για κειμενική και οπτική κατανόηση. Ο κατασκευαστής περιγράφει αυτή την αναθεώρηση ως βελτίωση του τόνου και της απόδοσης στη σειρά Medium 3. Δέχεται κείμενο και εικόνες και παράγει κείμενο: εξήγηση, απάντηση εγγράφου, δομημένη εγγραφή ή προτεινόμενη κλήση συνάρτησης. Το σταθερό αναγνωριστικό του κατασκευαστή για αυτή την έκδοση είναι mistral-medium-2508.</p><p>Συμφραζόμενα και συγκεκριμένη έκδοση</p><p>Η σελίδα του μοντέλου τεκμηριώνει παράθυρο συμφραζομένων 128 χιλ. token. Χρησιμοποιήστε το για να κρατάτε μαζί σχετικά αποσπάσματα πηγής, στοιχεία εικόνας, τη συνομιλία και την εργασία χρήστη. Προσδιορίστε τους ρόλους των εγγράφων και την ερώτηση προς απάντηση πριν δώσετε μεγάλη συλλογή. Τα μεγάλα συμφραζόμενα μπορούν να υποστηρίζουν μια εστιασμένη σύγκριση, ενώ το τελικό παραδοτέο παραμένει σύντομος πίνακας ή αναθεωρημένη ενότητα.</p><p>Το Medium 3.1 διατηρεί τις δικές του προδιαγραφές. Το πλαίσιο 256 χιλ. token, η πυκνή αρχιτεκτονική 128 δισ. παραμέτρων και οι ρυθμιζόμενες λειτουργίες υβριδικής συλλογιστικής που περιγράφονται για το Medium 3.5 δεν πρέπει να αποδίδονται σε αυτή την καταχώριση. Η σελίδα 3.1 δεν παρέχει πλήθος παραμέτρων ή ξεχωριστό μέγιστο μήκος απάντησης που θα μπορούσε να υποκατασταθεί με ασφάλεια από το μεταγενέστερο μοντέλο.</p><p>Δομημένη έξοδος και συναρτήσεις</p><p>Ο κατασκευαστής αναφέρει δομημένες εξόδους, κλήση συναρτήσεων και προβλεπόμενες εξόδους στις δυνατότητες αυτής της έκδοσης. Για εργασία δομημένης εξαγωγής, ορίστε τα υποχρεωτικά πεδία, τους αναμενόμενους τύπους και τον χειρισμό πληροφοριών που απουσιάζουν από την πηγή. Μια εγγραφή μπορεί να περιέχει το αναγνωριστικό εγγράφου, την εξαγόμενη δήλωση, τη θέση πηγής της και το ερώτημα που παραμένει. Ζητήστε μόνο την εγγραφή όταν θα την αναλύσει πρόγραμμα ή κρατήστε χωριστή μια εξήγηση σε πεζό κείμενο όταν κάποιος πρέπει να εξετάσει την ερμηνεία.</p><p>Η κοινή τεκμηρίωση δομημένης εξόδου της Mistral διακρίνει τη λειτουργία JSON από προσαρμοσμένο σχήμα. Η λειτουργία JSON απαιτεί ρητή οδηγία για την επιθυμητή μορφή JSON, ενώ η προσαρμοσμένη διαδρομή ορίζει πιο συγκεκριμένη δομή. Πρόκειται για μορφοποίηση του αποτελέσματος κειμένου και όχι για νέα τροπικότητα περιεχομένου ή εξωτερική ενέργεια.</p><p>Για συναρτήσεις, η εφαρμογή ορίζει τη διαθέσιμη λειτουργία και τα ορίσματα, το μοντέλο επιλέγει κατάλληλη κλήση και προετοιμάζει τιμές, και η εφαρμογή την εκτελεί. Το αποτέλεσμά της γίνεται κατόπιν πληροφορία για την επόμενη απάντηση. Ένας βοηθός εγγράφων μπορεί να χρησιμοποιεί αναζήτηση για δεδομένα αναφοράς που λείπουν, αλλά μόνο αν η περιβάλλουσα εφαρμογή παρέχει αυτή την αναζήτηση και επιστρέφει το πραγματικό αποτέλεσμά της. Κρατήστε την προτεινόμενη κλήση και τα επιστρεφόμενα δεδομένα συνδεδεμένα μεταξύ τους.</p><p>Προβλεπόμενες αλλαγές και προθέματα απάντησης</p><p>Οι προβλεπόμενες έξοδοι είναι χρήσιμες όταν το μεγαλύτερο μέρος του επιθυμητού αποτελέσματος είναι ήδη γνωστό, όπως σε έγγραφο ή αρχείο κώδικα που χρειάζεται περιορισμένη αλλαγή. Δώστε το υπάρχον περιεχόμενο και περιγράψτε την αλλαγή με ακρίβεια, συμπεριλαμβάνοντας τι πρέπει να παραμείνει αμετάβλητο. Ένα αίτημα μπορεί να ενημερώνει την ορολογία μιας ενότητας ή να αντικαθιστά μία λεπτομέρεια υλοποίησης, διατηρώντας το υπόλοιπο έγγραφο. Η πρόβλεψη περιέχει αναμενόμενο περιεχόμενο εξόδου και όχι ολοκληρωμένη αλλαγή εφαρμοσμένη σε αρχείο.</p><p>Η σελίδα του μοντέλου αναφέρει επίσης συνέχιση προθέματος απάντησης. Στην τεκμηρίωση συνομιλίας του κατασκευαστή, ένα πρόθεμα παρέχει γνωστή αρχή για την απόκριση του βοηθού, μετά την οποία συνεχίζεται η παραγωγή. Μια γνωστή αρχή και ένα προβλεπόμενο σώμα επιλύουν διαφορετικά προβλήματα προετοιμασίας. Η ομαδική επεξεργασία και οι διεπαφές πράκτορα ή συνομιλίας είναι επίσης χαρακτηριστικά ροής εργασίας και όχι ξεχωριστές εκδόσεις εικόνας, ήχου ή συλλογιστικής του Medium 3.1.</p><p>Ερωτήσεις εγγράφων και οπτικού υλικού</p><p>Η αναφερόμενη ροή document-QnA συνδυάζει κείμενο, δομή και μορφοποίηση προετοιμασμένα με OCR με ανάλυση γλωσσικού μοντέλου. Ρωτήστε για τη συγκεκριμένη προϋπόθεση, το απόσπασμα ή τη σχέση που απαιτεί η εργασία. Μια σύγκριση μπορεί να προσδιορίζει τα έγγραφα πηγής και να ζητά κοινές δηλώσεις, συγκρούσεις και άλυτες λεπτομέρειες, διατηρώντας τη θέση πηγής δίπλα σε κάθε εύρημα.</p><p>Ο οδηγός όρασης του κατασκευαστή περιλαμβάνει ρητά το Medium 3.1. Μια άμεση οπτική ερώτηση μπορεί να παρέχει ευανάγνωστο γράφημα, εικόνα εγγράφου ή στιγμιότυπο οθόνης και να ρωτά ποια ορατά στοιχεία στηρίζουν ένα συμπέρασμα. Διατηρήστε άξονες, μονάδες, ετικέτες και το πλαίσιο γύρω από ένα περικομμένο πεδίο. Αν δίνονται πολλές εικόνες, προσδιορίστε τη σειρά και τον ρόλο τους αντί να αφήνετε το μοντέλο να συμπεράνει ποια είναι το πρωτότυπο, η αναθεώρηση ή η αναφορά.</p><p>Για παράδειγμα, συνδυάστε μια γραπτή απαίτηση διαδικασίας με στιγμιότυπο οθόνης και ζητήστε πίνακα ορατών αντιστοιχιών, διαφορών και ερωτημάτων που απαιτούν περισσότερες πληροφορίες. Μια άλλη εργασία μπορεί να παρέχει δύο εκδόσεις εγγράφου και να ζητά αναθεωρημένο απόσπασμα που διατηρεί τις κοινές προϋποθέσεις τους, επιλύοντας μια κατονομασμένη ασυνέπεια. Αυτές είναι προτεινόμενες εφαρμογές των τεκμηριωμένων δυνατοτήτων όρασης, εγγράφων και επεξεργασίας, με το απαιτούμενο αποτέλεσμα καθορισμένο εκ των προτέρων.</p><p>Προετοιμασία του τελικού παραδοτέου</p><p>Δώστε στον βοηθό σαφή ρόλο, το υλικό πηγής που πρέπει να χρησιμοποιεί και τη μορφή απάντησης. Κρατήστε τους σταθερούς κανόνες απόκρισης διακριτούς από το εξεταζόμενο έγγραφο και δηλώστε την τελική γλώσσα και την ορολογία. Μια χρήσιμη απόκριση μπορεί να διαχωρίζει ένα εξαγόμενο γεγονός, την πηγή του και μια ερμηνεία, καθιστώντας την ευκολότερη στον έλεγχο από μία ενιαία σύνοψη.</p><p>Το τεκμηριωμένο αποτέλεσμα παραμένει κείμενο. Εξωτερικά εργαλεία, αλλαγές αρχείων και περαιτέρω επεξεργασία εγγράφων ανήκουν στην εφαρμογή που συνδέεται με τη συνομιλία. Διατηρήστε την ονομασμένη έκδοση Medium 3.1 και το πλαίσιο 128 χιλ. token και ζητήστε την εξήγηση, τη δομημένη εγγραφή ή τη στοχευμένη αναθεώρηση που χρειάζεται πραγματικά το επόμενο βήμα.</p>",
  "aboutText": "Το Mistral Medium 3.1 είναι πολυτροπική έκδοση της Mistral AI για κειμενική και οπτική κατανόηση. Ο κατασκευαστής περιγράφει αυτή την αναθεώρηση ως βελτίωση του τόνου και της απόδοσης στη σειρά Medium 3. Δέχεται κείμενο και εικόνες και παράγει κείμενο: εξήγηση, απάντηση εγγράφου, δομημένη εγγραφή ή προτεινόμενη κλήση συνάρτησης. Το σταθερό αναγνωριστικό του κατασκευαστή για αυτή την έκδοση είναι mistral-medium-2508.\n\nΣυμφραζόμενα και συγκεκριμένη έκδοση\n\nΗ σελίδα του μοντέλου τεκμηριώνει παράθυρο συμφραζομένων 128 χιλ. token. Χρησιμοποιήστε το για να κρατάτε μαζί σχετικά αποσπάσματα πηγής, στοιχεία εικόνας, τη συνομιλία και την εργασία χρήστη. Προσδιορίστε τους ρόλους των εγγράφων και την ερώτηση προς απάντηση πριν δώσετε μεγάλη συλλογή. Τα μεγάλα συμφραζόμενα μπορούν να υποστηρίζουν μια εστιασμένη σύγκριση, ενώ το τελικό παραδοτέο παραμένει σύντομος πίνακας ή αναθεωρημένη ενότητα.\n\nΤο Medium 3.1 διατηρεί τις δικές του προδιαγραφές. Το πλαίσιο 256 χιλ. token, η πυκνή αρχιτεκτονική 128 δισ. παραμέτρων και οι ρυθμιζόμενες λειτουργίες υβριδικής συλλογιστικής που περιγράφονται για το Medium 3.5 δεν πρέπει να αποδίδονται σε αυτή την καταχώριση. Η σελίδα 3.1 δεν παρέχει πλήθος παραμέτρων ή ξεχωριστό μέγιστο μήκος απάντησης που θα μπορούσε να υποκατασταθεί με ασφάλεια από το μεταγενέστερο μοντέλο.\n\nΔομημένη έξοδος και συναρτήσεις\n\nΟ κατασκευαστής αναφέρει δομημένες εξόδους, κλήση συναρτήσεων και προβλεπόμενες εξόδους στις δυνατότητες αυτής της έκδοσης. Για εργασία δομημένης εξαγωγής, ορίστε τα υποχρεωτικά πεδία, τους αναμενόμενους τύπους και τον χειρισμό πληροφοριών που απουσιάζουν από την πηγή. Μια εγγραφή μπορεί να περιέχει το αναγνωριστικό εγγράφου, την εξαγόμενη δήλωση, τη θέση πηγής της και το ερώτημα που παραμένει. Ζητήστε μόνο την εγγραφή όταν θα την αναλύσει πρόγραμμα ή κρατήστε χωριστή μια εξήγηση σε πεζό κείμενο όταν κάποιος πρέπει να εξετάσει την ερμηνεία.\n\nΗ κοινή τεκμηρίωση δομημένης εξόδου της Mistral διακρίνει τη λειτουργία JSON από προσαρμοσμένο σχήμα. Η λειτουργία JSON απαιτεί ρητή οδηγία για την επιθυμητή μορφή JSON, ενώ η προσαρμοσμένη διαδρομή ορίζει πιο συγκεκριμένη δομή. Πρόκειται για μορφοποίηση του αποτελέσματος κειμένου και όχι για νέα τροπικότητα περιεχομένου ή εξωτερική ενέργεια.\n\nΓια συναρτήσεις, η εφαρμογή ορίζει τη διαθέσιμη λειτουργία και τα ορίσματα, το μοντέλο επιλέγει κατάλληλη κλήση και προετοιμάζει τιμές, και η εφαρμογή την εκτελεί. Το αποτέλεσμά της γίνεται κατόπιν πληροφορία για την επόμενη απάντηση. Ένας βοηθός εγγράφων μπορεί να χρησιμοποιεί αναζήτηση για δεδομένα αναφοράς που λείπουν, αλλά μόνο αν η περιβάλλουσα εφαρμογή παρέχει αυτή την αναζήτηση και επιστρέφει το πραγματικό αποτέλεσμά της. Κρατήστε την προτεινόμενη κλήση και τα επιστρεφόμενα δεδομένα συνδεδεμένα μεταξύ τους.\n\nΠροβλεπόμενες αλλαγές και προθέματα απάντησης\n\nΟι προβλεπόμενες έξοδοι είναι χρήσιμες όταν το μεγαλύτερο μέρος του επιθυμητού αποτελέσματος είναι ήδη γνωστό, όπως σε έγγραφο ή αρχείο κώδικα που χρειάζεται περιορισμένη αλλαγή. Δώστε το υπάρχον περιεχόμενο και περιγράψτε την αλλαγή με ακρίβεια, συμπεριλαμβάνοντας τι πρέπει να παραμείνει αμετάβλητο. Ένα αίτημα μπορεί να ενημερώνει την ορολογία μιας ενότητας ή να αντικαθιστά μία λεπτομέρεια υλοποίησης, διατηρώντας το υπόλοιπο έγγραφο. Η πρόβλεψη περιέχει αναμενόμενο περιεχόμενο εξόδου και όχι ολοκληρωμένη αλλαγή εφαρμοσμένη σε αρχείο.\n\nΗ σελίδα του μοντέλου αναφέρει επίσης συνέχιση προθέματος απάντησης. Στην τεκμηρίωση συνομιλίας του κατασκευαστή, ένα πρόθεμα παρέχει γνωστή αρχή για την απόκριση του βοηθού, μετά την οποία συνεχίζεται η παραγωγή. Μια γνωστή αρχή και ένα προβλεπόμενο σώμα επιλύουν διαφορετικά προβλήματα προετοιμασίας. Η ομαδική επεξεργασία και οι διεπαφές πράκτορα ή συνομιλίας είναι επίσης χαρακτηριστικά ροής εργασίας και όχι ξεχωριστές εκδόσεις εικόνας, ήχου ή συλλογιστικής του Medium 3.1.\n\nΕρωτήσεις εγγράφων και οπτικού υλικού\n\nΗ αναφερόμενη ροή document-QnA συνδυάζει κείμενο, δομή και μορφοποίηση προετοιμασμένα με OCR με ανάλυση γλωσσικού μοντέλου. Ρωτήστε για τη συγκεκριμένη προϋπόθεση, το απόσπασμα ή τη σχέση που απαιτεί η εργασία. Μια σύγκριση μπορεί να προσδιορίζει τα έγγραφα πηγής και να ζητά κοινές δηλώσεις, συγκρούσεις και άλυτες λεπτομέρειες, διατηρώντας τη θέση πηγής δίπλα σε κάθε εύρημα.\n\nΟ οδηγός όρασης του κατασκευαστή περιλαμβάνει ρητά το Medium 3.1. Μια άμεση οπτική ερώτηση μπορεί να παρέχει ευανάγνωστο γράφημα, εικόνα εγγράφου ή στιγμιότυπο οθόνης και να ρωτά ποια ορατά στοιχεία στηρίζουν ένα συμπέρασμα. Διατηρήστε άξονες, μονάδες, ετικέτες και το πλαίσιο γύρω από ένα περικομμένο πεδίο. Αν δίνονται πολλές εικόνες, προσδιορίστε τη σειρά και τον ρόλο τους αντί να αφήνετε το μοντέλο να συμπεράνει ποια είναι το πρωτότυπο, η αναθεώρηση ή η αναφορά.\n\nΓια παράδειγμα, συνδυάστε μια γραπτή απαίτηση διαδικασίας με στιγμιότυπο οθόνης και ζητήστε πίνακα ορατών αντιστοιχιών, διαφορών και ερωτημάτων που απαιτούν περισσότερες πληροφορίες. Μια άλλη εργασία μπορεί να παρέχει δύο εκδόσεις εγγράφου και να ζητά αναθεωρημένο απόσπασμα που διατηρεί τις κοινές προϋποθέσεις τους, επιλύοντας μια κατονομασμένη ασυνέπεια. Αυτές είναι προτεινόμενες εφαρμογές των τεκμηριωμένων δυνατοτήτων όρασης, εγγράφων και επεξεργασίας, με το απαιτούμενο αποτέλεσμα καθορισμένο εκ των προτέρων.\n\nΠροετοιμασία του τελικού παραδοτέου\n\nΔώστε στον βοηθό σαφή ρόλο, το υλικό πηγής που πρέπει να χρησιμοποιεί και τη μορφή απάντησης. Κρατήστε τους σταθερούς κανόνες απόκρισης διακριτούς από το εξεταζόμενο έγγραφο και δηλώστε την τελική γλώσσα και την ορολογία. Μια χρήσιμη απόκριση μπορεί να διαχωρίζει ένα εξαγόμενο γεγονός, την πηγή του και μια ερμηνεία, καθιστώντας την ευκολότερη στον έλεγχο από μία ενιαία σύνοψη.\n\nΤο τεκμηριωμένο αποτέλεσμα παραμένει κείμενο. Εξωτερικά εργαλεία, αλλαγές αρχείων και περαιτέρω επεξεργασία εγγράφων ανήκουν στην εφαρμογή που συνδέεται με τη συνομιλία. Διατηρήστε την ονομασμένη έκδοση Medium 3.1 και το πλαίσιο 128 χιλ. token και ζητήστε την εξήγηση, τη δομημένη εγγραφή ή τη στοχευμένη αναθεώρηση που χρειάζεται πραγματικά το επόμενο βήμα.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "a1694511a480104382968cd5fb54f9deb9c8dfad5950a39453ef5e08f48cf159",
    "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\">•</span><h2 id=\"sheet-title\">Mistral: Mistral Medium 3.1 (batch)</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Κλείσιμο\">×</button></div><div class=\"idline\"><span>Mistral /</span><code>mistralai/mistral-medium-3.1:batch</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=\"Ultra|batches|/v1/batches|mistralai%2Fmistral-medium-3.1%3Abatch\">Παρτίδες</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\">Το Mistral Medium 3.1 είναι μοντέλο κειμένου και εικόνας για απαντήσεις συνομιλίας, ερωτήσεις εγγράφων και δομημένη εξαγωγή. Το πλαίσιο 128 χιλ. token σύμφωνα με τον κατασκευαστή και οι αναφερόμενες δυνατότητες κλήσης συναρτήσεων, προβλεπόμενης εξόδου και προθέματος υποστηρίζουν εξηγήσεις βασισμένες σε πηγές και στοχευμένες ροές επεξεργασίας.</p><dl class=\"card-io\" data-card-io><div><dt>Αποδεκτές είσοδοι</dt><dd>Κείμενο</dd></div><div><dt>Αποτελέσματα</dt><dd>Κείμενο</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>Το Mistral Medium 3.1 είναι πολυτροπική έκδοση της Mistral AI για κειμενική και οπτική κατανόηση. Ο κατασκευαστής περιγράφει αυτή την αναθεώρηση ως βελτίωση του τόνου και της απόδοσης στη σειρά Medium 3. Δέχεται κείμενο και εικόνες και παράγει κείμενο: εξήγηση, απάντηση εγγράφου, δομημένη εγγραφή ή προτεινόμενη κλήση συνάρτησης. Το σταθερό αναγνωριστικό του κατασκευαστή για αυτή την έκδοση είναι mistral-medium-2508.</p><p>Συμφραζόμενα και συγκεκριμένη έκδοση</p><p>Η σελίδα του μοντέλου τεκμηριώνει παράθυρο συμφραζομένων 128 χιλ. token. Χρησιμοποιήστε το για να κρατάτε μαζί σχετικά αποσπάσματα πηγής, στοιχεία εικόνας, τη συνομιλία και την εργασία χρήστη. Προσδιορίστε τους ρόλους των εγγράφων και την ερώτηση προς απάντηση πριν δώσετε μεγάλη συλλογή. Τα μεγάλα συμφραζόμενα μπορούν να υποστηρίζουν μια εστιασμένη σύγκριση, ενώ το τελικό παραδοτέο παραμένει σύντομος πίνακας ή αναθεωρημένη ενότητα.</p><p>Το Medium 3.1 διατηρεί τις δικές του προδιαγραφές. Το πλαίσιο 256 χιλ. token, η πυκνή αρχιτεκτονική 128 δισ. παραμέτρων και οι ρυθμιζόμενες λειτουργίες υβριδικής συλλογιστικής που περιγράφονται για το Medium 3.5 δεν πρέπει να αποδίδονται σε αυτή την καταχώριση. Η σελίδα 3.1 δεν παρέχει πλήθος παραμέτρων ή ξεχωριστό μέγιστο μήκος απάντησης που θα μπορούσε να υποκατασταθεί με ασφάλεια από το μεταγενέστερο μοντέλο.</p><p>Δομημένη έξοδος και συναρτήσεις</p><p>Ο κατασκευαστής αναφέρει δομημένες εξόδους, κλήση συναρτήσεων και προβλεπόμενες εξόδους στις δυνατότητες αυτής της έκδοσης. Για εργασία δομημένης εξαγωγής, ορίστε τα υποχρεωτικά πεδία, τους αναμενόμενους τύπους και τον χειρισμό πληροφοριών που απουσιάζουν από την πηγή. Μια εγγραφή μπορεί να περιέχει το αναγνωριστικό εγγράφου, την εξαγόμενη δήλωση, τη θέση πηγής της και το ερώτημα που παραμένει. Ζητήστε μόνο την εγγραφή όταν θα την αναλύσει πρόγραμμα ή κρατήστε χωριστή μια εξήγηση σε πεζό κείμενο όταν κάποιος πρέπει να εξετάσει την ερμηνεία.</p><p>Η κοινή τεκμηρίωση δομημένης εξόδου της Mistral διακρίνει τη λειτουργία JSON από προσαρμοσμένο σχήμα. Η λειτουργία JSON απαιτεί ρητή οδηγία για την επιθυμητή μορφή JSON, ενώ η προσαρμοσμένη διαδρομή ορίζει πιο συγκεκριμένη δομή. Πρόκειται για μορφοποίηση του αποτελέσματος κειμένου και όχι για νέα τροπικότητα περιεχομένου ή εξωτερική ενέργεια.</p><p>Για συναρτήσεις, η εφαρμογή ορίζει τη διαθέσιμη λειτουργία και τα ορίσματα, το μοντέλο επιλέγει κατάλληλη κλήση και προετοιμάζει τιμές, και η εφαρμογή την εκτελεί. Το αποτέλεσμά της γίνεται κατόπιν πληροφορία για την επόμενη απάντηση. Ένας βοηθός εγγράφων μπορεί να χρησιμοποιεί αναζήτηση για δεδομένα αναφοράς που λείπουν, αλλά μόνο αν η περιβάλλουσα εφαρμογή παρέχει αυτή την αναζήτηση και επιστρέφει το πραγματικό αποτέλεσμά της. Κρατήστε την προτεινόμενη κλήση και τα επιστρεφόμενα δεδομένα συνδεδεμένα μεταξύ τους.</p><p>Προβλεπόμενες αλλαγές και προθέματα απάντησης</p><p>Οι προβλεπόμενες έξοδοι είναι χρήσιμες όταν το μεγαλύτερο μέρος του επιθυμητού αποτελέσματος είναι ήδη γνωστό, όπως σε έγγραφο ή αρχείο κώδικα που χρειάζεται περιορισμένη αλλαγή. Δώστε το υπάρχον περιεχόμενο και περιγράψτε την αλλαγή με ακρίβεια, συμπεριλαμβάνοντας τι πρέπει να παραμείνει αμετάβλητο. Ένα αίτημα μπορεί να ενημερώνει την ορολογία μιας ενότητας ή να αντικαθιστά μία λεπτομέρεια υλοποίησης, διατηρώντας το υπόλοιπο έγγραφο. Η πρόβλεψη περιέχει αναμενόμενο περιεχόμενο εξόδου και όχι ολοκληρωμένη αλλαγή εφαρμοσμένη σε αρχείο.</p><p>Η σελίδα του μοντέλου αναφέρει επίσης συνέχιση προθέματος απάντησης. Στην τεκμηρίωση συνομιλίας του κατασκευαστή, ένα πρόθεμα παρέχει γνωστή αρχή για την απόκριση του βοηθού, μετά την οποία συνεχίζεται η παραγωγή. Μια γνωστή αρχή και ένα προβλεπόμενο σώμα επιλύουν διαφορετικά προβλήματα προετοιμασίας. Η ομαδική επεξεργασία και οι διεπαφές πράκτορα ή συνομιλίας είναι επίσης χαρακτηριστικά ροής εργασίας και όχι ξεχωριστές εκδόσεις εικόνας, ήχου ή συλλογιστικής του Medium 3.1.</p><p>Ερωτήσεις εγγράφων και οπτικού υλικού</p><p>Η αναφερόμενη ροή document-QnA συνδυάζει κείμενο, δομή και μορφοποίηση προετοιμασμένα με OCR με ανάλυση γλωσσικού μοντέλου. Ρωτήστε για τη συγκεκριμένη προϋπόθεση, το απόσπασμα ή τη σχέση που απαιτεί η εργασία. Μια σύγκριση μπορεί να προσδιορίζει τα έγγραφα πηγής και να ζητά κοινές δηλώσεις, συγκρούσεις και άλυτες λεπτομέρειες, διατηρώντας τη θέση πηγής δίπλα σε κάθε εύρημα.</p><p>Ο οδηγός όρασης του κατασκευαστή περιλαμβάνει ρητά το Medium 3.1. Μια άμεση οπτική ερώτηση μπορεί να παρέχει ευανάγνωστο γράφημα, εικόνα εγγράφου ή στιγμιότυπο οθόνης και να ρωτά ποια ορατά στοιχεία στηρίζουν ένα συμπέρασμα. Διατηρήστε άξονες, μονάδες, ετικέτες και το πλαίσιο γύρω από ένα περικομμένο πεδίο. Αν δίνονται πολλές εικόνες, προσδιορίστε τη σειρά και τον ρόλο τους αντί να αφήνετε το μοντέλο να συμπεράνει ποια είναι το πρωτότυπο, η αναθεώρηση ή η αναφορά.</p><p>Για παράδειγμα, συνδυάστε μια γραπτή απαίτηση διαδικασίας με στιγμιότυπο οθόνης και ζητήστε πίνακα ορατών αντιστοιχιών, διαφορών και ερωτημάτων που απαιτούν περισσότερες πληροφορίες. Μια άλλη εργασία μπορεί να παρέχει δύο εκδόσεις εγγράφου και να ζητά αναθεωρημένο απόσπασμα που διατηρεί τις κοινές προϋποθέσεις τους, επιλύοντας μια κατονομασμένη ασυνέπεια. Αυτές είναι προτεινόμενες εφαρμογές των τεκμηριωμένων δυνατοτήτων όρασης, εγγράφων και επεξεργασίας, με το απαιτούμενο αποτέλεσμα καθορισμένο εκ των προτέρων.</p><p>Προετοιμασία του τελικού παραδοτέου</p><p>Δώστε στον βοηθό σαφή ρόλο, το υλικό πηγής που πρέπει να χρησιμοποιεί και τη μορφή απάντησης. Κρατήστε τους σταθερούς κανόνες απόκρισης διακριτούς από το εξεταζόμενο έγγραφο και δηλώστε την τελική γλώσσα και την ορολογία. Μια χρήσιμη απόκριση μπορεί να διαχωρίζει ένα εξαγόμενο γεγονός, την πηγή του και μια ερμηνεία, καθιστώντας την ευκολότερη στον έλεγχο από μία ενιαία σύνοψη.</p><p>Το τεκμηριωμένο αποτέλεσμα παραμένει κείμενο. Εξωτερικά εργαλεία, αλλαγές αρχείων και περαιτέρω επεξεργασία εγγράφων ανήκουν στην εφαρμογή που συνδέεται με τη συνομιλία. Διατηρήστε την ονομασμένη έκδοση Medium 3.1 και το πλαίσιο 128 χιλ. token και ζητήστε την εξήγηση, τη δομημένη εγγραφή ή τη στοχευμένη αναθεώρηση που χρειάζεται πραγματικά το επόμενο βήμα.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Μαζική επεξεργασία</b> <code>POST /v1/batches</code></summary><dl class=\"method-capabilities\"><div><dt>Είσοδος</dt><dd><code>text</code></dd></div><div><dt>Έξοδος</dt><dd><code>text</code></dd></div><div><dt>Μορφή εξόδου</dt><dd>Ενσωματωμένο JSON στο results[].response.body</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\">endpoint</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>/v1/chat/completions</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\">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>mistralai/mistral-medium-3.1:batch</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\">requests</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>batch_item[]</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\">requests[].custom_id</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></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\">requests[].body.messages</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>message[]</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\">completion_window</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>24h</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\">provider</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>object|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\">requests[].body.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>mistralai/mistral-medium-3.1:batch, mistralai/mistral-medium-3.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\">provider.only</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>mistral</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\">provider.allow_fallbacks</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=\"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>content_type</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>application/json</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>endpoint, model, requests</td></tr><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>representation</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>Ενσωματωμένος πίνακας requests[]· κάθε στοιχείο έχει custom_id και body</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>request_endpoint_profile</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>/v1/chat/completions</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>file_material</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>Ο καλών μπορεί να διαβάσει το πραγματικό υλικό UTF-8 JSONL τοπικά στον πίνακα requests[]. Δεν χρησιμοποιείται παράμετρος purpose για μεταφόρτωση, input_file_id ή αναφορά σε αρχείο. Αν το υλικό του πελάτη λείπει ή είναι κενό, η προετοιμασία σταματά πριν από το POST.</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>serialization_order</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>endpoint, model, provider (αν παρέχεται), completion_window (αν παρέχεται), requests στο τέλος</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>provider.only, provider.allow_fallbacks, completion_window</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>schema_scope</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>Σώματα αιτημάτων Text Chat Completions στον τεκμηριωμένο ενσωματωμένο φάκελο Batch.</td></tr></tbody></table></div><p>Κύκλος ζωής: <code>asynchronous</code></p><p class=\"note-s\"><code>GET /v1/batches/{operation_id}</code> · Το πραγματικό response.id της αρχικής απόκρισης δημιουργίας· ο ίδιος χρήστης, το ίδιο κλειδί και η ίδια ομάδα</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Τιμολόγηση</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Οι τιμολογιακές αναφορές δεν προσθέτουν επιλογές αιτήματος. Οι υποστηριζόμενες παράμετροι αναφέρονται στην επιλεγμένη μέθοδο.</p><dl data-price-conditions><dt>Γρήγορη λειτουργία</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν επιλέγεται η γρήγορη λειτουργία</span></dd><dt>Λειτουργία flex</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν επιλέγεται η λειτουργία flex</span></dd><dt>Μέγιστη προσπάθεια συλλογισμού</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν η μέγιστη προσπάθεια συλλογισμού χρησιμοποιεί την προσαρμογή default</span></dd><dt>Τιμολόγηση ρητής αποθήκευσης στην κρυφή μνήμη</dt><dd>Δεν είναι ενεργοποιημένο <span class=\"note-s\">Όταν ζητείται ρητή αποθήκευση στην κρυφή μνήμη</span></dd></dl></div><div data-declared-tariff-pricing><h4>Χρεώσεις Ailoot</h4><h4>Τιμές ανά διαμόρφωση</h4><p class=\"note-s\">Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Διαμόρφωση</th><th>Πίνακας χρεώσεων</th><th>Token συμφραζομένων, πάνω από</th><th>Token συμφραζομένων, έως και</th><th>Χρέωση</th></tr></thead><tbody><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Βασικές χρεώσεις ανά token</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>Βασική χρέωση</td><td data-cell-label=\"Token συμφραζομένων, πάνω από\"><span class=\"card-cell-label\">Token συμφραζομένων, πάνω από</span>—</td><td data-cell-label=\"Token συμφραζομένων, έως και\"><span class=\"card-cell-label\">Token συμφραζομένων, έως και</span>Χωρίς ανώτατο όριο</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Είσοδος · Token εισόδου</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Έξοδος · Token εξόδου</span> <b>$0.002</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Ανάγνωση από την κρυφή μνήμη</span> <b>$0.00004</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Εγγραφή στην κρυφή μνήμη</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Επίπεδο 1 βάσει μήκους αιτήματος</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Token συμφραζομένων, πάνω από\"><span class=\"card-cell-label\">Token συμφραζομένων, πάνω από</span>0</td><td data-cell-label=\"Token συμφραζομένων, έως και\"><span class=\"card-cell-label\">Token συμφραζομένων, έως και</span>Χωρίς ανώτατο όριο</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Είσοδος · Token εισόδου</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Έξοδος · Token εξόδου</span> <b>$0.002</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Ανάγνωση από την κρυφή μνήμη</span> <b>$0.00004</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Εγγραφή στην κρυφή μνήμη</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr></tbody></table></div></div><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 Ultra · Μαζική επεξεργασία</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-1922-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1922-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · διατηρημένο δείγμα δοκιμής</button><button class=\"cg-tab\" id=\"model-code-1922-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1922-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python HTTP · πραγματικό JSONL του πελάτη</button><button class=\"cg-tab\" id=\"model-code-1922-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1922-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Python · αποθηκεύστε κάθε ολοκληρωμένο αποτέλεσμα</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-1922-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1922-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json\nfrom pathlib import Path\nbody=json.loads(&#39;{&quot;endpoint&quot;:&quot;/v1/chat/completions&quot;,&quot;model&quot;:&quot;mistralai/mistral-medium-3.1:batch&quot;,&quot;requests&quot;:[{&quot;custom_id&quot;:&quot;req-0001&quot;,&quot;body&quot;:{&quot;messages&quot;:[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;Hello!&quot;}],&quot;max_tokens&quot;:16}}]}&#39;)\nPath(&quot;batch-request.json&quot;).write_text(json.dumps(body,ensure_ascii=False),encoding=&quot;utf-8&quot;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1922-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1922-tab-1\" hidden><pre data-lang=\"python\"><code>import json, os\nfrom pathlib import Path\nfrom urllib.request import Request, urlopen\n\ndef prepare_requests(customer_path):\n    path = Path(customer_path)\n    if not path.is_file(): raise ValueError(&quot;Customer JSONL file is missing&quot;)\n    items = [json.loads(line) for line in path.read_text(encoding=&quot;utf-8&quot;).splitlines() if line.strip()]\n    if not items: raise ValueError(&quot;Customer JSONL contains no requests&quot;)\n    ids = set()\n    for item in items:\n        if set(item) != {&quot;custom_id&quot;, &quot;body&quot;}: raise ValueError(&quot;Each item needs custom_id and body&quot;)\n        cid = item[&quot;custom_id&quot;]\n        if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError(&quot;custom_id must be nonempty and unique&quot;)\n        ids.add(cid)\n        if not isinstance(item[&quot;body&quot;], dict) or not item[&quot;body&quot;].get(&quot;messages&quot;): raise ValueError(&quot;Supply actual text messages&quot;)\n        supplied_model = item[&quot;body&quot;].get(&quot;model&quot;)\n        if supplied_model is not None and supplied_model not in [&#39;mistralai/mistral-medium-3.1:batch&#39;, &#39;mistralai/mistral-medium-3.1&#39;]: raise ValueError(&quot;body.model must be an exact documented caller or wire ID&quot;)\n    return {&quot;endpoint&quot;:&quot;/v1/chat/completions&quot;, &quot;model&quot;:&quot;mistralai/mistral-medium-3.1:batch&quot;, &quot;requests&quot;:items}\n\nif __name__ == &quot;__main__&quot;:\n    material = os.environ.get(&quot;AILOOT_BATCH_REQUESTS_JSONL&quot;, &quot;&quot;)\n    if not material: raise SystemExit(&quot;Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file&quot;)\n    body = prepare_requests(material)\n    key = os.environ.get(&quot;AILOOT_API_KEY&quot;, &quot;&quot;)\n    if not key: raise SystemExit(&quot;Set AILOOT_API_KEY&quot;)\n    request = Request(&quot;https://api.ailoot.ai/v1/batches&quot;, data=json.dumps(body, ensure_ascii=False).encode(&quot;utf-8&quot;), headers={&quot;Authorization&quot;:&quot;Bearer &quot; + key, &quot;Content-Type&quot;:&quot;application/json&quot;}, method=&quot;POST&quot;)\n    with urlopen(request) as response:\n        raw = response.read()\n        Path(&quot;batch-create-response.json&quot;).write_bytes(raw)\n        print(raw.decode(&quot;utf-8&quot;))\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1922-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-1922-tab-2\" hidden><pre data-lang=\"python\"><code>import json\nfrom pathlib import Path\nraw = Path(&quot;batch-status-response.json&quot;).read_bytes()\nresponse = json.loads(raw)\nif response.get(&quot;status&quot;) != &quot;completed&quot;:\n    raise SystemExit(&quot;Keep the original operation; read its status without resubmitting&quot;)\nresults = response.get(&quot;results&quot;)\nif not isinstance(results, list) or not results:\n    raise SystemExit(&quot;Preserve the original response; completed results are missing&quot;)\nPath(&quot;batch-results.jsonl&quot;).write_text(&quot;&quot;.join(json.dumps(item, ensure_ascii=False) + &quot;\\n&quot; for item in results), encoding=&quot;utf-8&quot;)\n# Preserve batch-status-response.json with aggregate usage and every result/error.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Λήψη και αποθήκευση αποτελεσμάτων</h3><h4>Ailoot Ultra · Μαζική επεξεργασία</h4><p class=\"note-s\">Ενσωματωμένο JSON στο results[].response.body</p><ul class=\"card-result-paths\"><li><code>GET /v1/batches/{operation_id}</code></li></ul><h5>Έλεγχος κατάστασης εργασίας</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-1923-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1923-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · κατάσταση της αρχικής ενέργειας</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-1923-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1923-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nBATCH_OPERATION_ID=&quot;$(python3 - &lt;&lt;&#39;PY_ID&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nresponse = json.loads(Path(&quot;batch-create-response.json&quot;).read_text(encoding=&quot;utf-8&quot;))\noperation = response.get(&quot;id&quot;)\nif not isinstance(operation, str) or not operation: raise SystemExit(&quot;No actual original operation ID; preserve the response and do not resubmit&quot;)\nprint(quote(operation, safe=&quot;&quot;))\nPY_ID\n)&quot;\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o batch-status-response.json\n</code></pre></div></div></div><div class=\"card-result-process\" data-all-results><h5>Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα</h5><p class=\"note-s\">Διατηρήστε κάθε πλήρη απάντηση, αρχείο και τμήμα περιεχομένου που επιστρέφεται.</p><p class=\"note-s\">Διατηρήστε ολόκληρο το αρχικό JSON κατάστασης, κάθε result/custom_id και ολόκληρο το σώμα της απόκρισης ή του σφάλματος. Αποθηκεύστε τα ολοκληρωμένα results[] ως JSONL χωρίς φιλτράρισμα.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Αν χρειάζεται έλεγχος της αρχικής απάντησης</h5><p class=\"note-s\">Διατηρήστε το αρχικό ID της λειτουργίας. Η απόκριση 503 result_pending_check περιέχει X-Should-Retry:false· μην υποβάλετε ποτέ ξανά μια αρχική μαζική εργασία με άγνωστη έκβαση.</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\">results[].custom_id</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\">results[].response.body.choices[].message.content</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string|null</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">results[].error</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>object|null</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|null</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">id</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\">model</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\">endpoint</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\">status</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\">request_counts</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\">results[].id</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\">results[].response.status_code</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>integer</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">results[].response.request_id</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</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><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Μη έγκυρο κλειδί API.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Χρησιμοποιήστε το εξουσιοδοτημένο κλειδί Ailoot.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>403 · <code>permission_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><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>422 · <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><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Δεν μπορεί να υπολογιστεί προσφορά κόστους για την είσοδο της μαζικής εργασίας.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διατηρήστε την απόκριση· χρησιμοποιήστε την τεκμηριωμένη είσοδο της οικογένειας API.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>402 · <code>billing_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><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>503 · <code>price_unavailable</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><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>503 · <code>api_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><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Το αρχικό αποτέλεσμα χρειάζεται έλεγχο· X-Should-Retry:false.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διατηρήστε το αρχικό operation_id/id και διαβάστε την κατάστασή του· μην επαναλάβετε ποτέ το αρχικό POST.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>404 · <code>not_found</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Η λειτουργία κατάστασης της μαζικής εργασίας δεν υπάρχει ή ανήκει σε άλλη ταυτότητα.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Χρησιμοποιήστε το ακριβές αρχικό id και τον ίδιο χρήστη, το ίδιο κλειδί και την ίδια ομάδα.</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=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=mistralai%2Fmistral-medium-3.1%3Abatch&amp;route=Ultra&amp;caller=mistralai%2Fmistral-medium-3.1%3Abatch&amp;fmt=batches\"><code>mistralai/mistral-medium-3.1:batch</code></a></span></p><h4>Εναλλακτικές διαδρομές μεθόδων</h4><p class=\"note-s\">Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.</p><h4>Σχετικά ID μοντέλων</h4><p class=\"note-s\"><a href=\"#m=mistralai%2Fmistral-medium-3.1%3Abatch&amp;route=Ultra&amp;caller=mistralai%2Fmistral-medium-3.1%3Abatch&amp;fmt=batches\"><code>mistralai/mistral-medium-3.1:batch</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "mistralai/mistral-medium-3.1:batch",
        "fmt": "batches",
        "http": "POST",
        "path": "/v1/batches",
        "request_model_id": "mistralai/mistral-medium-3.1:batch",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|batches|/v1/batches|mistralai%2Fmistral-medium-3.1%3Abatch",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": 0.04,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Preserve full JSON and every result; provider real IDs are only read from actual returned responses.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "Μη έγκυρος τεκμηριωμένος ενσωματωμένος φάκελος, διπλότυπα κλειδιά, ταυτότητα στοιχείου ή σύγκρουση με τις ρυθμισμένες δυνατότητες του μοντέλου.",
                "http_status": 400,
                "recovery": "Διορθώστε τα υποδεικνυόμενα πεδία πριν από οποιαδήποτε νέα υποβολή.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Μη έγκυρο κλειδί API.",
                "http_status": 401,
                "recovery": "Χρησιμοποιήστε το εξουσιοδοτημένο κλειδί Ailoot.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Η ομάδα μαζικής επεξεργασίας δεν είναι διαθέσιμη.",
                "http_status": 403,
                "recovery": "Ελέγξτε τα δικαιώματα πρόσβασης του κλειδιού/της ομάδας.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Η μαζική επεξεργασία χρεώνεται στο υπόλοιπο· η δημιουργία μέσω συνδρομής απορρίπτεται.",
                "http_status": 422,
                "recovery": "Χρησιμοποιήστε την εξουσιοδοτημένη ομάδα που χρεώνεται στο υπόλοιπο.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Δεν μπορεί να υπολογιστεί προσφορά κόστους για την είσοδο της μαζικής εργασίας.",
                "http_status": 422,
                "recovery": "Διατηρήστε την απόκριση· χρησιμοποιήστε την τεκμηριωμένη είσοδο της οικογένειας API.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Το ποσό δέσμευσης για τη μαζική επεξεργασία δεν είναι διαθέσιμο.",
                "http_status": 402,
                "recovery": "Επιλύστε το ζήτημα αποδοχής πριν από ένα νέο αίτημα.",
                "type": "billing_error"
              },
              {
                "code": null,
                "condition": "Η τιμή της μεθόδου μαζικής επεξεργασίας/οι εγγενείς τιμές δεν είναι διαθέσιμες.",
                "http_status": 503,
                "recovery": "Διατηρήστε την απόκριση· μην αντικαθιστάτε τις τιμές.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Η ακριβής διαδρομή του προμηθευτή δεν είναι διαθέσιμη.",
                "http_status": 503,
                "recovery": "Διατηρήστε την απόκριση για τη διόρθωση της διαδρομής.",
                "type": "api_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Το αρχικό αποτέλεσμα χρειάζεται έλεγχο· X-Should-Retry:false.",
                "http_status": 503,
                "recovery": "Διατηρήστε το αρχικό operation_id/id και διαβάστε την κατάστασή του· μην επαναλάβετε ποτέ το αρχικό POST.",
                "type": null
              },
              {
                "code": "not_found",
                "condition": "Η λειτουργία κατάστασης της μαζικής εργασίας δεν υπάρχει ή ανήκει σε άλλη ταυτότητα.",
                "http_status": 404,
                "recovery": "Χρησιμοποιήστε το ακριβές αρχικό id και τον ίδιο χρήστη, το ίδιο κλειδί και την ίδια ομάδα.",
                "type": null
              }
            ],
            "example_body": {
              "endpoint": "/v1/chat/completions",
              "model": "mistralai/mistral-medium-3.1:batch",
              "requests": [
                {
                  "body": {
                    "max_tokens": 16,
                    "messages": [
                      {
                        "content": "Hello!",
                        "role": "user"
                      }
                    ]
                  },
                  "custom_id": "req-0001"
                }
              ]
            },
            "input_constraints": [
              "Use the exact shown :batch model ID.",
              "Each custom_id must be nonempty and unique within the batch.",
              "Keep requests last in the serialized body; duplicate JSON keys are rejected.",
              "Each body.model is omitted or equals the exact batch caller or its documented base ID.",
              "Per-item provider, service_tier and input_type are outside this batch profile.",
              "stream is omitted or false.",
              "Supply text messages for this Chat batch profile; image/audio/file/video objects, hosted tools and cache-control fields are outside this profile.",
              "If body.model is present, use only the exact caller or wire ID listed here; no suffix conversion is needed.",
              "For google/ wire IDs, all items use an identical response_format."
            ],
            "outputs": {
              "all_results": "Διατηρήστε ολόκληρο το αρχικό JSON κατάστασης, κάθε result/custom_id και ολόκληρο το σώμα της απόκρισης ή του σφάλματος. Αποθηκεύστε τα ολοκληρωμένα results[] ως JSONL χωρίς φιλτράρισμα.",
              "enclosing_family": "batch",
              "family": "text",
              "fields": [
                {
                  "name": "results[].custom_id",
                  "type": "string"
                },
                {
                  "name": "results[].response.body.choices[].message.content",
                  "type": "string|null"
                },
                {
                  "name": "results[].error",
                  "type": "object|null"
                },
                {
                  "name": "usage",
                  "type": "object|null"
                },
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "endpoint",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "request_counts",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "results[].id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "results[].response.status_code",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "results[].response.request_id",
                  "type": "string"
                }
              ],
              "format": "Ενσωματωμένο JSON στο results[].response.body"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "/v1/chat/completions"
                ],
                "enum_known": true,
                "name": "endpoint",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mistralai/mistral-medium-3.1:batch"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "requests",
                "required": true,
                "type": "batch_item[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "requests[].custom_id",
                "required": true,
                "type": "string",
                "unique_within_batch": true
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "requests[].body.messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "24h"
                ],
                "enum_known": true,
                "name": "completion_window",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mistralai/mistral-medium-3.1:batch",
                  "mistralai/mistral-medium-3.1"
                ],
                "enum_known": true,
                "name": "requests[].body.model",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  [
                    "mistral"
                  ]
                ],
                "enum_known": true,
                "name": "provider.only",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  null
                ],
                "enum_known": true,
                "name": "provider.allow_fallbacks",
                "required": false,
                "type": "boolean|null"
              }
            ],
            "provider_policy": {
              "allow_fallbacks": false,
              "configured_only": [
                "mistral"
              ],
              "per_item_override": false,
              "when_omitted": "Current Source injects the exact persisted declaration before fresh submission."
            },
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "completion_window": {
                  "enum": [
                    "24h"
                  ],
                  "type": "string"
                },
                "endpoint": {
                  "enum": [
                    "/v1/chat/completions"
                  ],
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "mistralai/mistral-medium-3.1:batch"
                  ],
                  "type": "string"
                },
                "provider": {
                  "additionalProperties": false,
                  "properties": {
                    "allow_fallbacks": {
                      "enum": [
                        false,
                        null
                      ],
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "only": {
                      "enum": [
                        [
                          "mistral"
                        ]
                      ],
                      "items": {
                        "enum": [
                          "mistral"
                        ],
                        "type": "string"
                      },
                      "maxItems": 1,
                      "minItems": 1,
                      "type": "array"
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "requests": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "body": {
                        "additionalProperties": true,
                        "properties": {
                          "max_tokens": {
                            "minimum": 1,
                            "type": "integer"
                          },
                          "messages": {
                            "items": {
                              "properties": {
                                "content": {
                                  "type": "string"
                                },
                                "role": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "role",
                                "content"
                              ],
                              "type": "object"
                            },
                            "minItems": 1,
                            "type": "array"
                          },
                          "model": {
                            "enum": [
                              "mistralai/mistral-medium-3.1:batch",
                              "mistralai/mistral-medium-3.1"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "messages"
                        ],
                        "type": "object"
                      },
                      "custom_id": {
                        "minLength": 1,
                        "type": "string"
                      }
                    },
                    "required": [
                      "custom_id",
                      "body"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                }
              },
              "required": [
                "endpoint",
                "model",
                "requests"
              ],
              "type": "object"
            },
            "schema_template": {
              "endpoint": "/v1/chat/completions",
              "model": "mistralai/mistral-medium-3.1:batch",
              "requests": [
                {
                  "body": {
                    "max_tokens": 16,
                    "messages": [
                      {
                        "content": "Hello!",
                        "role": "user"
                      }
                    ]
                  },
                  "custom_id": "req-0001"
                }
              ]
            },
            "unsupported": [
              "Files/input_file_id batch upload workflow",
              "active cancel route",
              "public batch list/delete/result-download route",
              "model-name-derived capability or weights equivalence"
            ]
          },
          "input": {
            "content_type": "application/json",
            "file_material": "Ο καλών μπορεί να διαβάσει το πραγματικό υλικό UTF-8 JSONL τοπικά στον πίνακα requests[]. Δεν χρησιμοποιείται παράμετρος purpose για μεταφόρτωση, input_file_id ή αναφορά σε αρχείο. Αν το υλικό του πελάτη λείπει ή είναι κενό, η προετοιμασία σταματά πριν από το POST.",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "provider.only",
              "provider.allow_fallbacks",
              "completion_window"
            ],
            "representation": "Ενσωματωμένος πίνακας requests[]· κάθε στοιχείο έχει custom_id και body",
            "request_endpoint_profile": "/v1/chat/completions",
            "required": [
              "endpoint",
              "model",
              "requests"
            ],
            "schema_scope": "Σώματα αιτημάτων Text Chat Completions στον τεκμηριωμένο ενσωματωμένο φάκελο Batch.",
            "serialization_order": [
              "endpoint",
              "model",
              "provider (αν παρέχεται)",
              "completion_window (αν παρέχεται)",
              "requests στο τέλος"
            ]
          },
          "lifecycle": {
            "cancel": null,
            "create": {
              "accepted_status": 202,
              "http": "POST",
              "path": "/v1/batches"
            },
            "delete": null,
            "file_upload": null,
            "mode": "asynchronous",
            "observed_status_values": [
              "validating",
              "in_progress",
              "finalizing",
              "completed",
              "failed",
              "expired",
              "cancelling",
              "cancelled"
            ],
            "owned_results": {
              "behavior": "Completed results are saved as owned JSONL, read back byte-for-byte and registered in the existing media library before publication after settlement. Status returns inline results; no separate Batch download route is added.",
              "format": "application/x-ndjson",
              "public_url_field_in_status": null
            },
            "status": {
              "http": "GET",
              "id_source": "Το πραγματικό response.id της αρχικής απόκρισης δημιουργίας· ο ίδιος χρήστης, το ίδιο κλειδί και η ίδια ομάδα",
              "path": "/v1/batches/{operation_id}"
            },
            "terminal": [
              "completed",
              "failed",
              "expired",
              "cancelled"
            ],
            "unknown": "Διατηρήστε το αρχικό ID της λειτουργίας. Η απόκριση 503 result_pending_check περιέχει X-Should-Retry:false· μην υποβάλετε ποτέ ξανά μια αρχική μαζική εργασία με άγνωστη έκβαση."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/batches"
          },
          "output": {
            "all_results": "Preserve the full original status JSON, every result/custom_id and complete response or error body. Save completed results[] as JSONL without filtering.",
            "family": "batch",
            "format": "JSON; completed results[] are returned inline and can be saved as JSONL."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Βασικές χρεώσεις ανά token",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Επίπεδο 1 βάσει μήκους αιτήματος",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json\nfrom pathlib import Path\nbody=json.loads('{\"endpoint\":\"/v1/chat/completions\",\"model\":\"mistralai/mistral-medium-3.1:batch\",\"requests\":[{\"custom_id\":\"req-0001\",\"body\":{\"messages\":[{\"role\":\"user\",\"content\":\"Hello!\"}],\"max_tokens\":16}}]}')\nPath(\"batch-request.json\").write_text(json.dumps(body,ensure_ascii=False),encoding=\"utf-8\")\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json\n",
            "label": "curl · retained fixture",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\nfrom urllib.request import Request, urlopen\n\ndef prepare_requests(customer_path):\n    path = Path(customer_path)\n    if not path.is_file(): raise ValueError(\"Customer JSONL file is missing\")\n    items = [json.loads(line) for line in path.read_text(encoding=\"utf-8\").splitlines() if line.strip()]\n    if not items: raise ValueError(\"Customer JSONL contains no requests\")\n    ids = set()\n    for item in items:\n        if set(item) != {\"custom_id\", \"body\"}: raise ValueError(\"Each item needs custom_id and body\")\n        cid = item[\"custom_id\"]\n        if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError(\"custom_id must be nonempty and unique\")\n        ids.add(cid)\n        if not isinstance(item[\"body\"], dict) or not item[\"body\"].get(\"messages\"): raise ValueError(\"Supply actual text messages\")\n        supplied_model = item[\"body\"].get(\"model\")\n        if supplied_model is not None and supplied_model not in ['mistralai/mistral-medium-3.1:batch', 'mistralai/mistral-medium-3.1']: raise ValueError(\"body.model must be an exact documented caller or wire ID\")\n    return {\"endpoint\":\"/v1/chat/completions\", \"model\":\"mistralai/mistral-medium-3.1:batch\", \"requests\":items}\n\nif __name__ == \"__main__\":\n    material = os.environ.get(\"AILOOT_BATCH_REQUESTS_JSONL\", \"\")\n    if not material: raise SystemExit(\"Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file\")\n    body = prepare_requests(material)\n    key = os.environ.get(\"AILOOT_API_KEY\", \"\")\n    if not key: raise SystemExit(\"Set AILOOT_API_KEY\")\n    request = Request(\"https://api.ailoot.ai/v1/batches\", data=json.dumps(body, ensure_ascii=False).encode(\"utf-8\"), headers={\"Authorization\":\"Bearer \" + key, \"Content-Type\":\"application/json\"}, method=\"POST\")\n    with urlopen(request) as response:\n        raw = response.read()\n        Path(\"batch-create-response.json\").write_bytes(raw)\n        print(raw.decode(\"utf-8\"))\n",
            "label": "Python HTTP · actual customer JSONL",
            "language": "python"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nBATCH_OPERATION_ID=\"$(python3 - <<'PY_ID'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nresponse = json.loads(Path(\"batch-create-response.json\").read_text(encoding=\"utf-8\"))\noperation = response.get(\"id\")\nif not isinstance(operation, str) or not operation: raise SystemExit(\"No actual original operation ID; preserve the response and do not resubmit\")\nprint(quote(operation, safe=\"\"))\nPY_ID\n)\"\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o batch-status-response.json\n",
            "label": "curl · original operation status",
            "language": "bash"
          },
          {
            "code": "import json\nfrom pathlib import Path\nraw = Path(\"batch-status-response.json\").read_bytes()\nresponse = json.loads(raw)\nif response.get(\"status\") != \"completed\":\n    raise SystemExit(\"Keep the original operation; read its status without resubmitting\")\nresults = response.get(\"results\")\nif not isinstance(results, list) or not results:\n    raise SystemExit(\"Preserve the original response; completed results are missing\")\nPath(\"batch-results.jsonl\").write_text(\"\".join(json.dumps(item, ensure_ascii=False) + \"\\n\" for item in results), encoding=\"utf-8\")\n# Preserve batch-status-response.json with aggregate usage and every result/error.\n",
            "label": "Python · save every completed result",
            "language": "python"
          }
        ],
        "family": "batch",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "batches",
        "hints": [
          "Read your actual request items before submission; inline requests are required.",
          "Keep the returned operation ID and every result. Never replay an unknown submission."
        ],
        "http": "POST",
        "in": 0.4,
        "input": [
          "text"
        ],
        "label": "Μαζική επεξεργασία",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": 2,
        "output": [
          "text"
        ],
        "path": "/v1/batches",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          },
          {
            "label": "Explicit cache pricing",
            "value": "Not enabled",
            "when": "When explicit cache is requested"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "mistralai/mistral-medium-3.1:batch",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/batches/{operation_id}"
        ],
        "tiers": [
          {
            "cache_read": 0.04,
            "cache_read_multiplier": null,
            "cache_write": null,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 0.4,
            "input_multiplier": null,
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "out": 2,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.002000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000002",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.00004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.00000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    }
  ],
  "model_id": "mistralai/mistral-medium-3.1:batch",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "f772bf198044d54ef596eac83ec5133ac7593b8b977bb1e67446c2d69672a508",
    "input_html_sha256": "2707941790edb116bc643e20eaabe0e33a0195deab4439ffecec887321063285",
    "private_audit_sha256": "ff59b8213667ece0fdcb51ffa442b930099e7a9a79e0dc2f1617be690de7cb78",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/el/mistralai-mistral-medium-3-1-u003a-batch/",
    "description": "Το Mistral Medium 3.1 είναι μοντέλο κειμένου και εικόνας για απαντήσεις συνομιλίας, ερωτήσεις εγγράφων και δομημένη εξαγωγή. Το πλαίσιο 128 χιλ. token σύμφωνα με τον κατασκευαστή και οι αναφερόμενες δυνατότητες κλήσης συναρτήσεων, προβλεπόμενης εξόδου και προθέματος υποστηρίζουν εξηγήσεις βασισμένες σε πηγές και στοχευμένες ροές επεξεργασίας.",
    "locale": "el",
    "md_url": "https://ailoot.ai/models/el/mistralai-mistral-medium-3-1-u003a-batch/index.md",
    "title": "Mistral: Mistral Medium 3.1 (batch) — Ailoot",
    "url": "https://ailoot.ai/models/el/mistralai-mistral-medium-3-1-u003a-batch/"
  },
  "rawModel": {
    "about": "Το Mistral Medium 3.1 είναι πολυτροπική έκδοση της Mistral AI για κειμενική και οπτική κατανόηση. Ο κατασκευαστής περιγράφει αυτή την αναθεώρηση ως βελτίωση του τόνου και της απόδοσης στη σειρά Medium 3. Δέχεται κείμενο και εικόνες και παράγει κείμενο: εξήγηση, απάντηση εγγράφου, δομημένη εγγραφή ή προτεινόμενη κλήση συνάρτησης. Το σταθερό αναγνωριστικό του κατασκευαστή για αυτή την έκδοση είναι mistral-medium-2508.\n\nΣυμφραζόμενα και συγκεκριμένη έκδοση\n\nΗ σελίδα του μοντέλου τεκμηριώνει παράθυρο συμφραζομένων 128 χιλ. token. Χρησιμοποιήστε το για να κρατάτε μαζί σχετικά αποσπάσματα πηγής, στοιχεία εικόνας, τη συνομιλία και την εργασία χρήστη. Προσδιορίστε τους ρόλους των εγγράφων και την ερώτηση προς απάντηση πριν δώσετε μεγάλη συλλογή. Τα μεγάλα συμφραζόμενα μπορούν να υποστηρίζουν μια εστιασμένη σύγκριση, ενώ το τελικό παραδοτέο παραμένει σύντομος πίνακας ή αναθεωρημένη ενότητα.\n\nΤο Medium 3.1 διατηρεί τις δικές του προδιαγραφές. Το πλαίσιο 256 χιλ. token, η πυκνή αρχιτεκτονική 128 δισ. παραμέτρων και οι ρυθμιζόμενες λειτουργίες υβριδικής συλλογιστικής που περιγράφονται για το Medium 3.5 δεν πρέπει να αποδίδονται σε αυτή την καταχώριση. Η σελίδα 3.1 δεν παρέχει πλήθος παραμέτρων ή ξεχωριστό μέγιστο μήκος απάντησης που θα μπορούσε να υποκατασταθεί με ασφάλεια από το μεταγενέστερο μοντέλο.\n\nΔομημένη έξοδος και συναρτήσεις\n\nΟ κατασκευαστής αναφέρει δομημένες εξόδους, κλήση συναρτήσεων και προβλεπόμενες εξόδους στις δυνατότητες αυτής της έκδοσης. Για εργασία δομημένης εξαγωγής, ορίστε τα υποχρεωτικά πεδία, τους αναμενόμενους τύπους και τον χειρισμό πληροφοριών που απουσιάζουν από την πηγή. Μια εγγραφή μπορεί να περιέχει το αναγνωριστικό εγγράφου, την εξαγόμενη δήλωση, τη θέση πηγής της και το ερώτημα που παραμένει. Ζητήστε μόνο την εγγραφή όταν θα την αναλύσει πρόγραμμα ή κρατήστε χωριστή μια εξήγηση σε πεζό κείμενο όταν κάποιος πρέπει να εξετάσει την ερμηνεία.\n\nΗ κοινή τεκμηρίωση δομημένης εξόδου της Mistral διακρίνει τη λειτουργία JSON από προσαρμοσμένο σχήμα. Η λειτουργία JSON απαιτεί ρητή οδηγία για την επιθυμητή μορφή JSON, ενώ η προσαρμοσμένη διαδρομή ορίζει πιο συγκεκριμένη δομή. Πρόκειται για μορφοποίηση του αποτελέσματος κειμένου και όχι για νέα τροπικότητα περιεχομένου ή εξωτερική ενέργεια.\n\nΓια συναρτήσεις, η εφαρμογή ορίζει τη διαθέσιμη λειτουργία και τα ορίσματα, το μοντέλο επιλέγει κατάλληλη κλήση και προετοιμάζει τιμές, και η εφαρμογή την εκτελεί. Το αποτέλεσμά της γίνεται κατόπιν πληροφορία για την επόμενη απάντηση. Ένας βοηθός εγγράφων μπορεί να χρησιμοποιεί αναζήτηση για δεδομένα αναφοράς που λείπουν, αλλά μόνο αν η περιβάλλουσα εφαρμογή παρέχει αυτή την αναζήτηση και επιστρέφει το πραγματικό αποτέλεσμά της. Κρατήστε την προτεινόμενη κλήση και τα επιστρεφόμενα δεδομένα συνδεδεμένα μεταξύ τους.\n\nΠροβλεπόμενες αλλαγές και προθέματα απάντησης\n\nΟι προβλεπόμενες έξοδοι είναι χρήσιμες όταν το μεγαλύτερο μέρος του επιθυμητού αποτελέσματος είναι ήδη γνωστό, όπως σε έγγραφο ή αρχείο κώδικα που χρειάζεται περιορισμένη αλλαγή. Δώστε το υπάρχον περιεχόμενο και περιγράψτε την αλλαγή με ακρίβεια, συμπεριλαμβάνοντας τι πρέπει να παραμείνει αμετάβλητο. Ένα αίτημα μπορεί να ενημερώνει την ορολογία μιας ενότητας ή να αντικαθιστά μία λεπτομέρεια υλοποίησης, διατηρώντας το υπόλοιπο έγγραφο. Η πρόβλεψη περιέχει αναμενόμενο περιεχόμενο εξόδου και όχι ολοκληρωμένη αλλαγή εφαρμοσμένη σε αρχείο.\n\nΗ σελίδα του μοντέλου αναφέρει επίσης συνέχιση προθέματος απάντησης. Στην τεκμηρίωση συνομιλίας του κατασκευαστή, ένα πρόθεμα παρέχει γνωστή αρχή για την απόκριση του βοηθού, μετά την οποία συνεχίζεται η παραγωγή. Μια γνωστή αρχή και ένα προβλεπόμενο σώμα επιλύουν διαφορετικά προβλήματα προετοιμασίας. Η ομαδική επεξεργασία και οι διεπαφές πράκτορα ή συνομιλίας είναι επίσης χαρακτηριστικά ροής εργασίας και όχι ξεχωριστές εκδόσεις εικόνας, ήχου ή συλλογιστικής του Medium 3.1.\n\nΕρωτήσεις εγγράφων και οπτικού υλικού\n\nΗ αναφερόμενη ροή document-QnA συνδυάζει κείμενο, δομή και μορφοποίηση προετοιμασμένα με OCR με ανάλυση γλωσσικού μοντέλου. Ρωτήστε για τη συγκεκριμένη προϋπόθεση, το απόσπασμα ή τη σχέση που απαιτεί η εργασία. Μια σύγκριση μπορεί να προσδιορίζει τα έγγραφα πηγής και να ζητά κοινές δηλώσεις, συγκρούσεις και άλυτες λεπτομέρειες, διατηρώντας τη θέση πηγής δίπλα σε κάθε εύρημα.\n\nΟ οδηγός όρασης του κατασκευαστή περιλαμβάνει ρητά το Medium 3.1. Μια άμεση οπτική ερώτηση μπορεί να παρέχει ευανάγνωστο γράφημα, εικόνα εγγράφου ή στιγμιότυπο οθόνης και να ρωτά ποια ορατά στοιχεία στηρίζουν ένα συμπέρασμα. Διατηρήστε άξονες, μονάδες, ετικέτες και το πλαίσιο γύρω από ένα περικομμένο πεδίο. Αν δίνονται πολλές εικόνες, προσδιορίστε τη σειρά και τον ρόλο τους αντί να αφήνετε το μοντέλο να συμπεράνει ποια είναι το πρωτότυπο, η αναθεώρηση ή η αναφορά.\n\nΓια παράδειγμα, συνδυάστε μια γραπτή απαίτηση διαδικασίας με στιγμιότυπο οθόνης και ζητήστε πίνακα ορατών αντιστοιχιών, διαφορών και ερωτημάτων που απαιτούν περισσότερες πληροφορίες. Μια άλλη εργασία μπορεί να παρέχει δύο εκδόσεις εγγράφου και να ζητά αναθεωρημένο απόσπασμα που διατηρεί τις κοινές προϋποθέσεις τους, επιλύοντας μια κατονομασμένη ασυνέπεια. Αυτές είναι προτεινόμενες εφαρμογές των τεκμηριωμένων δυνατοτήτων όρασης, εγγράφων και επεξεργασίας, με το απαιτούμενο αποτέλεσμα καθορισμένο εκ των προτέρων.\n\nΠροετοιμασία του τελικού παραδοτέου\n\nΔώστε στον βοηθό σαφή ρόλο, το υλικό πηγής που πρέπει να χρησιμοποιεί και τη μορφή απάντησης. Κρατήστε τους σταθερούς κανόνες απόκρισης διακριτούς από το εξεταζόμενο έγγραφο και δηλώστε την τελική γλώσσα και την ορολογία. Μια χρήσιμη απόκριση μπορεί να διαχωρίζει ένα εξαγόμενο γεγονός, την πηγή του και μια ερμηνεία, καθιστώντας την ευκολότερη στον έλεγχο από μία ενιαία σύνοψη.\n\nΤο τεκμηριωμένο αποτέλεσμα παραμένει κείμενο. Εξωτερικά εργαλεία, αλλαγές αρχείων και περαιτέρω επεξεργασία εγγράφων ανήκουν στην εφαρμογή που συνδέεται με τη συνομιλία. Διατηρήστε την ονομασμένη έκδοση Medium 3.1 και το πλαίσιο 128 χιλ. token και ζητήστε την εξήγηση, τη δομημένη εγγραφή ή τη στοχευμένη αναθεώρηση που χρειάζεται πραγματικά το επόμενο βήμα.",
    "alias_of": null,
    "aliases": [],
    "author": "Mistral",
    "capabilities": {
      "context_length": 131072,
      "manufacturer_input": [
        "text",
        "image",
        "file"
      ],
      "manufacturer_output": [
        "text"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.002000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000002",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ],
        "summary": "Πλήρης τιμολόγηση της διαμόρφωσης στις λεπτομέρειες."
      }
    ],
    "ctx": null,
    "formats": [
      "batches"
    ],
    "id": "mistralai/mistral-medium-3.1:batch",
    "input": [
      "text"
    ],
    "kind": "text",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": 0.04,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Preserve full JSON and every result; provider real IDs are only read from actual returned responses.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "Μη έγκυρος τεκμηριωμένος ενσωματωμένος φάκελος, διπλότυπα κλειδιά, ταυτότητα στοιχείου ή σύγκρουση με τις ρυθμισμένες δυνατότητες του μοντέλου.",
                "http_status": 400,
                "recovery": "Διορθώστε τα υποδεικνυόμενα πεδία πριν από οποιαδήποτε νέα υποβολή.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Μη έγκυρο κλειδί API.",
                "http_status": 401,
                "recovery": "Χρησιμοποιήστε το εξουσιοδοτημένο κλειδί Ailoot.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Η ομάδα μαζικής επεξεργασίας δεν είναι διαθέσιμη.",
                "http_status": 403,
                "recovery": "Ελέγξτε τα δικαιώματα πρόσβασης του κλειδιού/της ομάδας.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Η μαζική επεξεργασία χρεώνεται στο υπόλοιπο· η δημιουργία μέσω συνδρομής απορρίπτεται.",
                "http_status": 422,
                "recovery": "Χρησιμοποιήστε την εξουσιοδοτημένη ομάδα που χρεώνεται στο υπόλοιπο.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Δεν μπορεί να υπολογιστεί προσφορά κόστους για την είσοδο της μαζικής εργασίας.",
                "http_status": 422,
                "recovery": "Διατηρήστε την απόκριση· χρησιμοποιήστε την τεκμηριωμένη είσοδο της οικογένειας API.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Το ποσό δέσμευσης για τη μαζική επεξεργασία δεν είναι διαθέσιμο.",
                "http_status": 402,
                "recovery": "Επιλύστε το ζήτημα αποδοχής πριν από ένα νέο αίτημα.",
                "type": "billing_error"
              },
              {
                "code": null,
                "condition": "Η τιμή της μεθόδου μαζικής επεξεργασίας/οι εγγενείς τιμές δεν είναι διαθέσιμες.",
                "http_status": 503,
                "recovery": "Διατηρήστε την απόκριση· μην αντικαθιστάτε τις τιμές.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Η ακριβής διαδρομή του προμηθευτή δεν είναι διαθέσιμη.",
                "http_status": 503,
                "recovery": "Διατηρήστε την απόκριση για τη διόρθωση της διαδρομής.",
                "type": "api_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Το αρχικό αποτέλεσμα χρειάζεται έλεγχο· X-Should-Retry:false.",
                "http_status": 503,
                "recovery": "Διατηρήστε το αρχικό operation_id/id και διαβάστε την κατάστασή του· μην επαναλάβετε ποτέ το αρχικό POST.",
                "type": null
              },
              {
                "code": "not_found",
                "condition": "Η λειτουργία κατάστασης της μαζικής εργασίας δεν υπάρχει ή ανήκει σε άλλη ταυτότητα.",
                "http_status": 404,
                "recovery": "Χρησιμοποιήστε το ακριβές αρχικό id και τον ίδιο χρήστη, το ίδιο κλειδί και την ίδια ομάδα.",
                "type": null
              }
            ],
            "example_body": {
              "endpoint": "/v1/chat/completions",
              "model": "mistralai/mistral-medium-3.1:batch",
              "requests": [
                {
                  "body": {
                    "max_tokens": 16,
                    "messages": [
                      {
                        "content": "Hello!",
                        "role": "user"
                      }
                    ]
                  },
                  "custom_id": "req-0001"
                }
              ]
            },
            "input_constraints": [
              "Use the exact shown :batch model ID.",
              "Each custom_id must be nonempty and unique within the batch.",
              "Keep requests last in the serialized body; duplicate JSON keys are rejected.",
              "Each body.model is omitted or equals the exact batch caller or its documented base ID.",
              "Per-item provider, service_tier and input_type are outside this batch profile.",
              "stream is omitted or false.",
              "Supply text messages for this Chat batch profile; image/audio/file/video objects, hosted tools and cache-control fields are outside this profile.",
              "If body.model is present, use only the exact caller or wire ID listed here; no suffix conversion is needed.",
              "For google/ wire IDs, all items use an identical response_format."
            ],
            "outputs": {
              "all_results": "Διατηρήστε ολόκληρο το αρχικό JSON κατάστασης, κάθε result/custom_id και ολόκληρο το σώμα της απόκρισης ή του σφάλματος. Αποθηκεύστε τα ολοκληρωμένα results[] ως JSONL χωρίς φιλτράρισμα.",
              "enclosing_family": "batch",
              "family": "text",
              "fields": [
                {
                  "name": "results[].custom_id",
                  "type": "string"
                },
                {
                  "name": "results[].response.body.choices[].message.content",
                  "type": "string|null"
                },
                {
                  "name": "results[].error",
                  "type": "object|null"
                },
                {
                  "name": "usage",
                  "type": "object|null"
                },
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "endpoint",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "request_counts",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "results[].id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "results[].response.status_code",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "results[].response.request_id",
                  "type": "string"
                }
              ],
              "format": "Ενσωματωμένο JSON στο results[].response.body"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "/v1/chat/completions"
                ],
                "enum_known": true,
                "name": "endpoint",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mistralai/mistral-medium-3.1:batch"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "requests",
                "required": true,
                "type": "batch_item[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "requests[].custom_id",
                "required": true,
                "type": "string",
                "unique_within_batch": true
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "requests[].body.messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "24h"
                ],
                "enum_known": true,
                "name": "completion_window",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mistralai/mistral-medium-3.1:batch",
                  "mistralai/mistral-medium-3.1"
                ],
                "enum_known": true,
                "name": "requests[].body.model",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  [
                    "mistral"
                  ]
                ],
                "enum_known": true,
                "name": "provider.only",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  null
                ],
                "enum_known": true,
                "name": "provider.allow_fallbacks",
                "required": false,
                "type": "boolean|null"
              }
            ],
            "provider_policy": {
              "allow_fallbacks": false,
              "configured_only": [
                "mistral"
              ],
              "per_item_override": false,
              "when_omitted": "Current Source injects the exact persisted declaration before fresh submission."
            },
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "completion_window": {
                  "enum": [
                    "24h"
                  ],
                  "type": "string"
                },
                "endpoint": {
                  "enum": [
                    "/v1/chat/completions"
                  ],
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "mistralai/mistral-medium-3.1:batch"
                  ],
                  "type": "string"
                },
                "provider": {
                  "additionalProperties": false,
                  "properties": {
                    "allow_fallbacks": {
                      "enum": [
                        false,
                        null
                      ],
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "only": {
                      "enum": [
                        [
                          "mistral"
                        ]
                      ],
                      "items": {
                        "enum": [
                          "mistral"
                        ],
                        "type": "string"
                      },
                      "maxItems": 1,
                      "minItems": 1,
                      "type": "array"
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "requests": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "body": {
                        "additionalProperties": true,
                        "properties": {
                          "max_tokens": {
                            "minimum": 1,
                            "type": "integer"
                          },
                          "messages": {
                            "items": {
                              "properties": {
                                "content": {
                                  "type": "string"
                                },
                                "role": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "role",
                                "content"
                              ],
                              "type": "object"
                            },
                            "minItems": 1,
                            "type": "array"
                          },
                          "model": {
                            "enum": [
                              "mistralai/mistral-medium-3.1:batch",
                              "mistralai/mistral-medium-3.1"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "messages"
                        ],
                        "type": "object"
                      },
                      "custom_id": {
                        "minLength": 1,
                        "type": "string"
                      }
                    },
                    "required": [
                      "custom_id",
                      "body"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                }
              },
              "required": [
                "endpoint",
                "model",
                "requests"
              ],
              "type": "object"
            },
            "schema_template": {
              "endpoint": "/v1/chat/completions",
              "model": "mistralai/mistral-medium-3.1:batch",
              "requests": [
                {
                  "body": {
                    "max_tokens": 16,
                    "messages": [
                      {
                        "content": "Hello!",
                        "role": "user"
                      }
                    ]
                  },
                  "custom_id": "req-0001"
                }
              ]
            },
            "unsupported": [
              "Files/input_file_id batch upload workflow",
              "active cancel route",
              "public batch list/delete/result-download route",
              "model-name-derived capability or weights equivalence"
            ]
          },
          "input": {
            "content_type": "application/json",
            "file_material": "Ο καλών μπορεί να διαβάσει το πραγματικό υλικό UTF-8 JSONL τοπικά στον πίνακα requests[]. Δεν χρησιμοποιείται παράμετρος purpose για μεταφόρτωση, input_file_id ή αναφορά σε αρχείο. Αν το υλικό του πελάτη λείπει ή είναι κενό, η προετοιμασία σταματά πριν από το POST.",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "provider.only",
              "provider.allow_fallbacks",
              "completion_window"
            ],
            "representation": "Ενσωματωμένος πίνακας requests[]· κάθε στοιχείο έχει custom_id και body",
            "request_endpoint_profile": "/v1/chat/completions",
            "required": [
              "endpoint",
              "model",
              "requests"
            ],
            "schema_scope": "Σώματα αιτημάτων Text Chat Completions στον τεκμηριωμένο ενσωματωμένο φάκελο Batch.",
            "serialization_order": [
              "endpoint",
              "model",
              "provider (αν παρέχεται)",
              "completion_window (αν παρέχεται)",
              "requests στο τέλος"
            ]
          },
          "lifecycle": {
            "cancel": null,
            "create": {
              "accepted_status": 202,
              "http": "POST",
              "path": "/v1/batches"
            },
            "delete": null,
            "file_upload": null,
            "mode": "asynchronous",
            "observed_status_values": [
              "validating",
              "in_progress",
              "finalizing",
              "completed",
              "failed",
              "expired",
              "cancelling",
              "cancelled"
            ],
            "owned_results": {
              "behavior": "Completed results are saved as owned JSONL, read back byte-for-byte and registered in the existing media library before publication after settlement. Status returns inline results; no separate Batch download route is added.",
              "format": "application/x-ndjson",
              "public_url_field_in_status": null
            },
            "status": {
              "http": "GET",
              "id_source": "Το πραγματικό response.id της αρχικής απόκρισης δημιουργίας· ο ίδιος χρήστης, το ίδιο κλειδί και η ίδια ομάδα",
              "path": "/v1/batches/{operation_id}"
            },
            "terminal": [
              "completed",
              "failed",
              "expired",
              "cancelled"
            ],
            "unknown": "Διατηρήστε το αρχικό ID της λειτουργίας. Η απόκριση 503 result_pending_check περιέχει X-Should-Retry:false· μην υποβάλετε ποτέ ξανά μια αρχική μαζική εργασία με άγνωστη έκβαση."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/batches"
          },
          "output": {
            "all_results": "Preserve the full original status JSON, every result/custom_id and complete response or error body. Save completed results[] as JSONL without filtering.",
            "family": "batch",
            "format": "JSON; completed results[] are returned inline and can be saved as JSONL."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Βασικές χρεώσεις ανά token",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Επίπεδο 1 βάσει μήκους αιτήματος",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json\nfrom pathlib import Path\nbody=json.loads('{\"endpoint\":\"/v1/chat/completions\",\"model\":\"mistralai/mistral-medium-3.1:batch\",\"requests\":[{\"custom_id\":\"req-0001\",\"body\":{\"messages\":[{\"role\":\"user\",\"content\":\"Hello!\"}],\"max_tokens\":16}}]}')\nPath(\"batch-request.json\").write_text(json.dumps(body,ensure_ascii=False),encoding=\"utf-8\")\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json\n",
            "label": "curl · retained fixture",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\nfrom urllib.request import Request, urlopen\n\ndef prepare_requests(customer_path):\n    path = Path(customer_path)\n    if not path.is_file(): raise ValueError(\"Customer JSONL file is missing\")\n    items = [json.loads(line) for line in path.read_text(encoding=\"utf-8\").splitlines() if line.strip()]\n    if not items: raise ValueError(\"Customer JSONL contains no requests\")\n    ids = set()\n    for item in items:\n        if set(item) != {\"custom_id\", \"body\"}: raise ValueError(\"Each item needs custom_id and body\")\n        cid = item[\"custom_id\"]\n        if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError(\"custom_id must be nonempty and unique\")\n        ids.add(cid)\n        if not isinstance(item[\"body\"], dict) or not item[\"body\"].get(\"messages\"): raise ValueError(\"Supply actual text messages\")\n        supplied_model = item[\"body\"].get(\"model\")\n        if supplied_model is not None and supplied_model not in ['mistralai/mistral-medium-3.1:batch', 'mistralai/mistral-medium-3.1']: raise ValueError(\"body.model must be an exact documented caller or wire ID\")\n    return {\"endpoint\":\"/v1/chat/completions\", \"model\":\"mistralai/mistral-medium-3.1:batch\", \"requests\":items}\n\nif __name__ == \"__main__\":\n    material = os.environ.get(\"AILOOT_BATCH_REQUESTS_JSONL\", \"\")\n    if not material: raise SystemExit(\"Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file\")\n    body = prepare_requests(material)\n    key = os.environ.get(\"AILOOT_API_KEY\", \"\")\n    if not key: raise SystemExit(\"Set AILOOT_API_KEY\")\n    request = Request(\"https://api.ailoot.ai/v1/batches\", data=json.dumps(body, ensure_ascii=False).encode(\"utf-8\"), headers={\"Authorization\":\"Bearer \" + key, \"Content-Type\":\"application/json\"}, method=\"POST\")\n    with urlopen(request) as response:\n        raw = response.read()\n        Path(\"batch-create-response.json\").write_bytes(raw)\n        print(raw.decode(\"utf-8\"))\n",
            "label": "Python HTTP · actual customer JSONL",
            "language": "python"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nBATCH_OPERATION_ID=\"$(python3 - <<'PY_ID'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nresponse = json.loads(Path(\"batch-create-response.json\").read_text(encoding=\"utf-8\"))\noperation = response.get(\"id\")\nif not isinstance(operation, str) or not operation: raise SystemExit(\"No actual original operation ID; preserve the response and do not resubmit\")\nprint(quote(operation, safe=\"\"))\nPY_ID\n)\"\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o batch-status-response.json\n",
            "label": "curl · original operation status",
            "language": "bash"
          },
          {
            "code": "import json\nfrom pathlib import Path\nraw = Path(\"batch-status-response.json\").read_bytes()\nresponse = json.loads(raw)\nif response.get(\"status\") != \"completed\":\n    raise SystemExit(\"Keep the original operation; read its status without resubmitting\")\nresults = response.get(\"results\")\nif not isinstance(results, list) or not results:\n    raise SystemExit(\"Preserve the original response; completed results are missing\")\nPath(\"batch-results.jsonl\").write_text(\"\".join(json.dumps(item, ensure_ascii=False) + \"\\n\" for item in results), encoding=\"utf-8\")\n# Preserve batch-status-response.json with aggregate usage and every result/error.\n",
            "label": "Python · save every completed result",
            "language": "python"
          }
        ],
        "family": "batch",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "batches",
        "hints": [
          "Read your actual request items before submission; inline requests are required.",
          "Keep the returned operation ID and every result. Never replay an unknown submission."
        ],
        "http": "POST",
        "in": 0.4,
        "input": [
          "text"
        ],
        "label": "Μαζική επεξεργασία",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": 2,
        "output": [
          "text"
        ],
        "path": "/v1/batches",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          },
          {
            "label": "Explicit cache pricing",
            "value": "Not enabled",
            "when": "When explicit cache is requested"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "mistralai/mistral-medium-3.1:batch",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/batches/{operation_id}"
        ],
        "tiers": [
          {
            "cache_read": 0.04,
            "cache_read_multiplier": null,
            "cache_write": null,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 0.4,
            "input_multiplier": null,
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "out": 2,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.002000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000002",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.00004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.00000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "mistralai/mistral-medium-3.1:batch",
        "request_model_id": "mistralai/mistral-medium-3.1:batch",
        "route_label": "Ultra"
      }
    ],
    "name": "Mistral: Mistral Medium 3.1 (batch)",
    "price": {
      "in": 0.4,
      "in_label": null,
      "out": 2,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.4,
      "sort_out": 2,
      "varies": true
    },
    "short": "Το Mistral Medium 3.1 είναι μοντέλο κειμένου και εικόνας για απαντήσεις συνομιλίας, ερωτήσεις εγγράφων και δομημένη εξαγωγή. Το πλαίσιο 128 χιλ. token σύμφωνα με τον κατασκευαστή και οι αναφερόμενες δυνατότητες κλήσης συναρτήσεων, προβλεπόμενης εξόδου και προθέματος υποστηρίζουν εξηγήσεις βασισμένες σε πηγές και στοχευμένες ροές επεξεργασίας."
  },
  "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": "Το Mistral Medium 3.1 είναι μοντέλο κειμένου και εικόνας για απαντήσεις συνομιλίας, ερωτήσεις εγγράφων και δομημένη εξαγωγή. Το πλαίσιο 128 χιλ. token σύμφωνα με τον κατασκευαστή και οι αναφερόμενες δυνατότητες κλήσης συναρτήσεων, προβλεπόμενης εξόδου και προθέματος υποστηρίζουν εξηγήσεις βασισμένες σε πηγές και στοχευμένες ροές επεξεργασίας.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "f5cc849ea7964be33317ccf2c1b51e3d22f22bbf8516425902b09590243f3fc7",
    "renderer_sha256": "3ed36f7af4f78822bafbd174fdcaed7b698a18a86efe254253d37f1b098a7566"
  },
  "sourceRevision": "eaef20198423b944361c6e088db5554c7fc2a91a2d73bdd8ccdc6b71565d5ea7"
}
