{
  "aboutHtml": "<p>Το Gemini 3 Pro Preview είναι το προφίλ προεπισκόπησης Gemini 3 Pro της Google για πολυτροπική συλλογιστική και παραγωγή κειμένου. Μπορεί να επεξεργάζεται κείμενο, εικόνες, ήχο, βίντεο και έγγραφα PDF και να επιστρέφει γραπτό αποτέλεσμα. Οι προβλεπόμενες χρήσεις περιλαμβάνουν σύνθετη ανάλυση, προχωρημένο προγραμματισμό, ανάπτυξη αλγορίθμων και εργασίες που συνδυάζουν ένα εκτεταμένο σύνολο πηγών με συγκεκριμένο ερώτημα.</p><h4>Μοντέλο και δομή εισόδου</h4><p>Το Gemini 3 Pro είναι μοντέλο αραιού μείγματος ειδικών, βασισμένο σε transformer, με εγγενή υποστήριξη πολυτροπικής εισόδου. Η αρχιτεκτονική του δρομολογεί κάθε token μέσα από επιλεγμένο υποσύνολο ειδικών. Πρόκειται για χαρακτηριστικό σχεδιασμού του μοντέλου και όχι για ρύθμιση του χρήστη που επιλέγει έναν συγκεκριμένο ειδικό ή καθορίζει μια διαμόρφωση εξυπηρέτησης.</p><p>Προετοιμάστε τις εισόδους με βάση τις πληροφορίες που χρειάζεται η εργασία. Ένα έγγραφο, ένα στιγμιότυπο οθόνης και μια ηχογράφηση μπορούν να παρέχουν διαφορετικά τεκμήρια. Προσδιορίστε τι περιέχει κάθε αρχείο και πώς πρέπει να συμβάλει στην απάντηση. Η έξοδος παραμένει κείμενο· η κατανόηση οπτικού ή προφορικού υλικού δεν μετατρέπει αυτή την προεπισκόπηση σε γεννήτρια εικόνας, ομιλίας ή βίντεο.</p><h4>Πολυτροπική ανάλυση</h4><p>Χρησιμοποιήστε εικόνες για ερωτήματα σχετικά με ορατό περιεχόμενο, ήχο για προφορικές ή ακουστικές πληροφορίες και βίντεο για ακολουθίες των οποίων οι αλλαγές έχουν σημασία στον χρόνο. Συνοδεύστε το ερώτημα με το πραγματικό αρχείο, αντί να το περιγράφετε μόνο από μνήμης. Όταν συγκρίνετε πολλά αρχεία, επισημάνετέ τα καθαρά ώστε η απάντηση να μπορεί να αναφέρεται στη σωστή πηγή.</p><p>Για παράδειγμα, μια ανάθεση ανάλυσης προϊόντος μπορεί να συνδυάζει μια γραπτή προδιαγραφή, ένα στιγμιότυπο της διεπαφής και μια καταγεγραμμένη επίδειξη. Ζητήστε σύγκριση που διαχωρίζει όσα υπόσχεται η προδιαγραφή από όσα είναι ορατά ή ακούγονται στο παρεχόμενο υλικό. Ορίστε το επιθυμητό αποτέλεσμα ως ευρήματα, παρατηρήσεις που τα υποστηρίζουν και εκκρεμή ερωτήματα.</p><p>Για εργασία σε PDF, παρέχετε το έγγραφο και προσδιορίστε τις ενότητες ή τους ισχυρισμούς που θα εξεταστούν. Ένα χρήσιμο ερώτημα ζητά σύγκριση, εξαγωγή ή εξήγηση συνδεδεμένη με την πηγή, αντί να ζητά μόνο μια γενική περίληψη ενός μεγάλου αρχείου.</p><h4>Μεγάλο πλαίσιο και όριο εξόδου</h4><p>Η ακριβής προδιαγραφή της προεπισκόπησης αναφέρει όριο εισόδου 1.048.576 token και όριο εξόδου 65.536 token. Ο κατασκευαστής ορίζει τον Ιανουάριο του 2025 ως χρονικό όριο γνώσεων· παρέχετε νεότερα τεκμήρια όταν το ερώτημα εξαρτάται από μεταγενέστερα γεγονότα ή πληροφορίες. Πρόκειται για διαφορετικά όρια. Ένα μεγάλο σύνολο πηγών μπορεί να διαβαστεί για μια εστιασμένη απάντηση χωρίς να απαιτείται το μοντέλο να αναπαράγει κάθε τμήμα της εισόδου.</p><p>Οργανώστε το εκτεταμένο υλικό ώστε να διακρίνεται η δομή του: τίτλοι εγγράφων, όρια ενοτήτων, διαδρομές κώδικα και το ερώτημα στο οποίο πρέπει να απαντά η έξοδος. Διατηρήστε τις σχετικές εξαιρέσεις και τους ορισμούς κοντά στο περιεχόμενο που προσδιορίζουν. Αν μια εργασία χρειάζεται μεγάλη έκθεση, ορίστε τις ενότητές της και τα τεκμήρια που αναμένονται σε καθεμία.</p><p>Ένα μεγάλο παράθυρο πλαισίου δεν εγγυάται ότι κάθε λεπτομέρεια θα λάβει την ίδια προσοχή ή ότι κάθε συμπέρασμα θα είναι σωστό. Η Google αναγνωρίζει επίσης πιθανή υποβάθμιση σε συνομιλίες πολλών γύρων· επανεξετάζετε σημαντικά γεγονότα των πηγών και επαναχρησιμοποιούμενο πλαίσιο καθώς εξελίσσεται η συζήτηση. Ελέγξτε την απάντηση ως προς τα συγκεκριμένα αποσπάσματα ή αρχεία που στηρίζουν τους σημαντικούς ισχυρισμούς της.</p><h4>Προγραμματισμός και ανάπτυξη αλγορίθμων</h4><p>Οι προβλεπόμενες χρήσεις του παραγωγού περιλαμβάνουν προχωρημένο προγραμματισμό και αλγοριθμική εργασία. Παρέχετε τον σχετικό κώδικα, τις παραδοχές για το περιβάλλον, την παρατηρούμενη αστοχία και την αναμενόμενη συμπεριφορά. Για εργασία σε αλγόριθμο, ορίστε την είσοδο, την επιθυμητή έξοδο και συνθήκες όπως η ταξινόμηση, οι διπλότυπες εγγραφές ή τα μη έγκυρα δεδομένα.</p><p>Μια χρήσιμη ανάθεση εντοπισμού σφαλμάτων συνδυάζει την είσοδο που αποτυγχάνει και το σφάλμα με το μικρότερο σχετικό τμήμα κώδικα. Ζητήστε διάγνωση και εστιασμένη αλλαγή και, στη συνέχεια, εξετάστε αν η προτεινόμενη αλλαγή αντιμετωπίζει την αναφερθείσα συμπεριφορά. Ο παραγόμενος κώδικας και ο ισχυρισμός ότι θα πρέπει να λειτουργεί διαφέρουν από μια υλοποίηση που έχει εκτελεστεί και επαληθευτεί.</p><p>Για ένα ευρύτερο ερώτημα αποθετηρίου, αξιοποιήστε το όριο εισόδου για να παρέχετε τα απαραίτητα αρχεία με σαφείς ετικέτες διαδρομών. Δηλώστε αν το επιθυμητό παραδοτέο είναι εξήγηση, προτεινόμενη ενημέρωση κώδικα ή ανάλυση εναλλακτικών, ώστε το αποτέλεσμα να έχει συγκεκριμένο σκοπό.</p><h4>Εργαλεία, πηγές και δομημένα αποτελέσματα</h4><p>Η προδιαγραφή του παραγωγού για την προεπισκόπηση υποστηρίζει κλήση συναρτήσεων, εκτέλεση κώδικα, αναζήτηση αρχείων, τεκμηρίωση μέσω αναζήτησης και πλαίσιο URL. Αυτές οι δυνατότητες έχουν διακριτούς ρόλους. Μια κλήση συνάρτησης περιγράφει ενέργεια προς εκτέλεση από μια εφαρμογή· στη συνέχεια, ένα αποτέλεσμα εργαλείου παρέχει τεκμήρια για το επόμενο βήμα του μοντέλου. Η εκτέλεση κώδικα είναι ροή εργασίας εργαλείου και όχι εγγύηση ότι αυθαίρετος παραγόμενος κώδικας εφαρμογής έχει ήδη δοκιμαστεί.</p><p>Η τεκμηρίωση μέσω αναζήτησης και το πλαίσιο URL παρέχουν ροές εργασίας βασισμένες σε πηγές, ενώ η αναζήτηση αρχείων λειτουργεί με προετοιμασμένη συλλογή αρχείων. Διατηρήστε τα αποτελέσματα εργαλείων και τις συσχετίσεις πηγών μαζί με την απάντηση ώστε να μπορεί να ελεγχθεί ένα συμπέρασμα. Σύμφωνα με την προδιαγραφή του, το προφίλ δεν υποστηρίζει χρήση υπολογιστή ή τεκμηρίωση μέσω Maps.</p><p>Η υποστήριξη δομημένης εξόδου μπορεί να εκφράσει ένα αποτέλεσμα σε καθορισμένο σχήμα. Προσδιορίστε τα πεδία και τη σημασία τους πριν από την παραγωγή και ελέγξτε τόσο το περιεχόμενο όσο και τη μορφή. Ένα έγκυρο δομημένο αντικείμενο εξακολουθεί να χρειάζεται πραγματολογικό έλεγχο και έλεγχο ως προς τη συγκεκριμένη εργασία.</p><h4>Συλλογιστική, επαναχρησιμοποίηση και όρια εκδόσεων</h4><p>Η προεπισκόπηση υποστηρίζει λειτουργία σκέψης. Χρησιμοποιήστε σαφή εργασία, σχετικά τεκμήρια και ρητούς περιορισμούς για εργασίες που απαιτούν πολλά βήματα συλλογιστικής. Το αποτέλεσμα πρέπει να εξηγεί τις παραδοχές και το χρήσιμο συμπέρασμα· η κρυφή συλλογιστική ή η ύπαρξη λειτουργίας σκέψης δεν αποτελεί από μόνη της επαλήθευση.</p><p>Ο παραγωγός αναφέρει επίσης υποστήριξη προσωρινής αποθήκευσης και μαζικής επεξεργασίας. Πρόκειται για δυνατότητες επεξεργασίας χωριστές από τις δυνατότητες περιεχομένου του μοντέλου, και η παρουσία τους δεν αποδεικνύει ότι ένα συγκεκριμένο αίτημα αποθηκεύτηκε στην προσωρινή μνήμη ή ότι ένα μαζικό αποτέλεσμα είναι σωστό.</p><p>Διατηρήστε το Gemini 3 Pro Preview διακριτό από τα Gemini 3.1 Pro Preview, Gemini 3 Pro Image και τα προφίλ ήχου ή Live. Η έξοδος αυτής της προεπισκόπησης είναι κείμενο και η προδιαγραφή της δεν περιλαμβάνει παραγωγή εικόνας, παραγωγή ήχου ή λειτουργία Live. Αξιολογήστε την επιστρεφόμενη απάντηση, τον κώδικα ή το δομημένο αποτέλεσμα ως προς το παρεχόμενο σύνολο πηγών και την προβλεπόμενη εργασία.</p>",
  "aboutText": "Το Gemini 3 Pro Preview είναι το προφίλ προεπισκόπησης Gemini 3 Pro της Google για πολυτροπική συλλογιστική και παραγωγή κειμένου. Μπορεί να επεξεργάζεται κείμενο, εικόνες, ήχο, βίντεο και έγγραφα PDF και να επιστρέφει γραπτό αποτέλεσμα. Οι προβλεπόμενες χρήσεις περιλαμβάνουν σύνθετη ανάλυση, προχωρημένο προγραμματισμό, ανάπτυξη αλγορίθμων και εργασίες που συνδυάζουν ένα εκτεταμένο σύνολο πηγών με συγκεκριμένο ερώτημα.\n\n### Μοντέλο και δομή εισόδου\n\nΤο Gemini 3 Pro είναι μοντέλο αραιού μείγματος ειδικών, βασισμένο σε transformer, με εγγενή υποστήριξη πολυτροπικής εισόδου. Η αρχιτεκτονική του δρομολογεί κάθε token μέσα από επιλεγμένο υποσύνολο ειδικών. Πρόκειται για χαρακτηριστικό σχεδιασμού του μοντέλου και όχι για ρύθμιση του χρήστη που επιλέγει έναν συγκεκριμένο ειδικό ή καθορίζει μια διαμόρφωση εξυπηρέτησης.\n\nΠροετοιμάστε τις εισόδους με βάση τις πληροφορίες που χρειάζεται η εργασία. Ένα έγγραφο, ένα στιγμιότυπο οθόνης και μια ηχογράφηση μπορούν να παρέχουν διαφορετικά τεκμήρια. Προσδιορίστε τι περιέχει κάθε αρχείο και πώς πρέπει να συμβάλει στην απάντηση. Η έξοδος παραμένει κείμενο· η κατανόηση οπτικού ή προφορικού υλικού δεν μετατρέπει αυτή την προεπισκόπηση σε γεννήτρια εικόνας, ομιλίας ή βίντεο.\n\n### Πολυτροπική ανάλυση\n\nΧρησιμοποιήστε εικόνες για ερωτήματα σχετικά με ορατό περιεχόμενο, ήχο για προφορικές ή ακουστικές πληροφορίες και βίντεο για ακολουθίες των οποίων οι αλλαγές έχουν σημασία στον χρόνο. Συνοδεύστε το ερώτημα με το πραγματικό αρχείο, αντί να το περιγράφετε μόνο από μνήμης. Όταν συγκρίνετε πολλά αρχεία, επισημάνετέ τα καθαρά ώστε η απάντηση να μπορεί να αναφέρεται στη σωστή πηγή.\n\nΓια παράδειγμα, μια ανάθεση ανάλυσης προϊόντος μπορεί να συνδυάζει μια γραπτή προδιαγραφή, ένα στιγμιότυπο της διεπαφής και μια καταγεγραμμένη επίδειξη. Ζητήστε σύγκριση που διαχωρίζει όσα υπόσχεται η προδιαγραφή από όσα είναι ορατά ή ακούγονται στο παρεχόμενο υλικό. Ορίστε το επιθυμητό αποτέλεσμα ως ευρήματα, παρατηρήσεις που τα υποστηρίζουν και εκκρεμή ερωτήματα.\n\nΓια εργασία σε PDF, παρέχετε το έγγραφο και προσδιορίστε τις ενότητες ή τους ισχυρισμούς που θα εξεταστούν. Ένα χρήσιμο ερώτημα ζητά σύγκριση, εξαγωγή ή εξήγηση συνδεδεμένη με την πηγή, αντί να ζητά μόνο μια γενική περίληψη ενός μεγάλου αρχείου.\n\n### Μεγάλο πλαίσιο και όριο εξόδου\n\nΗ ακριβής προδιαγραφή της προεπισκόπησης αναφέρει όριο εισόδου 1.048.576 token και όριο εξόδου 65.536 token. Ο κατασκευαστής ορίζει τον Ιανουάριο του 2025 ως χρονικό όριο γνώσεων· παρέχετε νεότερα τεκμήρια όταν το ερώτημα εξαρτάται από μεταγενέστερα γεγονότα ή πληροφορίες. Πρόκειται για διαφορετικά όρια. Ένα μεγάλο σύνολο πηγών μπορεί να διαβαστεί για μια εστιασμένη απάντηση χωρίς να απαιτείται το μοντέλο να αναπαράγει κάθε τμήμα της εισόδου.\n\nΟργανώστε το εκτεταμένο υλικό ώστε να διακρίνεται η δομή του: τίτλοι εγγράφων, όρια ενοτήτων, διαδρομές κώδικα και το ερώτημα στο οποίο πρέπει να απαντά η έξοδος. Διατηρήστε τις σχετικές εξαιρέσεις και τους ορισμούς κοντά στο περιεχόμενο που προσδιορίζουν. Αν μια εργασία χρειάζεται μεγάλη έκθεση, ορίστε τις ενότητές της και τα τεκμήρια που αναμένονται σε καθεμία.\n\nΈνα μεγάλο παράθυρο πλαισίου δεν εγγυάται ότι κάθε λεπτομέρεια θα λάβει την ίδια προσοχή ή ότι κάθε συμπέρασμα θα είναι σωστό. Η Google αναγνωρίζει επίσης πιθανή υποβάθμιση σε συνομιλίες πολλών γύρων· επανεξετάζετε σημαντικά γεγονότα των πηγών και επαναχρησιμοποιούμενο πλαίσιο καθώς εξελίσσεται η συζήτηση. Ελέγξτε την απάντηση ως προς τα συγκεκριμένα αποσπάσματα ή αρχεία που στηρίζουν τους σημαντικούς ισχυρισμούς της.\n\n### Προγραμματισμός και ανάπτυξη αλγορίθμων\n\nΟι προβλεπόμενες χρήσεις του παραγωγού περιλαμβάνουν προχωρημένο προγραμματισμό και αλγοριθμική εργασία. Παρέχετε τον σχετικό κώδικα, τις παραδοχές για το περιβάλλον, την παρατηρούμενη αστοχία και την αναμενόμενη συμπεριφορά. Για εργασία σε αλγόριθμο, ορίστε την είσοδο, την επιθυμητή έξοδο και συνθήκες όπως η ταξινόμηση, οι διπλότυπες εγγραφές ή τα μη έγκυρα δεδομένα.\n\nΜια χρήσιμη ανάθεση εντοπισμού σφαλμάτων συνδυάζει την είσοδο που αποτυγχάνει και το σφάλμα με το μικρότερο σχετικό τμήμα κώδικα. Ζητήστε διάγνωση και εστιασμένη αλλαγή και, στη συνέχεια, εξετάστε αν η προτεινόμενη αλλαγή αντιμετωπίζει την αναφερθείσα συμπεριφορά. Ο παραγόμενος κώδικας και ο ισχυρισμός ότι θα πρέπει να λειτουργεί διαφέρουν από μια υλοποίηση που έχει εκτελεστεί και επαληθευτεί.\n\nΓια ένα ευρύτερο ερώτημα αποθετηρίου, αξιοποιήστε το όριο εισόδου για να παρέχετε τα απαραίτητα αρχεία με σαφείς ετικέτες διαδρομών. Δηλώστε αν το επιθυμητό παραδοτέο είναι εξήγηση, προτεινόμενη ενημέρωση κώδικα ή ανάλυση εναλλακτικών, ώστε το αποτέλεσμα να έχει συγκεκριμένο σκοπό.\n\n### Εργαλεία, πηγές και δομημένα αποτελέσματα\n\nΗ προδιαγραφή του παραγωγού για την προεπισκόπηση υποστηρίζει κλήση συναρτήσεων, εκτέλεση κώδικα, αναζήτηση αρχείων, τεκμηρίωση μέσω αναζήτησης και πλαίσιο URL. Αυτές οι δυνατότητες έχουν διακριτούς ρόλους. Μια κλήση συνάρτησης περιγράφει ενέργεια προς εκτέλεση από μια εφαρμογή· στη συνέχεια, ένα αποτέλεσμα εργαλείου παρέχει τεκμήρια για το επόμενο βήμα του μοντέλου. Η εκτέλεση κώδικα είναι ροή εργασίας εργαλείου και όχι εγγύηση ότι αυθαίρετος παραγόμενος κώδικας εφαρμογής έχει ήδη δοκιμαστεί.\n\nΗ τεκμηρίωση μέσω αναζήτησης και το πλαίσιο URL παρέχουν ροές εργασίας βασισμένες σε πηγές, ενώ η αναζήτηση αρχείων λειτουργεί με προετοιμασμένη συλλογή αρχείων. Διατηρήστε τα αποτελέσματα εργαλείων και τις συσχετίσεις πηγών μαζί με την απάντηση ώστε να μπορεί να ελεγχθεί ένα συμπέρασμα. Σύμφωνα με την προδιαγραφή του, το προφίλ δεν υποστηρίζει χρήση υπολογιστή ή τεκμηρίωση μέσω Maps.\n\nΗ υποστήριξη δομημένης εξόδου μπορεί να εκφράσει ένα αποτέλεσμα σε καθορισμένο σχήμα. Προσδιορίστε τα πεδία και τη σημασία τους πριν από την παραγωγή και ελέγξτε τόσο το περιεχόμενο όσο και τη μορφή. Ένα έγκυρο δομημένο αντικείμενο εξακολουθεί να χρειάζεται πραγματολογικό έλεγχο και έλεγχο ως προς τη συγκεκριμένη εργασία.\n\n### Συλλογιστική, επαναχρησιμοποίηση και όρια εκδόσεων\n\nΗ προεπισκόπηση υποστηρίζει λειτουργία σκέψης. Χρησιμοποιήστε σαφή εργασία, σχετικά τεκμήρια και ρητούς περιορισμούς για εργασίες που απαιτούν πολλά βήματα συλλογιστικής. Το αποτέλεσμα πρέπει να εξηγεί τις παραδοχές και το χρήσιμο συμπέρασμα· η κρυφή συλλογιστική ή η ύπαρξη λειτουργίας σκέψης δεν αποτελεί από μόνη της επαλήθευση.\n\nΟ παραγωγός αναφέρει επίσης υποστήριξη προσωρινής αποθήκευσης και μαζικής επεξεργασίας. Πρόκειται για δυνατότητες επεξεργασίας χωριστές από τις δυνατότητες περιεχομένου του μοντέλου, και η παρουσία τους δεν αποδεικνύει ότι ένα συγκεκριμένο αίτημα αποθηκεύτηκε στην προσωρινή μνήμη ή ότι ένα μαζικό αποτέλεσμα είναι σωστό.\n\nΔιατηρήστε το Gemini 3 Pro Preview διακριτό από τα Gemini 3.1 Pro Preview, Gemini 3 Pro Image και τα προφίλ ήχου ή Live. Η έξοδος αυτής της προεπισκόπησης είναι κείμενο και η προδιαγραφή της δεν περιλαμβάνει παραγωγή εικόνας, παραγωγή ήχου ή λειτουργία Live. Αξιολογήστε την επιστρεφόμενη απάντηση, τον κώδικα ή το δομημένο αποτέλεσμα ως προς το παρεχόμενο σύνολο πηγών και την προβλεπόμενη εργασία.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "23ca2dc4ca5ead683d4a3ea0260377f174a4e621c598829cd348d179eb9627ae",
    "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\">gemini-3-pro-preview</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Κλείσιμο\">×</button></div><div class=\"idline\"><span>Άλλα /</span><code>gemini-3-pro-preview</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|chat|/v1/chat/completions|gemini-3-pro-preview\">Chat</button><button type=\"button\" role=\"tab\" tabindex=\"-1\" aria-controls=\"card-method-content\" aria-selected=\"false\" id=\"card-method-tab-1\" data-card-method=\"Ultra|messages|/v1/messages|gemini-3-pro-preview\">Messages</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\">Το Gemini 3 Pro Preview είναι το πολυτροπικό μοντέλο συλλογιστικής της Google για κείμενο, εικόνες, ήχο, βίντεο και PDF, με έξοδο κειμένου. Το μεγάλο όριο εισόδου, οι δυνατότητες προγραμματισμού και οι υποστηριζόμενες ροές εργαλείων το καθιστούν κατάλληλο για λεπτομερή ανάλυση, σύγκριση εγγράφων και εκτέλεση εργασιών βάσει τεκμηρίων.</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>Το Gemini 3 Pro Preview είναι το προφίλ προεπισκόπησης Gemini 3 Pro της Google για πολυτροπική συλλογιστική και παραγωγή κειμένου. Μπορεί να επεξεργάζεται κείμενο, εικόνες, ήχο, βίντεο και έγγραφα PDF και να επιστρέφει γραπτό αποτέλεσμα. Οι προβλεπόμενες χρήσεις περιλαμβάνουν σύνθετη ανάλυση, προχωρημένο προγραμματισμό, ανάπτυξη αλγορίθμων και εργασίες που συνδυάζουν ένα εκτεταμένο σύνολο πηγών με συγκεκριμένο ερώτημα.</p><h4>Μοντέλο και δομή εισόδου</h4><p>Το Gemini 3 Pro είναι μοντέλο αραιού μείγματος ειδικών, βασισμένο σε transformer, με εγγενή υποστήριξη πολυτροπικής εισόδου. Η αρχιτεκτονική του δρομολογεί κάθε token μέσα από επιλεγμένο υποσύνολο ειδικών. Πρόκειται για χαρακτηριστικό σχεδιασμού του μοντέλου και όχι για ρύθμιση του χρήστη που επιλέγει έναν συγκεκριμένο ειδικό ή καθορίζει μια διαμόρφωση εξυπηρέτησης.</p><p>Προετοιμάστε τις εισόδους με βάση τις πληροφορίες που χρειάζεται η εργασία. Ένα έγγραφο, ένα στιγμιότυπο οθόνης και μια ηχογράφηση μπορούν να παρέχουν διαφορετικά τεκμήρια. Προσδιορίστε τι περιέχει κάθε αρχείο και πώς πρέπει να συμβάλει στην απάντηση. Η έξοδος παραμένει κείμενο· η κατανόηση οπτικού ή προφορικού υλικού δεν μετατρέπει αυτή την προεπισκόπηση σε γεννήτρια εικόνας, ομιλίας ή βίντεο.</p><h4>Πολυτροπική ανάλυση</h4><p>Χρησιμοποιήστε εικόνες για ερωτήματα σχετικά με ορατό περιεχόμενο, ήχο για προφορικές ή ακουστικές πληροφορίες και βίντεο για ακολουθίες των οποίων οι αλλαγές έχουν σημασία στον χρόνο. Συνοδεύστε το ερώτημα με το πραγματικό αρχείο, αντί να το περιγράφετε μόνο από μνήμης. Όταν συγκρίνετε πολλά αρχεία, επισημάνετέ τα καθαρά ώστε η απάντηση να μπορεί να αναφέρεται στη σωστή πηγή.</p><p>Για παράδειγμα, μια ανάθεση ανάλυσης προϊόντος μπορεί να συνδυάζει μια γραπτή προδιαγραφή, ένα στιγμιότυπο της διεπαφής και μια καταγεγραμμένη επίδειξη. Ζητήστε σύγκριση που διαχωρίζει όσα υπόσχεται η προδιαγραφή από όσα είναι ορατά ή ακούγονται στο παρεχόμενο υλικό. Ορίστε το επιθυμητό αποτέλεσμα ως ευρήματα, παρατηρήσεις που τα υποστηρίζουν και εκκρεμή ερωτήματα.</p><p>Για εργασία σε PDF, παρέχετε το έγγραφο και προσδιορίστε τις ενότητες ή τους ισχυρισμούς που θα εξεταστούν. Ένα χρήσιμο ερώτημα ζητά σύγκριση, εξαγωγή ή εξήγηση συνδεδεμένη με την πηγή, αντί να ζητά μόνο μια γενική περίληψη ενός μεγάλου αρχείου.</p><h4>Μεγάλο πλαίσιο και όριο εξόδου</h4><p>Η ακριβής προδιαγραφή της προεπισκόπησης αναφέρει όριο εισόδου 1.048.576 token και όριο εξόδου 65.536 token. Ο κατασκευαστής ορίζει τον Ιανουάριο του 2025 ως χρονικό όριο γνώσεων· παρέχετε νεότερα τεκμήρια όταν το ερώτημα εξαρτάται από μεταγενέστερα γεγονότα ή πληροφορίες. Πρόκειται για διαφορετικά όρια. Ένα μεγάλο σύνολο πηγών μπορεί να διαβαστεί για μια εστιασμένη απάντηση χωρίς να απαιτείται το μοντέλο να αναπαράγει κάθε τμήμα της εισόδου.</p><p>Οργανώστε το εκτεταμένο υλικό ώστε να διακρίνεται η δομή του: τίτλοι εγγράφων, όρια ενοτήτων, διαδρομές κώδικα και το ερώτημα στο οποίο πρέπει να απαντά η έξοδος. Διατηρήστε τις σχετικές εξαιρέσεις και τους ορισμούς κοντά στο περιεχόμενο που προσδιορίζουν. Αν μια εργασία χρειάζεται μεγάλη έκθεση, ορίστε τις ενότητές της και τα τεκμήρια που αναμένονται σε καθεμία.</p><p>Ένα μεγάλο παράθυρο πλαισίου δεν εγγυάται ότι κάθε λεπτομέρεια θα λάβει την ίδια προσοχή ή ότι κάθε συμπέρασμα θα είναι σωστό. Η Google αναγνωρίζει επίσης πιθανή υποβάθμιση σε συνομιλίες πολλών γύρων· επανεξετάζετε σημαντικά γεγονότα των πηγών και επαναχρησιμοποιούμενο πλαίσιο καθώς εξελίσσεται η συζήτηση. Ελέγξτε την απάντηση ως προς τα συγκεκριμένα αποσπάσματα ή αρχεία που στηρίζουν τους σημαντικούς ισχυρισμούς της.</p><h4>Προγραμματισμός και ανάπτυξη αλγορίθμων</h4><p>Οι προβλεπόμενες χρήσεις του παραγωγού περιλαμβάνουν προχωρημένο προγραμματισμό και αλγοριθμική εργασία. Παρέχετε τον σχετικό κώδικα, τις παραδοχές για το περιβάλλον, την παρατηρούμενη αστοχία και την αναμενόμενη συμπεριφορά. Για εργασία σε αλγόριθμο, ορίστε την είσοδο, την επιθυμητή έξοδο και συνθήκες όπως η ταξινόμηση, οι διπλότυπες εγγραφές ή τα μη έγκυρα δεδομένα.</p><p>Μια χρήσιμη ανάθεση εντοπισμού σφαλμάτων συνδυάζει την είσοδο που αποτυγχάνει και το σφάλμα με το μικρότερο σχετικό τμήμα κώδικα. Ζητήστε διάγνωση και εστιασμένη αλλαγή και, στη συνέχεια, εξετάστε αν η προτεινόμενη αλλαγή αντιμετωπίζει την αναφερθείσα συμπεριφορά. Ο παραγόμενος κώδικας και ο ισχυρισμός ότι θα πρέπει να λειτουργεί διαφέρουν από μια υλοποίηση που έχει εκτελεστεί και επαληθευτεί.</p><p>Για ένα ευρύτερο ερώτημα αποθετηρίου, αξιοποιήστε το όριο εισόδου για να παρέχετε τα απαραίτητα αρχεία με σαφείς ετικέτες διαδρομών. Δηλώστε αν το επιθυμητό παραδοτέο είναι εξήγηση, προτεινόμενη ενημέρωση κώδικα ή ανάλυση εναλλακτικών, ώστε το αποτέλεσμα να έχει συγκεκριμένο σκοπό.</p><h4>Εργαλεία, πηγές και δομημένα αποτελέσματα</h4><p>Η προδιαγραφή του παραγωγού για την προεπισκόπηση υποστηρίζει κλήση συναρτήσεων, εκτέλεση κώδικα, αναζήτηση αρχείων, τεκμηρίωση μέσω αναζήτησης και πλαίσιο URL. Αυτές οι δυνατότητες έχουν διακριτούς ρόλους. Μια κλήση συνάρτησης περιγράφει ενέργεια προς εκτέλεση από μια εφαρμογή· στη συνέχεια, ένα αποτέλεσμα εργαλείου παρέχει τεκμήρια για το επόμενο βήμα του μοντέλου. Η εκτέλεση κώδικα είναι ροή εργασίας εργαλείου και όχι εγγύηση ότι αυθαίρετος παραγόμενος κώδικας εφαρμογής έχει ήδη δοκιμαστεί.</p><p>Η τεκμηρίωση μέσω αναζήτησης και το πλαίσιο URL παρέχουν ροές εργασίας βασισμένες σε πηγές, ενώ η αναζήτηση αρχείων λειτουργεί με προετοιμασμένη συλλογή αρχείων. Διατηρήστε τα αποτελέσματα εργαλείων και τις συσχετίσεις πηγών μαζί με την απάντηση ώστε να μπορεί να ελεγχθεί ένα συμπέρασμα. Σύμφωνα με την προδιαγραφή του, το προφίλ δεν υποστηρίζει χρήση υπολογιστή ή τεκμηρίωση μέσω Maps.</p><p>Η υποστήριξη δομημένης εξόδου μπορεί να εκφράσει ένα αποτέλεσμα σε καθορισμένο σχήμα. Προσδιορίστε τα πεδία και τη σημασία τους πριν από την παραγωγή και ελέγξτε τόσο το περιεχόμενο όσο και τη μορφή. Ένα έγκυρο δομημένο αντικείμενο εξακολουθεί να χρειάζεται πραγματολογικό έλεγχο και έλεγχο ως προς τη συγκεκριμένη εργασία.</p><h4>Συλλογιστική, επαναχρησιμοποίηση και όρια εκδόσεων</h4><p>Η προεπισκόπηση υποστηρίζει λειτουργία σκέψης. Χρησιμοποιήστε σαφή εργασία, σχετικά τεκμήρια και ρητούς περιορισμούς για εργασίες που απαιτούν πολλά βήματα συλλογιστικής. Το αποτέλεσμα πρέπει να εξηγεί τις παραδοχές και το χρήσιμο συμπέρασμα· η κρυφή συλλογιστική ή η ύπαρξη λειτουργίας σκέψης δεν αποτελεί από μόνη της επαλήθευση.</p><p>Ο παραγωγός αναφέρει επίσης υποστήριξη προσωρινής αποθήκευσης και μαζικής επεξεργασίας. Πρόκειται για δυνατότητες επεξεργασίας χωριστές από τις δυνατότητες περιεχομένου του μοντέλου, και η παρουσία τους δεν αποδεικνύει ότι ένα συγκεκριμένο αίτημα αποθηκεύτηκε στην προσωρινή μνήμη ή ότι ένα μαζικό αποτέλεσμα είναι σωστό.</p><p>Διατηρήστε το Gemini 3 Pro Preview διακριτό από τα Gemini 3.1 Pro Preview, Gemini 3 Pro Image και τα προφίλ ήχου ή Live. Η έξοδος αυτής της προεπισκόπησης είναι κείμενο και η προδιαγραφή της δεν περιλαμβάνει παραγωγή εικόνας, παραγωγή ήχου ή λειτουργία Live. Αξιολογήστε την επιστρεφόμενη απάντηση, τον κώδικα ή το δομημένο αποτέλεσμα ως προς το παρεχόμενο σύνολο πηγών και την προβλεπόμενη εργασία.</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 · OpenAI Chat</b> <code>POST /v1/chat/completions</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 ή SSE</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Πεδίο</th><th>Τύπος</th><th>Απαίτηση</th><th>Τιμές και όρια</th><th>Προεπιλογή</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>gemini-3-pro-preview</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\">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><div>Ελάχιστο πλήθος στοιχείων: 1</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">messages[].role</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 class=\"note-s\">Εξαρτάται από το μοντέλο</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\">messages[].content</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>Εφαρμόζεται όταν: Συνομιλία κειμένου</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>boolean</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=\"known\"><span class=\"card-cell-label\">Προεπιλογή</span>false</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Συνδυασμοί υλικών εισόδου</summary><p class=\"note-s\"><b>Κείμενο</b> · Κείμενο UTF8</p><p class=\"note-s\"><code>messages[].content</code></p></details><details class=\"note-s\" data-method-contract><summary>Παράμετροι και κύκλος ζωής μεθόδου</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Παράμετρος</th><th>Σύμβαση</th></tr></thead><tbody><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>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>model, messages</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>messages</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>Πίνακας μηνυμάτων με δομή role/content</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 που εισάγεται ως αυτούσιο κείμενο· δεν συνάγεται ID αρχείου</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>stream</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>control_scope</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>Συνομιλία κειμένου· το stream είναι λογική τιμή και έχει προεπιλογή false.</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>output_modalities</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>hosted_operations</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>false</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>multimodal_input_binding</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>null</td></tr></tbody></table></div><p>Εναλλακτικά ονόματα μεθόδου: <code>/chat/completions</code></p><p>Κύκλος ζωής: <code>synchronous_or_streamed</code></p><p class=\"note-s\">Στείλτε το ακριβές ID μοντέλου μαζί με το messages.</p><p class=\"note-s\">Το μήκος συμφραζομένων δεν είναι ανώτατο όριο εξόδου.</p><p class=\"note-s\">Ένα αρχείο κειμένου μπορεί να παρέχει αυτούσιο κείμενο· οι είσοδοι εικόνας/ήχου/αντικειμένων αρχείων χρειάζονται ακριβή αντιστοίχιση.</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><div class=\"tw\" data-pricing-profiles><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>Βασικές χρεώσεις ανά token</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>Βασική χρέωση</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Είσοδος · Token εισόδου</span> <b>$0.004</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Έξοδος · Token εξόδου</span> <b>$0.024</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Ανάγνωση από την κρυφή μνήμη</span> <b>$0</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Εγγραφή στην κρυφή μνήμη</span> <b>$0</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 · OpenAI Chat</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-1387-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1387-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-1387-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1387-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python SDK</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-1387-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1387-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,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;:&quot;gemini-3-pro-preview&quot;,&quot;messages&quot;:[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;hello&quot;}],&quot;stream&quot;:false}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&quot;result.json&quot;).read_text())\nfor x in r.get(&quot;choices&quot;,[]):\n    if x.get(&quot;message&quot;,{}).get(&quot;content&quot;): print(x[&quot;message&quot;][&quot;content&quot;])\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1387-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1387-tab-1\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\n\nif not os.environ.get(&quot;AILOOT_API_KEY&quot;, &quot;&quot;).strip(): raise SystemExit(&quot;Set AILOOT_API_KEY before making a request&quot;)\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nresult=client.chat.completions.create(model=&quot;gemini-3-pro-preview&quot;, messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;hello&quot;}], stream=False)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=&quot;result&quot;):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + &quot;.json&quot;).write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=&quot;utf-8&quot;)\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b&quot;-_&quot;, validate=True)\n        ext = &quot;png&quot; if raw.startswith(b&quot;\\x89PNG\\r\\n\\x1a\\n&quot;) else &quot;jpg&quot; if raw.startswith(b&quot;\\xff\\xd8&quot;) else &quot;webp&quot; if raw[:4] == b&quot;RIFF&quot; and raw[8:12] == b&quot;WEBP&quot; else suffix\n        file = Path(stem + &quot;-&quot; + label + &quot;.&quot; + ext)\n        file.write_bytes(raw)\n        print(&quot;Saved&quot;, file)\n    for index, block in enumerate(data.get(&quot;content&quot;) or []):\n        print(&quot;Content&quot;, index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(&quot;choices&quot;) or []:\n        print(&quot;Choice&quot;, choice.get(&quot;index&quot;), json.dumps(choice.get(&quot;message&quot;, choice.get(&quot;delta&quot;, {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(&quot;output&quot;) or []):\n        print(&quot;Output&quot;, index, json.dumps(item, ensure_ascii=False))\n        if item.get(&quot;type&quot;) == &quot;image_generation_call&quot; and item.get(&quot;result&quot;):\n            save_blob(item[&quot;result&quot;], item.get(&quot;output_format&quot;) or &quot;bin&quot;, &quot;output-&quot; + str(index))\n    for ci, candidate in enumerate(data.get(&quot;candidates&quot;) or []):\n        for pi, part in enumerate((candidate.get(&quot;content&quot;) or {}).get(&quot;parts&quot;) or []):\n            print(&quot;Candidate/part&quot;, ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(&quot;inlineData&quot;) or part.get(&quot;inline_data&quot;)\n            if blob and blob.get(&quot;data&quot;):\n                mime = blob.get(&quot;mimeType&quot;) or blob.get(&quot;mime_type&quot;)\n                suffix = {&quot;image/png&quot;:&quot;png&quot;, &quot;image/jpeg&quot;:&quot;jpg&quot;, &quot;image/webp&quot;:&quot;webp&quot;, &quot;audio/wav&quot;:&quot;wav&quot;, &quot;audio/mpeg&quot;:&quot;mp3&quot;, &quot;video/mp4&quot;:&quot;mp4&quot;}.get(mime, &quot;bin&quot;)\n                save_blob(blob[&quot;data&quot;], suffix, &quot;candidate-&quot; + str(ci) + &quot;-part-&quot; + str(pi))\n\nsave_result(result.to_dict(mode=&quot;json&quot;))\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Λήψη και αποθήκευση αποτελεσμάτων</h3><h4>Ailoot Ultra · OpenAI Chat</h4><p class=\"note-s\">json ή SSE</p><div class=\"card-result-process\" data-all-results><h5>Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα</h5><p class=\"note-s\">Διατηρήστε κάθε πλήρη απάντηση, αρχείο και τμήμα περιεχομένου που επιστρέφεται.</p><p class=\"note-s\">Διατηρήστε κάθε επιλογή και το περιεχόμενο/τις κλήσεις εργαλείων/το περιεχόμενο συλλογιστικής της. Στο SSE συνθέστε τις διαφορικές ενημερώσεις ανά δείκτη επιλογής/εργαλείου και κρατήστε την τελική αιτία τερματισμού και τα στοιχεία χρήσης.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Αν χρειάζεται έλεγχος της αρχικής απάντησης</h5><p class=\"note-s\">Διατηρήστε τα ID αιτήματος/απάντησης και τις κεφαλίδες. Δεν παρέχεται γενικό URL ανάκτησης εργασιών κειμένου.</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\">choices[].index</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\">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\">choices[].message.tool_calls</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>tool_call[]</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">choices[].message.reasoning_content</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\">choices[].message.reasoning_details</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>object|array</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">choices[].finish_reason</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\">usage</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Σφάλματα και επόμενα βήματα</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Απάντηση</th><th>Συνθήκη</th><th>Επόμενο βήμα</th></tr></thead><tbody><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Μη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Εναλλακτικά ονόματα</h3><h4>Εναλλακτικά ονόματα μοντέλου</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=gemini-3-pro-preview&amp;route=Ultra&amp;caller=gemini-3-pro-preview&amp;fmt=chat\"><code>gemini-3-pro-preview</code></a></span></p><h4>Εναλλακτικές διαδρομές μεθόδων</h4><p class=\"note-s\"><code>/chat/completions</code></p><h4>Σχετικά ID μοντέλων</h4><p class=\"note-s\"><a href=\"#m=gemini-3-pro-preview&amp;route=Ultra&amp;caller=gemini-3-pro-preview&amp;fmt=chat\"><code>gemini-3-pro-preview</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "gemini-3-pro-preview",
        "fmt": "chat",
        "http": "POST",
        "path": "/v1/chat/completions",
        "request_model_id": "gemini-3-pro-preview",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|chat|/v1/chat/completions|gemini-3-pro-preview",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every choice and its content/tool calls/reasoning. In SSE assemble deltas by choice/tool index, retain the final finish reason and usage.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "Μη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου",
                "http_status": 400,
                "recovery": "Διορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [
              "Model context is not an output cap.",
              "Send the conversation as text messages. Stream must be a boolean; omitted stream defaults to false."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Διατηρήστε τα ID αιτήματος/απάντησης και τις κεφαλίδες. Δεν παρέχεται γενικό URL ανάκτησης εργασιών κειμένου."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content",
                "required_material": "Κείμενο UTF8"
              }
            ],
            "operation_modes": [
              "conversation"
            ],
            "outputs": {
              "all_results": "Διατηρήστε κάθε επιλογή και το περιεχόμενο/τις κλήσεις εργαλείων/το περιεχόμενο συλλογιστικής της. Στο SSE συνθέστε τις διαφορικές ενημερώσεις ανά δείκτη επιλογής/εργαλείου και κρατήστε την τελική αιτία τερματισμού και τα στοιχεία χρήσης.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "choices[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "choices[].message.content",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "choices[].message.tool_calls",
                  "type": "tool_call[]"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_content",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_details",
                  "type": "object|array"
                },
                {
                  "description": null,
                  "name": "choices[].finish_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json ή SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "gemini-3-pro-preview"
                ],
                "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": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": false,
                "type": "string",
                "when": "Συνομιλία κειμένου"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Text conversation at the exact model ID and method path.",
            "unsupported": [
              "additional models/models list",
              "plugins",
              "route",
              "hosted tools; ordinary client function tools remain separate",
              "non-text output modalities",
              "provider.options overrides",
              "one-hour prompt-cache TTL"
            ]
          },
          "hints": [
            "Στείλτε το ακριβές ID μοντέλου μαζί με το messages.",
            "Το μήκος συμφραζομένων δεν είναι ανώτατο όριο εξόδου.",
            "Ένα αρχείο κειμένου μπορεί να παρέχει αυτούσιο κείμενο· οι είσοδοι εικόνας/ήχου/αντικειμένων αρχείων χρειάζονται ακριβή αντιστοίχιση."
          ],
          "input": {
            "content_type": "application/json",
            "control_scope": "Συνομιλία κειμένου· το stream είναι λογική τιμή και έχει προεπιλογή false.",
            "file_material": "πραγματικό έγγραφο UTF-8 που εισάγεται ως αυτούσιο κείμενο· δεν συνάγεται ID αρχείου",
            "hosted_operations": false,
            "material_types": [
              "text"
            ],
            "messages": "Πίνακας μηνυμάτων με δομή role/content",
            "multimodal_input_binding": null,
            "optional_controls": [
              "stream"
            ],
            "output_modalities": [
              "text"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_or_streamed",
            "unknown": "preserve original request id; no generic chat job retrieval path"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [
            "/chat/completions"
          ],
          "operation_modes": [
            "text_chat"
          ],
          "output": {
            "content": "choices[].message.content or stream delta",
            "family": "text",
            "format": "json or supported SSE",
            "tool_calls": "retain actual returned function calls"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Βασικές χρεώσεις ανά token",
            "units": [
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000004",
                "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.024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000024",
                "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",
                "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",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "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,os\nfrom pathlib import Path\np=json.loads('{\"model\":\"gemini-3-pro-preview\",\"messages\":[{\"role\":\"user\",\"content\":\"hello\"}],\"stream\":false}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"choices\",[]):\n    if x.get(\"message\",{}).get(\"content\"): print(x[\"message\"][\"content\"])\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.chat.completions.create(model=\"gemini-3-pro-preview\", messages=[{\"role\":\"user\",\"content\":\"hello\"}], stream=False)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nsave_result(result.to_dict(mode=\"json\"))\n",
            "label": "Python SDK · all choices",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "chat",
        "hints": [
          "Send exact model ID with messages.",
          "Context length is not an output cap.",
          "A text file may supply literal text; image/audio/file-object inputs need exact binding."
        ],
        "http": "POST",
        "in": 4,
        "input": [
          "text"
        ],
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/chat/completions"
        ],
        "out": 24,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "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.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000004",
                "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.024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000024",
                "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",
                "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",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "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": "gemini-3-pro-preview",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000004",
            "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.024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000024",
            "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",
            "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",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "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"
          }
        ]
      }
    },
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">gemini-3-pro-preview</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Κλείσιμο\">×</button></div><div class=\"idline\"><span>Άλλα /</span><code>gemini-3-pro-preview</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=\"-1\" aria-controls=\"card-method-content\" aria-selected=\"false\" id=\"card-method-tab-0\" data-card-method=\"Ultra|chat|/v1/chat/completions|gemini-3-pro-preview\">Chat</button><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-1\" data-card-method=\"Ultra|messages|/v1/messages|gemini-3-pro-preview\">Messages</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-1\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Εισαγωγή</h3><p class=\"mdesc-full\">Το Gemini 3 Pro Preview είναι το πολυτροπικό μοντέλο συλλογιστικής της Google για κείμενο, εικόνες, ήχο, βίντεο και PDF, με έξοδο κειμένου. Το μεγάλο όριο εισόδου, οι δυνατότητες προγραμματισμού και οι υποστηριζόμενες ροές εργαλείων το καθιστούν κατάλληλο για λεπτομερή ανάλυση, σύγκριση εγγράφων και εκτέλεση εργασιών βάσει τεκμηρίων.</p><dl class=\"card-io\" data-card-io><div><dt>Αποδεκτές είσοδοι</dt><dd>Κείμενο</dd></div><div><dt>Αποτελέσματα</dt><dd>json · sse</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>Το Gemini 3 Pro Preview είναι το προφίλ προεπισκόπησης Gemini 3 Pro της Google για πολυτροπική συλλογιστική και παραγωγή κειμένου. Μπορεί να επεξεργάζεται κείμενο, εικόνες, ήχο, βίντεο και έγγραφα PDF και να επιστρέφει γραπτό αποτέλεσμα. Οι προβλεπόμενες χρήσεις περιλαμβάνουν σύνθετη ανάλυση, προχωρημένο προγραμματισμό, ανάπτυξη αλγορίθμων και εργασίες που συνδυάζουν ένα εκτεταμένο σύνολο πηγών με συγκεκριμένο ερώτημα.</p><h4>Μοντέλο και δομή εισόδου</h4><p>Το Gemini 3 Pro είναι μοντέλο αραιού μείγματος ειδικών, βασισμένο σε transformer, με εγγενή υποστήριξη πολυτροπικής εισόδου. Η αρχιτεκτονική του δρομολογεί κάθε token μέσα από επιλεγμένο υποσύνολο ειδικών. Πρόκειται για χαρακτηριστικό σχεδιασμού του μοντέλου και όχι για ρύθμιση του χρήστη που επιλέγει έναν συγκεκριμένο ειδικό ή καθορίζει μια διαμόρφωση εξυπηρέτησης.</p><p>Προετοιμάστε τις εισόδους με βάση τις πληροφορίες που χρειάζεται η εργασία. Ένα έγγραφο, ένα στιγμιότυπο οθόνης και μια ηχογράφηση μπορούν να παρέχουν διαφορετικά τεκμήρια. Προσδιορίστε τι περιέχει κάθε αρχείο και πώς πρέπει να συμβάλει στην απάντηση. Η έξοδος παραμένει κείμενο· η κατανόηση οπτικού ή προφορικού υλικού δεν μετατρέπει αυτή την προεπισκόπηση σε γεννήτρια εικόνας, ομιλίας ή βίντεο.</p><h4>Πολυτροπική ανάλυση</h4><p>Χρησιμοποιήστε εικόνες για ερωτήματα σχετικά με ορατό περιεχόμενο, ήχο για προφορικές ή ακουστικές πληροφορίες και βίντεο για ακολουθίες των οποίων οι αλλαγές έχουν σημασία στον χρόνο. Συνοδεύστε το ερώτημα με το πραγματικό αρχείο, αντί να το περιγράφετε μόνο από μνήμης. Όταν συγκρίνετε πολλά αρχεία, επισημάνετέ τα καθαρά ώστε η απάντηση να μπορεί να αναφέρεται στη σωστή πηγή.</p><p>Για παράδειγμα, μια ανάθεση ανάλυσης προϊόντος μπορεί να συνδυάζει μια γραπτή προδιαγραφή, ένα στιγμιότυπο της διεπαφής και μια καταγεγραμμένη επίδειξη. Ζητήστε σύγκριση που διαχωρίζει όσα υπόσχεται η προδιαγραφή από όσα είναι ορατά ή ακούγονται στο παρεχόμενο υλικό. Ορίστε το επιθυμητό αποτέλεσμα ως ευρήματα, παρατηρήσεις που τα υποστηρίζουν και εκκρεμή ερωτήματα.</p><p>Για εργασία σε PDF, παρέχετε το έγγραφο και προσδιορίστε τις ενότητες ή τους ισχυρισμούς που θα εξεταστούν. Ένα χρήσιμο ερώτημα ζητά σύγκριση, εξαγωγή ή εξήγηση συνδεδεμένη με την πηγή, αντί να ζητά μόνο μια γενική περίληψη ενός μεγάλου αρχείου.</p><h4>Μεγάλο πλαίσιο και όριο εξόδου</h4><p>Η ακριβής προδιαγραφή της προεπισκόπησης αναφέρει όριο εισόδου 1.048.576 token και όριο εξόδου 65.536 token. Ο κατασκευαστής ορίζει τον Ιανουάριο του 2025 ως χρονικό όριο γνώσεων· παρέχετε νεότερα τεκμήρια όταν το ερώτημα εξαρτάται από μεταγενέστερα γεγονότα ή πληροφορίες. Πρόκειται για διαφορετικά όρια. Ένα μεγάλο σύνολο πηγών μπορεί να διαβαστεί για μια εστιασμένη απάντηση χωρίς να απαιτείται το μοντέλο να αναπαράγει κάθε τμήμα της εισόδου.</p><p>Οργανώστε το εκτεταμένο υλικό ώστε να διακρίνεται η δομή του: τίτλοι εγγράφων, όρια ενοτήτων, διαδρομές κώδικα και το ερώτημα στο οποίο πρέπει να απαντά η έξοδος. Διατηρήστε τις σχετικές εξαιρέσεις και τους ορισμούς κοντά στο περιεχόμενο που προσδιορίζουν. Αν μια εργασία χρειάζεται μεγάλη έκθεση, ορίστε τις ενότητές της και τα τεκμήρια που αναμένονται σε καθεμία.</p><p>Ένα μεγάλο παράθυρο πλαισίου δεν εγγυάται ότι κάθε λεπτομέρεια θα λάβει την ίδια προσοχή ή ότι κάθε συμπέρασμα θα είναι σωστό. Η Google αναγνωρίζει επίσης πιθανή υποβάθμιση σε συνομιλίες πολλών γύρων· επανεξετάζετε σημαντικά γεγονότα των πηγών και επαναχρησιμοποιούμενο πλαίσιο καθώς εξελίσσεται η συζήτηση. Ελέγξτε την απάντηση ως προς τα συγκεκριμένα αποσπάσματα ή αρχεία που στηρίζουν τους σημαντικούς ισχυρισμούς της.</p><h4>Προγραμματισμός και ανάπτυξη αλγορίθμων</h4><p>Οι προβλεπόμενες χρήσεις του παραγωγού περιλαμβάνουν προχωρημένο προγραμματισμό και αλγοριθμική εργασία. Παρέχετε τον σχετικό κώδικα, τις παραδοχές για το περιβάλλον, την παρατηρούμενη αστοχία και την αναμενόμενη συμπεριφορά. Για εργασία σε αλγόριθμο, ορίστε την είσοδο, την επιθυμητή έξοδο και συνθήκες όπως η ταξινόμηση, οι διπλότυπες εγγραφές ή τα μη έγκυρα δεδομένα.</p><p>Μια χρήσιμη ανάθεση εντοπισμού σφαλμάτων συνδυάζει την είσοδο που αποτυγχάνει και το σφάλμα με το μικρότερο σχετικό τμήμα κώδικα. Ζητήστε διάγνωση και εστιασμένη αλλαγή και, στη συνέχεια, εξετάστε αν η προτεινόμενη αλλαγή αντιμετωπίζει την αναφερθείσα συμπεριφορά. Ο παραγόμενος κώδικας και ο ισχυρισμός ότι θα πρέπει να λειτουργεί διαφέρουν από μια υλοποίηση που έχει εκτελεστεί και επαληθευτεί.</p><p>Για ένα ευρύτερο ερώτημα αποθετηρίου, αξιοποιήστε το όριο εισόδου για να παρέχετε τα απαραίτητα αρχεία με σαφείς ετικέτες διαδρομών. Δηλώστε αν το επιθυμητό παραδοτέο είναι εξήγηση, προτεινόμενη ενημέρωση κώδικα ή ανάλυση εναλλακτικών, ώστε το αποτέλεσμα να έχει συγκεκριμένο σκοπό.</p><h4>Εργαλεία, πηγές και δομημένα αποτελέσματα</h4><p>Η προδιαγραφή του παραγωγού για την προεπισκόπηση υποστηρίζει κλήση συναρτήσεων, εκτέλεση κώδικα, αναζήτηση αρχείων, τεκμηρίωση μέσω αναζήτησης και πλαίσιο URL. Αυτές οι δυνατότητες έχουν διακριτούς ρόλους. Μια κλήση συνάρτησης περιγράφει ενέργεια προς εκτέλεση από μια εφαρμογή· στη συνέχεια, ένα αποτέλεσμα εργαλείου παρέχει τεκμήρια για το επόμενο βήμα του μοντέλου. Η εκτέλεση κώδικα είναι ροή εργασίας εργαλείου και όχι εγγύηση ότι αυθαίρετος παραγόμενος κώδικας εφαρμογής έχει ήδη δοκιμαστεί.</p><p>Η τεκμηρίωση μέσω αναζήτησης και το πλαίσιο URL παρέχουν ροές εργασίας βασισμένες σε πηγές, ενώ η αναζήτηση αρχείων λειτουργεί με προετοιμασμένη συλλογή αρχείων. Διατηρήστε τα αποτελέσματα εργαλείων και τις συσχετίσεις πηγών μαζί με την απάντηση ώστε να μπορεί να ελεγχθεί ένα συμπέρασμα. Σύμφωνα με την προδιαγραφή του, το προφίλ δεν υποστηρίζει χρήση υπολογιστή ή τεκμηρίωση μέσω Maps.</p><p>Η υποστήριξη δομημένης εξόδου μπορεί να εκφράσει ένα αποτέλεσμα σε καθορισμένο σχήμα. Προσδιορίστε τα πεδία και τη σημασία τους πριν από την παραγωγή και ελέγξτε τόσο το περιεχόμενο όσο και τη μορφή. Ένα έγκυρο δομημένο αντικείμενο εξακολουθεί να χρειάζεται πραγματολογικό έλεγχο και έλεγχο ως προς τη συγκεκριμένη εργασία.</p><h4>Συλλογιστική, επαναχρησιμοποίηση και όρια εκδόσεων</h4><p>Η προεπισκόπηση υποστηρίζει λειτουργία σκέψης. Χρησιμοποιήστε σαφή εργασία, σχετικά τεκμήρια και ρητούς περιορισμούς για εργασίες που απαιτούν πολλά βήματα συλλογιστικής. Το αποτέλεσμα πρέπει να εξηγεί τις παραδοχές και το χρήσιμο συμπέρασμα· η κρυφή συλλογιστική ή η ύπαρξη λειτουργίας σκέψης δεν αποτελεί από μόνη της επαλήθευση.</p><p>Ο παραγωγός αναφέρει επίσης υποστήριξη προσωρινής αποθήκευσης και μαζικής επεξεργασίας. Πρόκειται για δυνατότητες επεξεργασίας χωριστές από τις δυνατότητες περιεχομένου του μοντέλου, και η παρουσία τους δεν αποδεικνύει ότι ένα συγκεκριμένο αίτημα αποθηκεύτηκε στην προσωρινή μνήμη ή ότι ένα μαζικό αποτέλεσμα είναι σωστό.</p><p>Διατηρήστε το Gemini 3 Pro Preview διακριτό από τα Gemini 3.1 Pro Preview, Gemini 3 Pro Image και τα προφίλ ήχου ή Live. Η έξοδος αυτής της προεπισκόπησης είναι κείμενο και η προδιαγραφή της δεν περιλαμβάνει παραγωγή εικόνας, παραγωγή ήχου ή λειτουργία Live. Αξιολογήστε την επιστρεφόμενη απάντηση, τον κώδικα ή το δομημένο αποτέλεσμα ως προς το παρεχόμενο σύνολο πηγών και την προβλεπόμενη εργασία.</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 · Anthropic Messages</b> <code>POST /v1/messages</code></summary><dl class=\"method-capabilities\"><div><dt>Είσοδος</dt><dd><code>text</code></dd></div><div><dt>Έξοδος</dt><dd><code>json</code>, <code>sse</code></dd></div><div><dt>Μορφή εξόδου</dt><dd>JSON ή SSE</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Πεδίο</th><th>Τύπος</th><th>Απαίτηση</th><th>Τιμές και όρια</th><th>Προεπιλογή</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>gemini-3-pro-preview</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\">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\">messages[].role</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>user, assistant</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\">messages[].content</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\">max_tokens</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>integer</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\">stream</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>boolean</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=\"known\"><span class=\"card-cell-label\">Προεπιλογή</span>false</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Συνδυασμοί υλικών εισόδου</summary><p class=\"note-s\"><b>Κείμενο</b> · Κείμενο UTF-8</p><p class=\"note-s\"><code>Συμβολοσειρά messages[].content</code></p></details><details class=\"note-s\" data-method-contract><summary>Παράμετροι και κύκλος ζωής μεθόδου</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Παράμετρος</th><th>Σύμβαση</th></tr></thead><tbody><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>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>model, messages, max_tokens</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>stream</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>text_file_material</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>Διαβάστε το πραγματικό έγγραφο UTF-8 και τοποθετήστε το κείμενό του στην υποδεικνυόμενη συμβολοσειρά εισόδου ή περιεχομένου του μηνύματος.</td></tr></tbody></table></div><p>Κύκλος ζωής: <code>synchronous_or_streamed</code></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><div class=\"tw\" data-pricing-profiles><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>Βασικές χρεώσεις ανά token</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>Βασική χρέωση</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Είσοδος · Token εισόδου</span> <b>$0.004</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Έξοδος · Token εξόδου</span> <b>$0.024</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Ανάγνωση από την κρυφή μνήμη</span> <b>$0</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Εγγραφή στην κρυφή μνήμη</span> <b>$0</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 · Anthropic Messages</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-1388-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1388-panel-0\" aria-selected=\"true\" tabindex=\"0\">Πλήρες ελάχιστο σώμα JSON</button><button class=\"cg-tab\" id=\"model-code-1388-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1388-panel-1\" aria-selected=\"false\" tabindex=\"-1\">curl · χρησιμοποιήστε το έγγραφό σας σε UTF-8</button><button class=\"cg-tab\" id=\"model-code-1388-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1388-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-1388-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1388-tab-0\"><pre data-lang=\"json\"><code>{\n  &quot;model&quot;: &quot;gemini-3-pro-preview&quot;,\n  &quot;max_tokens&quot;: 128,\n  &quot;messages&quot;: [\n    {\n      &quot;role&quot;: &quot;user&quot;,\n      &quot;content&quot;: &quot;Summarize the incident report.&quot;\n    }\n  ],\n  &quot;stream&quot;: false\n}</code></pre></div><div class=\"cg-pane\" id=\"model-code-1388-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1388-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}&quot;\nexport AILOOT_TEXT_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ[&#39;AILOOT_TEXT_FILE&#39;])\nif not source_file.is_file():\n    raise SystemExit(&#39;Set AILOOT_TEXT_FILE to your actual UTF-8 document&#39;)\ntext = source_file.read_text(encoding=&#39;utf-8&#39;)\nif not text.strip():\n    raise SystemExit(&#39;Choose a document containing text&#39;)\npayload = {&#39;model&#39;: &#39;gemini-3-pro-preview&#39;, &#39;max_tokens&#39;: 128, &#39;messages&#39;: [{&#39;role&#39;: &#39;user&#39;, &#39;content&#39;: &#39;Summarize the incident report.&#39;}]}\npayload[&#39;messages&#39;][0][&#39;content&#39;] = &#39;Summarize this material and quote supporting source passages.\\n\\n&#39; + text\nPath(&#39;request.json&#39;).write_text(json.dumps(payload, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H &quot;x-api-key: $AILOOT_API_KEY&quot; -H &#39;anthropic-version: 2023-06-01&#39; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path(&#39;result.json&#39;).read_text(encoding=&#39;utf-8&#39;))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1388-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-1388-tab-2\" hidden><pre data-lang=\"python\"><code>import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ[&#39;AILOOT_TEXT_FILE&#39;])\nif not source_file.is_file():\n    raise SystemExit(&#39;Set AILOOT_TEXT_FILE to your actual UTF-8 document&#39;)\ntext = source_file.read_text(encoding=&#39;utf-8&#39;)\nif not text.strip():\n    raise SystemExit(&#39;Choose a document containing text&#39;)\npayload = {&#39;model&#39;: &#39;gemini-3-pro-preview&#39;, &#39;max_tokens&#39;: 128, &#39;messages&#39;: [{&#39;role&#39;: &#39;user&#39;, &#39;content&#39;: &#39;Summarize the incident report.&#39;}]}\npayload[&#39;messages&#39;][0][&#39;content&#39;] = &#39;Summarize this material and quote supporting source passages.\\n\\n&#39; + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ[&#39;AILOOT_API_KEY&#39;]\nif not api_key.strip():\n    raise SystemExit(&#39;Set AILOOT_API_KEY before making a request&#39;)\nheaders = {&#39;x-api-key&#39;: &#39;PLACEHOLDER_KEY&#39;, &#39;anthropic-version&#39;: &#39;2023-06-01&#39;, &#39;Content-Type&#39;: &#39;application/json&#39;}\nheaders[&#39;x-api-key&#39;] = api_key\nrequest = Request(&#39;https://api.ailoot.ai/v1/messages&#39;, data=json.dumps(payload, ensure_ascii=False).encode(&#39;utf-8&#39;), headers=headers, method=&#39;POST&#39;)\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path(&#39;response-headers.txt&#39;).write_text(str(response.headers), encoding=&#39;utf-8&#39;)\nexcept HTTPError as error:\n    Path(&#39;result.json&#39;).write_bytes(error.read())\n    Path(&#39;response-headers.txt&#39;).write_text(str(error.headers), encoding=&#39;utf-8&#39;)\n    raise\nPath(&#39;result.json&#39;).write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path(&#39;result.json&#39;).read_text(encoding=&#39;utf-8&#39;))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Λήψη και αποθήκευση αποτελεσμάτων</h3><h4>Ailoot Ultra · Anthropic Messages</h4><p class=\"note-s\">JSON ή SSE</p><div class=\"card-result-process\" data-all-results><h5>Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα</h5><p class=\"note-s\">Διατηρήστε κάθε πλήρη απάντηση, αρχείο και τμήμα περιεχομένου που επιστρέφεται.</p><p class=\"note-s\">Διατηρήστε όλα τα μπλοκ περιεχομένου, τις υπογραφές συλλογιστικής και τα πραγματικά ID χρήσης εργαλείων. Συνθέστε όλες τις διαφορικές ενημερώσεις μπλοκ SSE· το πρώτο μπλοκ κειμένου δεν είναι η πλήρης έξοδος.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Αν χρειάζεται έλεγχος της αρχικής απάντησης</h5><p class=\"note-s\">Διατηρήστε τα ID αιτήματος/απάντησης και τις κεφαλίδες. Δεν παρέχεται γενικό URL ανάκτησης εργασιών κειμένου.</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\">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\">content[]</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>text|thinking|tool_use|other content block</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">stop_reason</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\">usage</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Σφάλματα και επόμενα βήματα</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Απάντηση</th><th>Συνθήκη</th><th>Επόμενο βήμα</th></tr></thead><tbody><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Μη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Εναλλακτικά ονόματα</h3><h4>Εναλλακτικά ονόματα μοντέλου</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=gemini-3-pro-preview&amp;route=Ultra&amp;caller=gemini-3-pro-preview&amp;fmt=messages\"><code>gemini-3-pro-preview</code></a></span></p><h4>Εναλλακτικές διαδρομές μεθόδων</h4><p class=\"note-s\"><code>/chat/completions</code></p><h4>Σχετικά ID μοντέλων</h4><p class=\"note-s\"><a href=\"#m=gemini-3-pro-preview&amp;route=Ultra&amp;caller=gemini-3-pro-preview&amp;fmt=messages\"><code>gemini-3-pro-preview</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "gemini-3-pro-preview",
        "fmt": "messages",
        "http": "POST",
        "path": "/v1/messages",
        "request_model_id": "gemini-3-pro-preview",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|messages|/v1/messages|gemini-3-pro-preview",
      "ordinal": 1,
      "rawMethod": {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "headers": [
                "Authorization: Bearer",
                "x-api-key",
                "anthropic-version"
              ],
              "version_example": "2023-06-01"
            },
            "errors": [
              {
                "code": null,
                "condition": "Μη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου",
                "http_status": 400,
                "recovery": "Διορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.",
                "type": "invalid_request_error"
              }
            ],
            "example_body": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "gemini-3-pro-preview",
              "stream": false
            },
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/messages"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Διατηρήστε τα ID αιτήματος/απάντησης και τις κεφαλίδες. Δεν παρέχεται γενικό URL ανάκτησης εργασιών κειμένου."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "Συμβολοσειρά messages[].content",
                "required_material": "Κείμενο UTF-8"
              }
            ],
            "operation_modes": [
              "synchronous_json",
              "streamed_SSE"
            ],
            "outputs": {
              "all_results": "Διατηρήστε όλα τα μπλοκ περιεχομένου, τις υπογραφές συλλογιστικής και τα πραγματικά ID χρήσης εργαλείων. Συνθέστε όλες τις διαφορικές ενημερώσεις μπλοκ SSE· το πρώτο μπλοκ κειμένου δεν είναι η πλήρης έξοδος.",
              "family": "protocol",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "content[]",
                  "type": "text|thinking|tool_use|other content block"
                },
                {
                  "description": null,
                  "name": "stop_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON ή SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "gemini-3-pro-preview"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "user",
                  "assistant"
                ],
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "max_tokens",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Documented current stock Messages bridge; optional model capabilities are separate from this minimal text request.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "max_tokens": {
                  "minimum": 1,
                  "type": "integer"
                },
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "source": {
                                      "oneOf": [
                                        {
                                          "properties": {
                                            "type": {
                                              "const": "url"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "url"
                                          ],
                                          "type": "object"
                                        },
                                        {
                                          "properties": {
                                            "data": {
                                              "type": "string"
                                            },
                                            "media_type": {
                                              "type": "string"
                                            },
                                            "type": {
                                              "const": "base64"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "media_type",
                                            "data"
                                          ],
                                          "type": "object"
                                        }
                                      ]
                                    },
                                    "type": {
                                      "const": "image"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "source"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "enum": [
                          "user",
                          "assistant"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "gemini-3-pro-preview"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages",
                "max_tokens"
              ],
              "type": "object"
            },
            "schema_template": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "gemini-3-pro-preview",
              "stream": false
            },
            "unsupported": [
              "No query API key.",
              "Hosted/server-side tools and model-specific optional controls are not part of this minimal family example."
            ]
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages",
              "max_tokens"
            ],
            "text_file_material": "Διαβάστε το πραγματικό έγγραφο UTF-8 και τοποθετήστε το κείμενό του στην υποδεικνυόμενη συμβολοσειρά εισόδου ή περιεχομένου του μηνύματος."
          },
          "lifecycle": {
            "create": {
              "http": "POST",
              "path": "/v1/messages"
            },
            "job_read": null,
            "mode": "synchronous_or_streamed",
            "unknown": "Keep request/response IDs and headers. No generic text job retrieval URL is supplied."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/messages"
          },
          "output": {
            "all_results": "Keep all content blocks, thinking signatures and actual tool-use IDs. Assemble all SSE block deltas; a first text block is not the complete output.",
            "family": "protocol",
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Βασικές χρεώσεις ανά token",
            "units": [
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000004",
                "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.024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000024",
                "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",
                "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",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "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": "{\n  \"model\": \"gemini-3-pro-preview\",\n  \"max_tokens\": 128,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Summarize the incident report.\"\n    }\n  ],\n  \"stream\": false\n}",
            "label": "Complete minimal JSON body",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'gemini-3-pro-preview', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nPath('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H \"x-api-key: $AILOOT_API_KEY\" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n",
            "label": "curl · use your UTF-8 document",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'gemini-3-pro-preview', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ['AILOOT_API_KEY']\nif not api_key.strip():\n    raise SystemExit('Set AILOOT_API_KEY before making a request')\nheaders = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}\nheaders['x-api-key'] = api_key\nrequest = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')\nexcept HTTPError as error:\n    Path('result.json').write_bytes(error.read())\n    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')\n    raise\nPath('result.json').write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n",
            "label": "Python · save the complete result",
            "language": "python"
          }
        ],
        "family": "anthropic",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "messages",
        "http": "POST",
        "in": 4,
        "input": [
          "text"
        ],
        "label": "Anthropic Messages",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 24,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/messages",
        "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.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000004",
                "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.024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000024",
                "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",
                "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",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "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": "gemini-3-pro-preview",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000004",
            "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.024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000024",
            "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",
            "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",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "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": "gemini-3-pro-preview",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "dd955498e4e416dbfa72c425caa9de9b286b422da369f7b9a241a5b5edf17fe3",
    "input_html_sha256": "b5363173cf71886d324f37c544e5eaa9c5d7db959783ac6acb368748d73863ef",
    "private_audit_sha256": "49d2f7b5a8141675a2758a783d6271e0c77e904aedf19a353520319740f29ac4",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/el/gemini-3-pro-preview/",
    "description": "Το Gemini 3 Pro Preview είναι το πολυτροπικό μοντέλο συλλογιστικής της Google για κείμενο, εικόνες, ήχο, βίντεο και PDF, με έξοδο κειμένου. Το μεγάλο όριο εισόδου, οι δυνατότητες προγραμματισμού και οι υποστηριζόμενες ροές εργαλείων το καθιστούν κατάλληλο για λεπτομερή ανάλυση, σύγκριση εγγράφων και εκτέλεση εργασιών βάσει τεκμηρίων.",
    "locale": "el",
    "md_url": "https://ailoot.ai/models/el/gemini-3-pro-preview/index.md",
    "title": "gemini-3-pro-preview — Ailoot",
    "url": "https://ailoot.ai/models/el/gemini-3-pro-preview/"
  },
  "rawModel": {
    "about": "Το Gemini 3 Pro Preview είναι το προφίλ προεπισκόπησης Gemini 3 Pro της Google για πολυτροπική συλλογιστική και παραγωγή κειμένου. Μπορεί να επεξεργάζεται κείμενο, εικόνες, ήχο, βίντεο και έγγραφα PDF και να επιστρέφει γραπτό αποτέλεσμα. Οι προβλεπόμενες χρήσεις περιλαμβάνουν σύνθετη ανάλυση, προχωρημένο προγραμματισμό, ανάπτυξη αλγορίθμων και εργασίες που συνδυάζουν ένα εκτεταμένο σύνολο πηγών με συγκεκριμένο ερώτημα.\n\n### Μοντέλο και δομή εισόδου\n\nΤο Gemini 3 Pro είναι μοντέλο αραιού μείγματος ειδικών, βασισμένο σε transformer, με εγγενή υποστήριξη πολυτροπικής εισόδου. Η αρχιτεκτονική του δρομολογεί κάθε token μέσα από επιλεγμένο υποσύνολο ειδικών. Πρόκειται για χαρακτηριστικό σχεδιασμού του μοντέλου και όχι για ρύθμιση του χρήστη που επιλέγει έναν συγκεκριμένο ειδικό ή καθορίζει μια διαμόρφωση εξυπηρέτησης.\n\nΠροετοιμάστε τις εισόδους με βάση τις πληροφορίες που χρειάζεται η εργασία. Ένα έγγραφο, ένα στιγμιότυπο οθόνης και μια ηχογράφηση μπορούν να παρέχουν διαφορετικά τεκμήρια. Προσδιορίστε τι περιέχει κάθε αρχείο και πώς πρέπει να συμβάλει στην απάντηση. Η έξοδος παραμένει κείμενο· η κατανόηση οπτικού ή προφορικού υλικού δεν μετατρέπει αυτή την προεπισκόπηση σε γεννήτρια εικόνας, ομιλίας ή βίντεο.\n\n### Πολυτροπική ανάλυση\n\nΧρησιμοποιήστε εικόνες για ερωτήματα σχετικά με ορατό περιεχόμενο, ήχο για προφορικές ή ακουστικές πληροφορίες και βίντεο για ακολουθίες των οποίων οι αλλαγές έχουν σημασία στον χρόνο. Συνοδεύστε το ερώτημα με το πραγματικό αρχείο, αντί να το περιγράφετε μόνο από μνήμης. Όταν συγκρίνετε πολλά αρχεία, επισημάνετέ τα καθαρά ώστε η απάντηση να μπορεί να αναφέρεται στη σωστή πηγή.\n\nΓια παράδειγμα, μια ανάθεση ανάλυσης προϊόντος μπορεί να συνδυάζει μια γραπτή προδιαγραφή, ένα στιγμιότυπο της διεπαφής και μια καταγεγραμμένη επίδειξη. Ζητήστε σύγκριση που διαχωρίζει όσα υπόσχεται η προδιαγραφή από όσα είναι ορατά ή ακούγονται στο παρεχόμενο υλικό. Ορίστε το επιθυμητό αποτέλεσμα ως ευρήματα, παρατηρήσεις που τα υποστηρίζουν και εκκρεμή ερωτήματα.\n\nΓια εργασία σε PDF, παρέχετε το έγγραφο και προσδιορίστε τις ενότητες ή τους ισχυρισμούς που θα εξεταστούν. Ένα χρήσιμο ερώτημα ζητά σύγκριση, εξαγωγή ή εξήγηση συνδεδεμένη με την πηγή, αντί να ζητά μόνο μια γενική περίληψη ενός μεγάλου αρχείου.\n\n### Μεγάλο πλαίσιο και όριο εξόδου\n\nΗ ακριβής προδιαγραφή της προεπισκόπησης αναφέρει όριο εισόδου 1.048.576 token και όριο εξόδου 65.536 token. Ο κατασκευαστής ορίζει τον Ιανουάριο του 2025 ως χρονικό όριο γνώσεων· παρέχετε νεότερα τεκμήρια όταν το ερώτημα εξαρτάται από μεταγενέστερα γεγονότα ή πληροφορίες. Πρόκειται για διαφορετικά όρια. Ένα μεγάλο σύνολο πηγών μπορεί να διαβαστεί για μια εστιασμένη απάντηση χωρίς να απαιτείται το μοντέλο να αναπαράγει κάθε τμήμα της εισόδου.\n\nΟργανώστε το εκτεταμένο υλικό ώστε να διακρίνεται η δομή του: τίτλοι εγγράφων, όρια ενοτήτων, διαδρομές κώδικα και το ερώτημα στο οποίο πρέπει να απαντά η έξοδος. Διατηρήστε τις σχετικές εξαιρέσεις και τους ορισμούς κοντά στο περιεχόμενο που προσδιορίζουν. Αν μια εργασία χρειάζεται μεγάλη έκθεση, ορίστε τις ενότητές της και τα τεκμήρια που αναμένονται σε καθεμία.\n\nΈνα μεγάλο παράθυρο πλαισίου δεν εγγυάται ότι κάθε λεπτομέρεια θα λάβει την ίδια προσοχή ή ότι κάθε συμπέρασμα θα είναι σωστό. Η Google αναγνωρίζει επίσης πιθανή υποβάθμιση σε συνομιλίες πολλών γύρων· επανεξετάζετε σημαντικά γεγονότα των πηγών και επαναχρησιμοποιούμενο πλαίσιο καθώς εξελίσσεται η συζήτηση. Ελέγξτε την απάντηση ως προς τα συγκεκριμένα αποσπάσματα ή αρχεία που στηρίζουν τους σημαντικούς ισχυρισμούς της.\n\n### Προγραμματισμός και ανάπτυξη αλγορίθμων\n\nΟι προβλεπόμενες χρήσεις του παραγωγού περιλαμβάνουν προχωρημένο προγραμματισμό και αλγοριθμική εργασία. Παρέχετε τον σχετικό κώδικα, τις παραδοχές για το περιβάλλον, την παρατηρούμενη αστοχία και την αναμενόμενη συμπεριφορά. Για εργασία σε αλγόριθμο, ορίστε την είσοδο, την επιθυμητή έξοδο και συνθήκες όπως η ταξινόμηση, οι διπλότυπες εγγραφές ή τα μη έγκυρα δεδομένα.\n\nΜια χρήσιμη ανάθεση εντοπισμού σφαλμάτων συνδυάζει την είσοδο που αποτυγχάνει και το σφάλμα με το μικρότερο σχετικό τμήμα κώδικα. Ζητήστε διάγνωση και εστιασμένη αλλαγή και, στη συνέχεια, εξετάστε αν η προτεινόμενη αλλαγή αντιμετωπίζει την αναφερθείσα συμπεριφορά. Ο παραγόμενος κώδικας και ο ισχυρισμός ότι θα πρέπει να λειτουργεί διαφέρουν από μια υλοποίηση που έχει εκτελεστεί και επαληθευτεί.\n\nΓια ένα ευρύτερο ερώτημα αποθετηρίου, αξιοποιήστε το όριο εισόδου για να παρέχετε τα απαραίτητα αρχεία με σαφείς ετικέτες διαδρομών. Δηλώστε αν το επιθυμητό παραδοτέο είναι εξήγηση, προτεινόμενη ενημέρωση κώδικα ή ανάλυση εναλλακτικών, ώστε το αποτέλεσμα να έχει συγκεκριμένο σκοπό.\n\n### Εργαλεία, πηγές και δομημένα αποτελέσματα\n\nΗ προδιαγραφή του παραγωγού για την προεπισκόπηση υποστηρίζει κλήση συναρτήσεων, εκτέλεση κώδικα, αναζήτηση αρχείων, τεκμηρίωση μέσω αναζήτησης και πλαίσιο URL. Αυτές οι δυνατότητες έχουν διακριτούς ρόλους. Μια κλήση συνάρτησης περιγράφει ενέργεια προς εκτέλεση από μια εφαρμογή· στη συνέχεια, ένα αποτέλεσμα εργαλείου παρέχει τεκμήρια για το επόμενο βήμα του μοντέλου. Η εκτέλεση κώδικα είναι ροή εργασίας εργαλείου και όχι εγγύηση ότι αυθαίρετος παραγόμενος κώδικας εφαρμογής έχει ήδη δοκιμαστεί.\n\nΗ τεκμηρίωση μέσω αναζήτησης και το πλαίσιο URL παρέχουν ροές εργασίας βασισμένες σε πηγές, ενώ η αναζήτηση αρχείων λειτουργεί με προετοιμασμένη συλλογή αρχείων. Διατηρήστε τα αποτελέσματα εργαλείων και τις συσχετίσεις πηγών μαζί με την απάντηση ώστε να μπορεί να ελεγχθεί ένα συμπέρασμα. Σύμφωνα με την προδιαγραφή του, το προφίλ δεν υποστηρίζει χρήση υπολογιστή ή τεκμηρίωση μέσω Maps.\n\nΗ υποστήριξη δομημένης εξόδου μπορεί να εκφράσει ένα αποτέλεσμα σε καθορισμένο σχήμα. Προσδιορίστε τα πεδία και τη σημασία τους πριν από την παραγωγή και ελέγξτε τόσο το περιεχόμενο όσο και τη μορφή. Ένα έγκυρο δομημένο αντικείμενο εξακολουθεί να χρειάζεται πραγματολογικό έλεγχο και έλεγχο ως προς τη συγκεκριμένη εργασία.\n\n### Συλλογιστική, επαναχρησιμοποίηση και όρια εκδόσεων\n\nΗ προεπισκόπηση υποστηρίζει λειτουργία σκέψης. Χρησιμοποιήστε σαφή εργασία, σχετικά τεκμήρια και ρητούς περιορισμούς για εργασίες που απαιτούν πολλά βήματα συλλογιστικής. Το αποτέλεσμα πρέπει να εξηγεί τις παραδοχές και το χρήσιμο συμπέρασμα· η κρυφή συλλογιστική ή η ύπαρξη λειτουργίας σκέψης δεν αποτελεί από μόνη της επαλήθευση.\n\nΟ παραγωγός αναφέρει επίσης υποστήριξη προσωρινής αποθήκευσης και μαζικής επεξεργασίας. Πρόκειται για δυνατότητες επεξεργασίας χωριστές από τις δυνατότητες περιεχομένου του μοντέλου, και η παρουσία τους δεν αποδεικνύει ότι ένα συγκεκριμένο αίτημα αποθηκεύτηκε στην προσωρινή μνήμη ή ότι ένα μαζικό αποτέλεσμα είναι σωστό.\n\nΔιατηρήστε το Gemini 3 Pro Preview διακριτό από τα Gemini 3.1 Pro Preview, Gemini 3 Pro Image και τα προφίλ ήχου ή Live. Η έξοδος αυτής της προεπισκόπησης είναι κείμενο και η προδιαγραφή της δεν περιλαμβάνει παραγωγή εικόνας, παραγωγή ήχου ή λειτουργία Live. Αξιολογήστε την επιστρεφόμενη απάντηση, τον κώδικα ή το δομημένο αποτέλεσμα ως προς το παρεχόμενο σύνολο πηγών και την προβλεπόμενη εργασία.",
    "alias_of": null,
    "aliases": [],
    "author": "Other",
    "available": null,
    "canonical_model": "gemini-3-pro-preview",
    "capabilities": {
      "context_length": 1048576,
      "manufacturer_input": [],
      "manufacturer_output": []
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000004",
            "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.024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000024",
            "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": "Πλήρης τιμολόγηση της διαμόρφωσης στις λεπτομέρειες."
      }
    ],
    "category": {
      "category": "Google模型",
      "category_en": "Google",
      "category_jp": ""
    },
    "ctx": null,
    "entity_type": "reference",
    "formats": [
      "chat",
      "messages"
    ],
    "id": "gemini-3-pro-preview",
    "input": [
      "text"
    ],
    "kind": "unresolved_method_or_category",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every choice and its content/tool calls/reasoning. In SSE assemble deltas by choice/tool index, retain the final finish reason and usage.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "Μη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου",
                "http_status": 400,
                "recovery": "Διορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [
              "Model context is not an output cap.",
              "Send the conversation as text messages. Stream must be a boolean; omitted stream defaults to false."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Διατηρήστε τα ID αιτήματος/απάντησης και τις κεφαλίδες. Δεν παρέχεται γενικό URL ανάκτησης εργασιών κειμένου."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content",
                "required_material": "Κείμενο UTF8"
              }
            ],
            "operation_modes": [
              "conversation"
            ],
            "outputs": {
              "all_results": "Διατηρήστε κάθε επιλογή και το περιεχόμενο/τις κλήσεις εργαλείων/το περιεχόμενο συλλογιστικής της. Στο SSE συνθέστε τις διαφορικές ενημερώσεις ανά δείκτη επιλογής/εργαλείου και κρατήστε την τελική αιτία τερματισμού και τα στοιχεία χρήσης.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "choices[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "choices[].message.content",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "choices[].message.tool_calls",
                  "type": "tool_call[]"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_content",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_details",
                  "type": "object|array"
                },
                {
                  "description": null,
                  "name": "choices[].finish_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json ή SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "gemini-3-pro-preview"
                ],
                "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": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": false,
                "type": "string",
                "when": "Συνομιλία κειμένου"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Text conversation at the exact model ID and method path.",
            "unsupported": [
              "additional models/models list",
              "plugins",
              "route",
              "hosted tools; ordinary client function tools remain separate",
              "non-text output modalities",
              "provider.options overrides",
              "one-hour prompt-cache TTL"
            ]
          },
          "hints": [
            "Στείλτε το ακριβές ID μοντέλου μαζί με το messages.",
            "Το μήκος συμφραζομένων δεν είναι ανώτατο όριο εξόδου.",
            "Ένα αρχείο κειμένου μπορεί να παρέχει αυτούσιο κείμενο· οι είσοδοι εικόνας/ήχου/αντικειμένων αρχείων χρειάζονται ακριβή αντιστοίχιση."
          ],
          "input": {
            "content_type": "application/json",
            "control_scope": "Συνομιλία κειμένου· το stream είναι λογική τιμή και έχει προεπιλογή false.",
            "file_material": "πραγματικό έγγραφο UTF-8 που εισάγεται ως αυτούσιο κείμενο· δεν συνάγεται ID αρχείου",
            "hosted_operations": false,
            "material_types": [
              "text"
            ],
            "messages": "Πίνακας μηνυμάτων με δομή role/content",
            "multimodal_input_binding": null,
            "optional_controls": [
              "stream"
            ],
            "output_modalities": [
              "text"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_or_streamed",
            "unknown": "preserve original request id; no generic chat job retrieval path"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [
            "/chat/completions"
          ],
          "operation_modes": [
            "text_chat"
          ],
          "output": {
            "content": "choices[].message.content or stream delta",
            "family": "text",
            "format": "json or supported SSE",
            "tool_calls": "retain actual returned function calls"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Βασικές χρεώσεις ανά token",
            "units": [
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000004",
                "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.024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000024",
                "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",
                "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",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "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,os\nfrom pathlib import Path\np=json.loads('{\"model\":\"gemini-3-pro-preview\",\"messages\":[{\"role\":\"user\",\"content\":\"hello\"}],\"stream\":false}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"choices\",[]):\n    if x.get(\"message\",{}).get(\"content\"): print(x[\"message\"][\"content\"])\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.chat.completions.create(model=\"gemini-3-pro-preview\", messages=[{\"role\":\"user\",\"content\":\"hello\"}], stream=False)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nsave_result(result.to_dict(mode=\"json\"))\n",
            "label": "Python SDK · all choices",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "chat",
        "hints": [
          "Send exact model ID with messages.",
          "Context length is not an output cap.",
          "A text file may supply literal text; image/audio/file-object inputs need exact binding."
        ],
        "http": "POST",
        "in": 4,
        "input": [
          "text"
        ],
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/chat/completions"
        ],
        "out": 24,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "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.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000004",
                "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.024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000024",
                "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",
                "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",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "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": "gemini-3-pro-preview",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000004",
            "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.024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000024",
            "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",
            "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",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "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"
          }
        ]
      },
      {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "headers": [
                "Authorization: Bearer",
                "x-api-key",
                "anthropic-version"
              ],
              "version_example": "2023-06-01"
            },
            "errors": [
              {
                "code": null,
                "condition": "Μη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου",
                "http_status": 400,
                "recovery": "Διορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.",
                "type": "invalid_request_error"
              }
            ],
            "example_body": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "gemini-3-pro-preview",
              "stream": false
            },
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/messages"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Διατηρήστε τα ID αιτήματος/απάντησης και τις κεφαλίδες. Δεν παρέχεται γενικό URL ανάκτησης εργασιών κειμένου."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "Συμβολοσειρά messages[].content",
                "required_material": "Κείμενο UTF-8"
              }
            ],
            "operation_modes": [
              "synchronous_json",
              "streamed_SSE"
            ],
            "outputs": {
              "all_results": "Διατηρήστε όλα τα μπλοκ περιεχομένου, τις υπογραφές συλλογιστικής και τα πραγματικά ID χρήσης εργαλείων. Συνθέστε όλες τις διαφορικές ενημερώσεις μπλοκ SSE· το πρώτο μπλοκ κειμένου δεν είναι η πλήρης έξοδος.",
              "family": "protocol",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "content[]",
                  "type": "text|thinking|tool_use|other content block"
                },
                {
                  "description": null,
                  "name": "stop_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON ή SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "gemini-3-pro-preview"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "user",
                  "assistant"
                ],
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "max_tokens",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Documented current stock Messages bridge; optional model capabilities are separate from this minimal text request.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "max_tokens": {
                  "minimum": 1,
                  "type": "integer"
                },
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "source": {
                                      "oneOf": [
                                        {
                                          "properties": {
                                            "type": {
                                              "const": "url"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "url"
                                          ],
                                          "type": "object"
                                        },
                                        {
                                          "properties": {
                                            "data": {
                                              "type": "string"
                                            },
                                            "media_type": {
                                              "type": "string"
                                            },
                                            "type": {
                                              "const": "base64"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "media_type",
                                            "data"
                                          ],
                                          "type": "object"
                                        }
                                      ]
                                    },
                                    "type": {
                                      "const": "image"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "source"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "enum": [
                          "user",
                          "assistant"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "gemini-3-pro-preview"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages",
                "max_tokens"
              ],
              "type": "object"
            },
            "schema_template": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "gemini-3-pro-preview",
              "stream": false
            },
            "unsupported": [
              "No query API key.",
              "Hosted/server-side tools and model-specific optional controls are not part of this minimal family example."
            ]
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages",
              "max_tokens"
            ],
            "text_file_material": "Διαβάστε το πραγματικό έγγραφο UTF-8 και τοποθετήστε το κείμενό του στην υποδεικνυόμενη συμβολοσειρά εισόδου ή περιεχομένου του μηνύματος."
          },
          "lifecycle": {
            "create": {
              "http": "POST",
              "path": "/v1/messages"
            },
            "job_read": null,
            "mode": "synchronous_or_streamed",
            "unknown": "Keep request/response IDs and headers. No generic text job retrieval URL is supplied."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/messages"
          },
          "output": {
            "all_results": "Keep all content blocks, thinking signatures and actual tool-use IDs. Assemble all SSE block deltas; a first text block is not the complete output.",
            "family": "protocol",
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Βασικές χρεώσεις ανά token",
            "units": [
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000004",
                "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.024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000024",
                "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",
                "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",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "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": "{\n  \"model\": \"gemini-3-pro-preview\",\n  \"max_tokens\": 128,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Summarize the incident report.\"\n    }\n  ],\n  \"stream\": false\n}",
            "label": "Complete minimal JSON body",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'gemini-3-pro-preview', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nPath('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H \"x-api-key: $AILOOT_API_KEY\" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n",
            "label": "curl · use your UTF-8 document",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'gemini-3-pro-preview', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ['AILOOT_API_KEY']\nif not api_key.strip():\n    raise SystemExit('Set AILOOT_API_KEY before making a request')\nheaders = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}\nheaders['x-api-key'] = api_key\nrequest = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')\nexcept HTTPError as error:\n    Path('result.json').write_bytes(error.read())\n    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')\n    raise\nPath('result.json').write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n",
            "label": "Python · save the complete result",
            "language": "python"
          }
        ],
        "family": "anthropic",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "messages",
        "http": "POST",
        "in": 4,
        "input": [
          "text"
        ],
        "label": "Anthropic Messages",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 24,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/messages",
        "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.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000004",
                "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.024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000024",
                "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",
                "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",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "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": "gemini-3-pro-preview",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000004",
            "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.024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000024",
            "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",
            "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",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "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": "gemini-3-pro-preview",
        "request_model_id": "gemini-3-pro-preview",
        "route_label": "Ultra"
      }
    ],
    "name": "gemini-3-pro-preview",
    "price": {
      "in": 4,
      "in_label": null,
      "out": 24,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 4,
      "sort_out": 24,
      "varies": false
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "OpenAI Chat · Base token rates",
        "units": [
          {
            "amount": "0.004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000004",
            "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.024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000024",
            "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",
            "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",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "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": {
          "regime": "base"
        },
        "label": "Anthropic Messages · Base token rates",
        "units": [
          {
            "amount": "0.004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000004",
            "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.024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000024",
            "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",
            "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",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "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"
          }
        ]
      }
    ],
    "public_id": "gemini-3-pro-preview",
    "published_caller_names": [
      "gemini-3-pro-preview"
    ],
    "short": "Το Gemini 3 Pro Preview είναι το πολυτροπικό μοντέλο συλλογιστικής της Google για κείμενο, εικόνες, ήχο, βίντεο και PDF, με έξοδο κειμένου. Το μεγάλο όριο εισόδου, οι δυνατότητες προγραμματισμού και οι υποστηριζόμενες ροές εργαλείων το καθιστούν κατάλληλο για λεπτομερή ανάλυση, σύγκριση εγγράφων και εκτέλεση εργασιών βάσει τεκμηρίων."
  },
  "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
        },
        {
          "contract_json_pointer": "/methods/1/rawMethod/contract",
          "html_json_pointer": "/methods/1/html",
          "method_ordinal": 1
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod",
        "/methods/1/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Το Gemini 3 Pro Preview είναι το πολυτροπικό μοντέλο συλλογιστικής της Google για κείμενο, εικόνες, ήχο, βίντεο και PDF, με έξοδο κειμένου. Το μεγάλο όριο εισόδου, οι δυνατότητες προγραμματισμού και οι υποστηριζόμενες ροές εργαλείων το καθιστούν κατάλληλο για λεπτομερή ανάλυση, σύγκριση εγγράφων και εκτέλεση εργασιών βάσει τεκμηρίων.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "0c008a948c7066c8e77fe1e3ed7749816ee050ecdd14117f27a2a39a1eef9337",
    "renderer_sha256": "3ed36f7af4f78822bafbd174fdcaed7b698a18a86efe254253d37f1b098a7566"
  },
  "sourceRevision": "6006ca1192b7a171e113070085cfec3461d314725a57ffbdcaeee7619ea1db9e"
}
