μοντέλα

Google: Gemini 2.5 Pro

Markdown · JSON

Google: Gemini 2.5 Pro

Το Gemini 2.5 Pro είναι το σταθερό μοντέλο σκέψης της Google για σύνθετο κώδικα, μαθηματικά, STEM και ανάλυση μεγάλου πλαισίου. Δέχεται κείμενο, εικόνες, ήχο, βίντεο και PDF και επιστρέφει κείμενο, με εργαλεία και δομημένη έξοδο. Ο δυναμικός προϋπολογισμός συλλογισμού του υποστηρίζει 128–32,768 tokens και δεν μπορεί να απενεργοποιηθεί πλήρως.

Σχετικά με το μοντέλο

Αυτή η περιγραφή καλύπτει τις δυνατότητες του μοντέλου. Οι είσοδοι, έξοδοι και επιλογές που διατίθενται στο Ailoot παρατίθενται παρακάτω για την επιλεγμένη μέθοδο.

Το Gemini 2.5 Pro είναι το σταθερό προφίλ σκέψης της Google για προηγμένο προγραμματισμό, μαθηματικά, STEM και ανάλυση μεγάλου πλαισίου. Μπορεί να κατανοήσει κείμενο, ήχο, εικόνες, βίντεο και ολόκληρα αποθετήρια κώδικα, ενώ το προφίλ του στο Gemini API δέχεται επίσης είσοδο PDF. Η έξοδος είναι κείμενο, που περιλαμβάνει κώδικα, γραπτή ανάλυση ή μια δομημένη εγγραφή. Μια χρήσιμη ανάθεση παρέχει τα τεκμήρια και ζητά ένα αποτέλεσμα που μπορεί να ελεγχθεί, όπως μια λύση με εξήγηση, ένα εύρημα σε μια βάση κώδικα ή μια σύγκριση πολλών εγγράφων.

Για προγραμματισμό, δώστε τα σχετικά αρχεία, την παρατηρημένη συμπεριφορά και την αλλαγή ή την ερώτηση που έχει σημασία. Το μεγάλο πλαίσιο μπορεί να βοηθήσει το μοντέλο να συσχετίσει μονάδες κώδικα αντί να συλλογίζεται με βάση ένα απομονωμένο απόσπασμα. Για τη διερεύνηση μιας διαδρομής κώδικα, ζητήστε του να ακολουθήσει ένα αναγνωριστικό από μια φόρμα εισόδου μέσω της επεξεργασίας και της αποθήκευσης, να εντοπίσει πού αλλάζει ένα συμβόλαιο και να προτείνει μια στοχευμένη διόρθωση. Διατηρήστε τους περιορισμούς και ζητήστε παραπομπές που στηρίζουν τα συμπεράσματα. Μια προτεινόμενη αναθεώρηση χρειάζεται σύγκριση με τον πραγματικό κώδικα και με οποιαδήποτε επαλήθευση έγινε μέσω των συνδεδεμένων εργαλείων.

Για μαθηματική ή επιστημονική ανάλυση, διατυπώστε το πρόβλημα, τις παραδοχές, τις μονάδες και την απαιτούμενη μορφή της απάντησης. Δώστε τα δεδομένα ή τα διαγράμματα από τα οποία εξαρτάται ο υπολογισμός. Ζητήστε το τεκμηριωμένο αποτέλεσμα και τους ελέγχους που επιτρέπουν την αξιολόγησή του, όπως οριακές περιπτώσεις ή σύγκριση με τις αρχικές τιμές. Η ικανότητα συλλογισμού του μοντέλου δεν εξαλείφει την ασάφεια στη διατύπωση του προβλήματος. Κρατήστε ορατή μια άγνωστη ποσότητα ή μια ατεκμηρίωτη παραδοχή αντί να την αντικαθιστάτε με μια βολική τιμή.

Η δυναμική σκέψη είναι η τεκμηριωμένη προεπιλογή. Ο οδηγός GenerateContent του Gemini 2.5 υποστηρίζει ρητό προϋπολογισμό συλλογισμού από 128 έως 32,768 tokens για το Pro, ή -1 για προσαρμοζόμενη σκέψη. Αυτή η έκδοση δεν μπορεί να απενεργοποιήσει πλήρως τη σκέψη. Αυτές οι ρυθμίσεις διαφέρουν από την επιλογή μηδενικού προϋπολογισμού του Flash και από τις ρυθμίσεις επιπέδου σκέψης του Gemini 3. Ο προϋπολογισμός σκέψης καθοδηγεί τον συλλογισμό χωρίς να εγγυάται ακριβή αριθμό εσωτερικών tokens, ενώ το όριο απόκρισης πρέπει επίσης να αφήνει χώρο για το τελικό παραδοτέο.

Για πολυτροπική εργασία με έγγραφα, προσδιορίστε τις σελίδες, το διάγραμμα, την περιοχή εικόνας ή το γεγονός σε μια εγγραφή που πρέπει να στηρίζει την απάντηση. Μια πρακτική εργασία σύνθεσης μπορεί να ζητά τους αντικρουόμενους ισχυρισμούς από πολλά έγγραφα προέλευσης, τα χωρία που τους στηρίζουν και τις διαφορές που έχουν σημασία για μία απόφαση. Ζητήστε από το μοντέλο να διακρίνει ένα ρητά δηλωμένο γεγονός από ένα συμπέρασμα. Για βίντεο ή ήχο, ορίστε αν το αποτέλεσμα πρέπει να είναι περιγραφή, απομαγνητοφώνηση, περίληψη ή σύγκριση. Η εικόνα και ο ήχος αποτελούν τεκμήρια για ένα αποτέλεσμα κειμένου σε αυτό το προφίλ.

Η σελίδα του συγκεκριμένου API τεκμηριώνει κλήση συναρτήσεων, εκτέλεση κώδικα, αναζήτηση αρχείων, τεκμηρίωση μέσω αναζήτησης, τεκμηρίωση μέσω Maps, περιεχόμενο URL και δομημένες εξόδους. Ορίστε τον σκοπό των συναρτήσεων και τα πεδία των παραμέτρων και διατηρήστε τα πραγματικά αποτελέσματα στους επόμενους γύρους. Για μια εγγραφή περιορισμένη από σχήμα, καθορίστε τα απαιτούμενα πεδία και πώς πρέπει να αναπαριστώνται οι πληροφορίες που λείπουν. Η εγγενής αρχιτεκτονική είναι ένας πολυτροπικός μετασχηματιστής αραιού μείγματος ειδικών· αυτός ο σχεδιασμός του μοντέλου δεν παρέχει από μόνος του εκτέλεση εξωτερικού εργαλείου ή μια ολοκληρωμένη εφαρμογή πέρα από το κείμενο ή τον κώδικα που επιστρέφεται.

Η εγγενής κάρτα αναφέρει πλαίσιο εισόδου 1M και έξοδο κειμένου 64K· ο πίνακας του API ορίζει 1,048,576 tokens εισόδου και 65,536 tokens εξόδου. Οι οδηγίες, το περιεχόμενο των πηγών και το διατηρούμενο ιστορικό συμβάλλουν στην προετοιμασία της εισόδου. Το μέγιστο περιθώριο απόκρισης περιλαμβάνει tokens συλλογισμού, οπότε ένα υπερβολικά μικρό όριο μπορεί να διακόψει την τελική απάντηση. Τεκμηριώνονται προσωρινή αποθήκευση και επεξεργασία παρτίδων, μαζί με τις επιλογές Flex και Priority. Διατηρήστε κάθε αναγνωριστικό πηγής και την απαιτούμενη τελική μορφή όταν προετοιμάζετε ανεξάρτητες εργασίες μεγάλου πλαισίου.

Το σταθερό αναγνωριστικό διαφέρει από τις εκδόσεις Experimental και Preview που εξετάζονται χωριστά στην κοινή κάρτα του μοντέλου Pro. Μην αποδίδετε τα ειδικά αποτελέσματα των εκδόσεών τους σε αυτό το προφίλ μόνο και μόνο επειδή μοιράζονται την ονομασία Pro. Η κάρτα επισημαίνει πιθανές παραισθήσεις και περιορισμούς στην αιτιακή κατανόηση, στη σύνθετη παραγωγική συλλογιστική και στον αντιγεγονικό συλλογισμό, με χρονικό όριο γνώσης τον Ιανουάριο 2025. Δώστε επίκαιρα τεκμήρια όταν έχουν σημασία και ελέγξτε τις παραπομπές στις πηγές, τους υπολογισμούς και τις προτεινόμενες τροποποιήσεις. Η χρήσιμη έξοδος είναι το τεκμηριωμένο παραδοτέο κειμένου ή κώδικα που ζήτησε η εργασία.

Πρακτική εργασία

Πρακτική εργασία

Τεχνικό παράδειγμα στα αγγλικά

Trace an identifier through storage

Trace this identifier through three excerpts: form sends {customer_id:'0017'}; service computes id=Number(body.customer_id); repository stores String(id). Requirement: preserve leading zeros. Identify where the contract changes, propose a minimal consistent correction and give tests for '0017', '17' and a missing ID. Do not claim the tests were executed.

Αναμενόμενο αποτέλεσμα

A source-path explanation, a proposed patch and a three-case regression-test plan.

Έλεγχος αποτελέσματος

Check that the proposed path preserves distinct strings 0017 and 17 while specifying missing-ID behavior.
Ailoot · Anthropic Messages POST /v1/messages gemini-2.5-pro

gemini-2.5-pro

Google /gemini-2.5-pro

Εισαγωγή

Το Gemini 2.5 Pro είναι το σταθερό μοντέλο σκέψης της Google για σύνθετο κώδικα, μαθηματικά, STEM και ανάλυση μεγάλου πλαισίου. Δέχεται κείμενο, εικόνες, ήχο, βίντεο και PDF και επιστρέφει κείμενο, με εργαλεία και δομημένη έξοδο. Ο δυναμικός προϋπολογισμός συλλογισμού του υποστηρίζει 128–32,768 tokens και δεν μπορεί να απενεργοποιηθεί πλήρως.

Αποδεκτές είσοδοι
Κείμενο · Εικόνες
Αποτελέσματα
Κείμενο

Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι

Ailoot · Anthropic Messages POST /v1/messages
Είσοδος
text, image
Έξοδος
text
Παράθυρο συμφραζομένων
1.048.576 tokens
Μέγιστη έξοδος
65.536 tokens
Μορφή εξόδου
json ή SSE
ΠεδίοΤύποςΑπαίτησηΤιμές και όριαΠροεπιλογή
ΠεδίοmodelΤύποςstringΑπαίτησηΥποχρεωτικόΤιμές και όρια
gemini-2.5-pro
Προεπιλογή—
ΠεδίοmessagesΤύποςmessage[]ΑπαίτησηΥποχρεωτικόΤιμές και όρια
Ελάχιστο πλήθος στοιχείων: 1
Προεπιλογή—
Πεδίοmessages[].roleΤύποςstringΑπαίτησηΥποχρεωτικόΤιμές και όρια
user, assistant
Προεπιλογή—
Πεδίοmessages[].contentΤύποςstring|content_block[]ΑπαίτησηΥποχρεωτικόΤιμές και όριαΠροεπιλογή—
ΠεδίοsystemΤύποςstring|content_block[]ΑπαίτησηΠροαιρετικόΤιμές και όριαΠροεπιλογή—
Πεδίοmax_tokensΤύποςintegerΑπαίτησηΥποχρεωτικόΤιμές και όρια
Ελάχιστο: 1
Το όριο εφαρμόζεται σε: ακριβές ανώτατο όριο του επιλεγμένου μοντέλου/της επιλεγμένης κάρτας
Προεπιλογή—
ΠεδίοstreamΤύποςbooleanΑπαίτησηΠροαιρετικόΤιμές και όριαΠροεπιλογήfalse
ΠεδίοtemperatureΤύποςnumberΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
Πεδίοtop_pΤύποςnumberΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
Πεδίοstop_sequencesΤύποςstring[]ΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
ΠεδίοtoolsΤύποςtool[]ΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
Πεδίοtools[].nameΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όρια
Εφαρμόζεται όταν: Παρεχόμενο εργαλείο
Προεπιλογή—
Πεδίοtools[].descriptionΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όριαΠροεπιλογή—
Πεδίοtools[].input_schemaΤύποςJSON_schemaΑπαίτησηΠροαιρετικόΤιμές και όριαΠροεπιλογή—
Πεδίοtool_choiceΤύποςobjectΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
Πεδίοthinking.typeΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
Πεδίοthinking.budget_tokensΤύποςintegerΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
Πεδίοoutput_config.effortΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
ΠεδίοmetadataΤύποςobjectΑπαίτησηΠροαιρετικόΤιμές και όριαΠροεπιλογή—
Πεδίοcache_controlΤύποςobjectΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
Συνδυασμοί υλικών εισόδου

Κείμενο · Κείμενο UTF8

messages[].content ή μπλοκ type=text

Κείμενο + εικόνα

{type:image,source:{type:base64,media_type,data}} ή πηγή με type=url

Παράμετροι και κύκλος ζωής μεθόδου
ΠαράμετροςΣύμβαση
Παράμετροςmaterial_typesΣύμβασηtext, image
ΠαράμετροςrequiredΣύμβασηmodel, messages, max_tokens
Παράμετροςoptional_controlsΣύμβασηnull
Παράμετροςcontent_typeΣύμβασηapplication/json
Παράμετροςtext_file_materialΣύμβασηπραγματικό περιεχόμενο UTF-8 που εισάγεται ως κείμενο· τα IDs/URLs αρχείων απαιτούν ξεχωριστή, ακριβή υποστήριξη

Κύκλος ζωής: exact retained published method

Οι δομές και τα ID των μεθόδων είναι ακριβή· η δυνατότητα του προμηθευτή είναι ξεχωριστή από την αποδοχή αιτημάτων.

Τιμολόγηση

Χρεώσεις μεθόδων Ailoot

Ailoot Anthropic MessagesPOST /v1/messages
Είσοδος
0,00125 $ / 1K
Έξοδος
0,01 $ / 1K
Ανάγνωση από την κρυφή μνήμη
0,000125 $ / 1K

Τιμές ανά μήκος αιτήματος · Anthropic Messages

Μέγεθος αιτήματος, tokenΕίσοδοςΈξοδοςΑνάγνωση από την κρυφή μνήμηΕγγραφή στην κρυφή μνήμηΚρυφή μνήμη 5 λεπτώνΚρυφή μνήμη 1 ώρας
Μέγεθος αιτήματος, token(0; 200.000]Είσοδος0,00125 $Έξοδος0,01 $Ανάγνωση από την κρυφή μνήμη0,000125 $Εγγραφή στην κρυφή μνήμηΒασική: —Κρυφή μνήμη 5 λεπτώνΒασική: —Κρυφή μνήμη 1 ώραςΒασική: —
Μέγεθος αιτήματος, token(200.000; ∞)Είσοδος0,0025 $Έξοδος0,015 $Ανάγνωση από την κρυφή μνήμη0,00025 $Εγγραφή στην κρυφή μνήμηΒασική: —Κρυφή μνήμη 5 λεπτώνΒασική: —Κρυφή μνήμη 1 ώραςΒασική: —

Χρεώσεις σε USD ανά 1K token. Αν δεν ορίζεται χρέωση, κληρονομείται η βασική χρέωση αυτής της μεθόδου· το «—» σημαίνει ότι δεν έχει οριστεί βασική χρέωση.

Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. Πώς λειτουργούν η δέσμευση και η εκκαθάριση →

Στοιχεία τιμοκαταλόγου αναφοράς

Οι πίνακες αναφοράς του μοντέλου δεν αλλάζουν την επιλογή μεθόδου, τις εκτιμήσεις τιμής ή τις χρεώσεις. Οι εφαρμοζόμενες χρεώσεις χρησιμοποιούν τις τιμές της επιλεγμένης μεθόδου Ailoot.

Πίνακες αναφοράς μοντέλου

Τιμές ανά διαμόρφωση

Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.

ΔιαμόρφωσηΠίνακας χρεώσεωνToken συμφραζομένων, πάνω απόToken συμφραζομένων, έως καιΧρέωση
ΔιαμόρφωσηOpenAI Chat · Βασικές χρεώσεις ανά tokenΠίνακας χρεώσεωνΒασική χρέωσηToken συμφραζομένων, πάνω από—Token συμφραζομένων, έως καιΧωρίς ανώτατο όριοΧρέωση
Είσοδος · Token εισόδου $0.0025 / 1K token
Έξοδος · Token εξόδου $0.02 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.00025 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token
Έξοδος · Token εξόδου συλλογισμού $0.02 / 1K token
ΔιαμόρφωσηOpenAI Chat · Επίπεδο 1 βάσει μήκους αιτήματοςΠίνακας χρεώσεων—Token συμφραζομένων, πάνω από0Token συμφραζομένων, έως και200.000Χρέωση
Είσοδος · Token εισόδου $0.0025 / 1K token
Έξοδος · Token εξόδου $0.02 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.00025 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token
ΔιαμόρφωσηOpenAI Chat · Επίπεδο 2 βάσει μήκους αιτήματοςΠίνακας χρεώσεων—Token συμφραζομένων, πάνω από200.000Token συμφραζομένων, έως καιΧωρίς ανώτατο όριοΧρέωση
Είσοδος · Token εισόδου $0.005 / 1K token
Έξοδος · Token εξόδου $0.03 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.0005 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token
ΔιαμόρφωσηAnthropic Messages · Βασικές χρεώσεις ανά tokenΠίνακας χρεώσεωνΒασική χρέωσηToken συμφραζομένων, πάνω από—Token συμφραζομένων, έως καιΧωρίς ανώτατο όριοΧρέωση
Είσοδος · Token εισόδου $0.0025 / 1K token
Έξοδος · Token εξόδου $0.02 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.00025 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token
Έξοδος · Token εξόδου συλλογισμού $0.02 / 1K token
ΔιαμόρφωσηAnthropic Messages · Επίπεδο 1 βάσει μήκους αιτήματοςΠίνακας χρεώσεων—Token συμφραζομένων, πάνω από0Token συμφραζομένων, έως και200.000Χρέωση
Είσοδος · Token εισόδου $0.0025 / 1K token
Έξοδος · Token εξόδου $0.02 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.00025 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token
ΔιαμόρφωσηAnthropic Messages · Επίπεδο 2 βάσει μήκους αιτήματοςΠίνακας χρεώσεων—Token συμφραζομένων, πάνω από200.000Token συμφραζομένων, έως καιΧωρίς ανώτατο όριοΧρέωση
Είσοδος · Token εισόδου $0.005 / 1K token
Έξοδος · Token εξόδου $0.03 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.0005 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token

Παραδείγματα αιτημάτων

Ailoot · Anthropic Messages

Παράδειγμα κειμένουΕίσοδος, εικόναPython SDKNode.js SDKΡοή σε Python
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gemini-2.5-pro", "max_tokens": 1024, "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gemini-2.5-pro", "max_tokens": 1024, "messages": [{"role": "user", "content": [{"type": "text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["messages"][0]["content"].append({"type":"image","source":{"type":"base64","media_type":mime,"data":b64}})
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
import anthropic
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = anthropic.Anthropic(base_url="https://api.ailoot.ai", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
msg = client.messages.create(
    model="gemini-2.5-pro",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(msg.to_dict(mode="json"))
import Anthropic from "@anthropic-ai/sdk";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new Anthropic({ baseURL: "https://api.ailoot.ai", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const msg = await client.messages.create({
  model: "gemini-2.5-pro",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(msg);
import anthropic,os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=anthropic.Anthropic(base_url="https://api.ailoot.ai",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.messages.stream(model='gemini-2.5-pro',max_tokens=1024,messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_message()
    save_result(final.to_dict(mode="json"),"stream-result")

Λήψη και αποθήκευση αποτελεσμάτων

Ailoot · Anthropic Messages

json ή SSE

Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα

Διατηρήστε κάθε πλήρη απάντηση, αρχείο και τμήμα περιεχομένου που επιστρέφεται.

Διατηρήστε όλα τα μπλοκ περιεχομένου, τις υπογραφές συλλογιστικής και τα πραγματικά ID χρήσης εργαλείων. Συνθέστε όλες τις διαφορικές ενημερώσεις μπλοκ SSE· το πρώτο μπλοκ κειμένου δεν είναι η πλήρης έξοδος.

Αν χρειάζεται έλεγχος της αρχικής απάντησης

Διατηρήστε τα ID αιτήματος/απάντησης και τις κεφαλίδες. Δεν παρέχεται γενικό URL ανάκτησης εργασιών κειμένου.

Πεδία απάντησης
ΠεδίοΤύπος
ΠεδίοidΤύποςstring
ΠεδίοmodelΤύποςstring
Πεδίοcontent[]Τύποςtext|thinking|tool_use|other content block
Πεδίοstop_reasonΤύποςstring|null
ΠεδίοusageΤύποςobject
Σφάλματα και επόμενα βήματα
ΑπάντησηΣυνθήκηΕπόμενο βήμα
Απάντηση400 · invalid_request_errorΣυνθήκηΜη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρουΕπόμενο βήμαΔιορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.

Εναλλακτικά ονόματα

Εναλλακτικά ονόματα μοντέλου

Ailoot gemini-2.5-pro
Ailoot Ultra gemini-2.5-pro, google/gemini-2.5-pro

Εναλλακτικές διαδρομές μεθόδων

/chat/completions

Σχετικά ID μοντέλων

google/gemini-2.5-pro, gemini-2.5-pro, gemini-2.5-pro

Ailoot · Gemini generateContent POST /v1beta/models/{model}:generateContent gemini-2.5-pro

gemini-2.5-pro

Google /gemini-2.5-pro

Εισαγωγή

Το Gemini 2.5 Pro είναι το σταθερό μοντέλο σκέψης της Google για σύνθετο κώδικα, μαθηματικά, STEM και ανάλυση μεγάλου πλαισίου. Δέχεται κείμενο, εικόνες, ήχο, βίντεο και PDF και επιστρέφει κείμενο, με εργαλεία και δομημένη έξοδο. Ο δυναμικός προϋπολογισμός συλλογισμού του υποστηρίζει 128–32,768 tokens και δεν μπορεί να απενεργοποιηθεί πλήρως.

Αποδεκτές είσοδοι
Κείμενο · Εικόνες
Αποτελέσματα
Κείμενο

Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι

Ailoot · Gemini generateContent POST /v1beta/models/{model}:generateContent
Είσοδος
text, image
Έξοδος
text
Παράθυρο συμφραζομένων
1.048.576 tokens
Μέγιστη έξοδος
65.536 tokens
Μορφή εξόδου
json ή υποστηριζόμενη μετάδοση σε ροή
ΠεδίοΤύποςΑπαίτησηΤιμές και όριαΠροεπιλογή
Πεδίοpath.modelΤύποςstringΑπαίτησηΥποχρεωτικόΤιμές και όρια
gemini-2.5-pro
Προεπιλογή—
ΠεδίοcontentsΤύποςcontent[]ΑπαίτησηΥποχρεωτικόΤιμές και όρια
Ελάχιστο πλήθος στοιχείων: 1
Προεπιλογή—
Πεδίοcontents[].roleΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όρια
user, model
Προεπιλογή—
Πεδίοcontents[].partsΤύποςpart[]ΑπαίτησηΥποχρεωτικόΤιμές και όριαΠροεπιλογή—
ΠεδίοsystemInstructionΤύποςcontentΑπαίτησηΠροαιρετικόΤιμές και όριαΠροεπιλογή—
ΠεδίοgenerationConfig.maxOutputTokensΤύποςintegerΑπαίτησηΠροαιρετικόΤιμές και όρια
Ελάχιστο: 1
Εξαρτάται από το μοντέλο
Προεπιλογή—
ΠεδίοgenerationConfig.temperatureΤύποςnumberΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
ΠεδίοgenerationConfig.topPΤύποςnumberΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
ΠεδίοgenerationConfig.topKΤύποςintegerΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
ΠεδίοgenerationConfig.stopSequencesΤύποςstring[]ΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
ΠεδίοgenerationConfig.thinkingConfig.includeThoughtsΤύποςbooleanΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
ΠεδίοgenerationConfig.thinkingConfig.thinkingBudgetΤύποςintegerΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
Πεδίοtools[].functionDeclarationsΤύποςfunction_declaration[]ΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
ΠεδίοtoolConfig.functionCallingConfig.modeΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
ΠεδίοsafetySettingsΤύποςobject[]ΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
ΠεδίοsessionIdΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όριαΠροεπιλογή—
Συνδυασμοί υλικών εισόδου

Κείμενο · Κείμενο UTF8

contents[].parts[].text

Κείμενο + εικόνα

parts[].inlineData={mimeType,data}

Παράμετροι και κύκλος ζωής μεθόδου
ΠαράμετροςΣύμβαση
Παράμετροςmaterial_typesΣύμβασηtext, image
ΠαράμετροςrequiredΣύμβασηcontents
Παράμετροςoptional_controlsΣύμβασηnull
Παράμετροςcontent_typeΣύμβασηapplication/json
Παράμετροςtext_file_materialΣύμβασηπραγματικό περιεχόμενο UTF-8 που εισάγεται ως κείμενο· τα IDs/URLs αρχείων απαιτούν ξεχωριστή, ακριβή υποστήριξη

Κύκλος ζωής: exact retained published method

Οι δομές και τα ID των μεθόδων είναι ακριβή· η δυνατότητα του προμηθευτή είναι ξεχωριστή από την αποδοχή αιτημάτων.

Τιμολόγηση

Χρεώσεις μεθόδων Ailoot

Ailoot Gemini generateContentPOST /v1beta/models/{model}:generateContent
Είσοδος
0,00125 $ / 1K
Έξοδος
0,01 $ / 1K
Ανάγνωση από την κρυφή μνήμη
0,000125 $ / 1K

Τιμές ανά μήκος αιτήματος · Gemini generateContent

Μέγεθος αιτήματος, tokenΕίσοδοςΈξοδοςΑνάγνωση από την κρυφή μνήμηΕγγραφή στην κρυφή μνήμηΚρυφή μνήμη 5 λεπτώνΚρυφή μνήμη 1 ώρας
Μέγεθος αιτήματος, token(0; 200.000]Είσοδος0,00125 $Έξοδος0,01 $Ανάγνωση από την κρυφή μνήμη0,000125 $Εγγραφή στην κρυφή μνήμηΒασική: —Κρυφή μνήμη 5 λεπτώνΒασική: —Κρυφή μνήμη 1 ώραςΒασική: —
Μέγεθος αιτήματος, token(200.000; ∞)Είσοδος0,0025 $Έξοδος0,015 $Ανάγνωση από την κρυφή μνήμη0,00025 $Εγγραφή στην κρυφή μνήμηΒασική: —Κρυφή μνήμη 5 λεπτώνΒασική: —Κρυφή μνήμη 1 ώραςΒασική: —

Χρεώσεις σε USD ανά 1K token. Αν δεν ορίζεται χρέωση, κληρονομείται η βασική χρέωση αυτής της μεθόδου· το «—» σημαίνει ότι δεν έχει οριστεί βασική χρέωση.

Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. Πώς λειτουργούν η δέσμευση και η εκκαθάριση →

Στοιχεία τιμοκαταλόγου αναφοράς

Οι πίνακες αναφοράς του μοντέλου δεν αλλάζουν την επιλογή μεθόδου, τις εκτιμήσεις τιμής ή τις χρεώσεις. Οι εφαρμοζόμενες χρεώσεις χρησιμοποιούν τις τιμές της επιλεγμένης μεθόδου Ailoot.

Πίνακες αναφοράς μοντέλου

Τιμές ανά διαμόρφωση

Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.

ΔιαμόρφωσηΠίνακας χρεώσεωνToken συμφραζομένων, πάνω απόToken συμφραζομένων, έως καιΧρέωση
ΔιαμόρφωσηOpenAI Chat · Βασικές χρεώσεις ανά tokenΠίνακας χρεώσεωνΒασική χρέωσηToken συμφραζομένων, πάνω από—Token συμφραζομένων, έως καιΧωρίς ανώτατο όριοΧρέωση
Είσοδος · Token εισόδου $0.0025 / 1K token
Έξοδος · Token εξόδου $0.02 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.00025 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token
Έξοδος · Token εξόδου συλλογισμού $0.02 / 1K token
ΔιαμόρφωσηOpenAI Chat · Επίπεδο 1 βάσει μήκους αιτήματοςΠίνακας χρεώσεων—Token συμφραζομένων, πάνω από0Token συμφραζομένων, έως και200.000Χρέωση
Είσοδος · Token εισόδου $0.0025 / 1K token
Έξοδος · Token εξόδου $0.02 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.00025 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token
ΔιαμόρφωσηOpenAI Chat · Επίπεδο 2 βάσει μήκους αιτήματοςΠίνακας χρεώσεων—Token συμφραζομένων, πάνω από200.000Token συμφραζομένων, έως καιΧωρίς ανώτατο όριοΧρέωση
Είσοδος · Token εισόδου $0.005 / 1K token
Έξοδος · Token εξόδου $0.03 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.0005 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token
ΔιαμόρφωσηAnthropic Messages · Βασικές χρεώσεις ανά tokenΠίνακας χρεώσεωνΒασική χρέωσηToken συμφραζομένων, πάνω από—Token συμφραζομένων, έως καιΧωρίς ανώτατο όριοΧρέωση
Είσοδος · Token εισόδου $0.0025 / 1K token
Έξοδος · Token εξόδου $0.02 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.00025 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token
Έξοδος · Token εξόδου συλλογισμού $0.02 / 1K token
ΔιαμόρφωσηAnthropic Messages · Επίπεδο 1 βάσει μήκους αιτήματοςΠίνακας χρεώσεων—Token συμφραζομένων, πάνω από0Token συμφραζομένων, έως και200.000Χρέωση
Είσοδος · Token εισόδου $0.0025 / 1K token
Έξοδος · Token εξόδου $0.02 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.00025 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token
ΔιαμόρφωσηAnthropic Messages · Επίπεδο 2 βάσει μήκους αιτήματοςΠίνακας χρεώσεων—Token συμφραζομένων, πάνω από200.000Token συμφραζομένων, έως καιΧωρίς ανώτατο όριοΧρέωση
Είσοδος · Token εισόδου $0.005 / 1K token
Έξοδος · Token εξόδου $0.03 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.0005 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token

Παραδείγματα αιτημάτων

Ailoot · Gemini generateContent

Παράδειγμα κειμένουΕίσοδος, εικόναPython SDKNode.js SDKΡοή σε Python
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"contents": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["contents"]=[{"role":"user","parts":[{"text":"Summarize this material and quote supporting source passages.\n\n"+text}]}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1beta/models/gemini-2.5-pro:generateContent \
  -H "x-goog-api-key: $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(json.loads(Path("result.json").read_text(encoding="utf-8")))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"contents": [{"role": "user", "parts": [{"text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["contents"][0]["parts"].append({"inlineData":{"mimeType":mime,"data":b64}})
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1beta/models/gemini-2.5-pro:generateContent \
  -H "x-goog-api-key: $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(json.loads(Path("result.json").read_text(encoding="utf-8")))
PY_RESULT
from google import genai
from google.genai import types
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = genai.Client(
    api_key=os.environ["AILOOT_API_KEY"],
    http_options=types.HttpOptions(base_url="https://api.ailoot.ai"),
)
resp = client.models.generate_content(model="gemini-2.5-pro", contents="Explain the difference between an observation and a hypothesis in three sentences.")
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(resp.to_json_dict())
import { GoogleGenAI } from "@google/genai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const ai = new GoogleGenAI({ apiKey: process.env.AILOOT_API_KEY, httpOptions: { baseUrl: "https://api.ailoot.ai" } });
const resp = await ai.models.generateContent({ model: "gemini-2.5-pro", contents: "Explain the difference between an observation and a hypothesis in three sentences." });
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
from google import genai
from google.genai import types
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=genai.Client(api_key=os.environ["AILOOT_API_KEY"],http_options=types.HttpOptions(base_url="https://api.ailoot.ai"))
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

count=0
with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
    for chunk in client.models.generate_content_stream(model='gemini-2.5-pro',contents="Explain observations and hypotheses in three sentences."):
        payload=chunk.to_json_dict()
        log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
        save_result(payload,"stream-chunk-"+str(count))
        count+=1

Λήψη και αποθήκευση αποτελεσμάτων

Ailoot · Gemini generateContent

json ή υποστηριζόμενη μετάδοση σε ροή

Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα

Διατηρήστε κάθε πλήρη απάντηση, αρχείο και τμήμα περιεχομένου που επιστρέφεται.

Διατηρήστε όλες τις υποψήφιες απαντήσεις και τα τμήματα, συμπεριλαμβανομένων των κλήσεων συναρτήσεων, των υπογραφών συλλογιστικής και των στοιχείων χρήσης· συνθέστε τα τμήματα της ροής με τη σειρά τους.

Αν χρειάζεται έλεγχος της αρχικής απάντησης

Διατηρήστε τα ID αιτήματος/απάντησης και τις κεφαλίδες. Δεν παρέχεται γενικό URL ανάκτησης εργασιών κειμένου.

Πεδία απάντησης
ΠεδίοΤύπος
ΠεδίοresponseIdΤύποςstring
ΠεδίοmodelVersionΤύποςstring
Πεδίοcandidates[].content.parts[]Τύποςtext|inlineData|functionCall|other part
Πεδίοcandidates[].finishReasonΤύποςstring
ΠεδίοusageMetadataΤύποςobject
Σφάλματα και επόμενα βήματα
ΑπάντησηΣυνθήκηΕπόμενο βήμα
Απάντηση400 · invalid_request_errorΣυνθήκηΜη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρουΕπόμενο βήμαΔιορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.

Εναλλακτικά ονόματα

Εναλλακτικά ονόματα μοντέλου

Ailoot gemini-2.5-pro
Ailoot Ultra gemini-2.5-pro, google/gemini-2.5-pro

Εναλλακτικές διαδρομές μεθόδων

/chat/completions

Σχετικά ID μοντέλων

google/gemini-2.5-pro, gemini-2.5-pro, gemini-2.5-pro

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions gemini-2.5-pro

gemini-2.5-pro

Google /gemini-2.5-pro
ID μοντέλου
  • gemini-2.5-pro
  • google/gemini-2.5-pro

Εισαγωγή

Το Gemini 2.5 Pro είναι το σταθερό μοντέλο σκέψης της Google για σύνθετο κώδικα, μαθηματικά, STEM και ανάλυση μεγάλου πλαισίου. Δέχεται κείμενο, εικόνες, ήχο, βίντεο και PDF και επιστρέφει κείμενο, με εργαλεία και δομημένη έξοδο. Ο δυναμικός προϋπολογισμός συλλογισμού του υποστηρίζει 128–32,768 tokens και δεν μπορεί να απενεργοποιηθεί πλήρως.

Αποδεκτές είσοδοι
Κείμενο
Αποτελέσματα
Κείμενο

Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Είσοδος
text
Έξοδος
text
Μορφή εξόδου
json ή SSE
ΠεδίοΤύποςΑπαίτησηΤιμές και όριαΠροεπιλογή
ΠεδίοmodelΤύποςstringΑπαίτησηΥποχρεωτικόΤιμές και όρια
gemini-2.5-pro
Προεπιλογή—
ΠεδίοmessagesΤύποςmessage[]ΑπαίτησηΥποχρεωτικόΤιμές και όρια
Ελάχιστο πλήθος στοιχείων: 1
Προεπιλογή—
Πεδίοmessages[].roleΤύποςstringΑπαίτησηΥποχρεωτικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
Πεδίοmessages[].contentΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όρια
Εφαρμόζεται όταν: Συνομιλία κειμένου
Προεπιλογή—
ΠεδίοstreamΤύποςbooleanΑπαίτησηΠροαιρετικόΤιμές και όριαΠροεπιλογήfalse
Συνδυασμοί υλικών εισόδου

Κείμενο · Κείμενο UTF8

messages[].content

Παράμετροι και κύκλος ζωής μεθόδου
ΠαράμετροςΣύμβαση
Παράμετροςcontent_typeΣύμβασηapplication/json
ΠαράμετροςrequiredΣύμβασηmodel, messages
Παράμετροςmaterial_typesΣύμβασηtext
ΠαράμετροςmessagesΣύμβασηΠίνακας μηνυμάτων με δομή role/content
Παράμετροςfile_materialΣύμβασηπραγματικό έγγραφο UTF-8 που εισάγεται ως αυτούσιο κείμενο· δεν συνάγεται ID αρχείου
Παράμετροςoptional_controlsΣύμβασηstream
Παράμετροςcontrol_scopeΣύμβασηΣυνομιλία κειμένου· το stream είναι λογική τιμή και έχει προεπιλογή false.
Παράμετροςoutput_modalitiesΣύμβασηtext
Παράμετροςhosted_operationsΣύμβασηfalse
Παράμετροςmultimodal_input_bindingΣύμβασηnull

Εναλλακτικά ονόματα μεθόδου: /chat/completions

Κύκλος ζωής: synchronous_or_streamed

Στείλτε το ακριβές ID μοντέλου μαζί με το messages.

Το μήκος συμφραζομένων δεν είναι ανώτατο όριο εξόδου.

Ένα αρχείο κειμένου μπορεί να παρέχει αυτούσιο κείμενο· οι είσοδοι εικόνας/ήχου/αντικειμένων αρχείων χρειάζονται ακριβή αντιστοίχιση.

Τιμολόγηση

Οι τιμολογιακές αναφορές δεν προσθέτουν επιλογές αιτήματος. Οι υποστηριζόμενες παράμετροι αναφέρονται στην επιλεγμένη μέθοδο.

Γρήγορη λειτουργία
Τυπική χρέωση Όταν επιλέγεται η γρήγορη λειτουργία
Λειτουργία flex
Τυπική χρέωση Όταν επιλέγεται η λειτουργία flex
Μέγιστη προσπάθεια συλλογισμού
Τυπική χρέωση Όταν η μέγιστη προσπάθεια συλλογισμού χρησιμοποιεί την προσαρμογή default
Τιμολόγηση ρητής αποθήκευσης στην κρυφή μνήμη
Δεν είναι ενεργοποιημένο Όταν ζητείται ρητή αποθήκευση στην κρυφή μνήμη
Έξοδος συλλογισμού
Ο συλλογισμός χρησιμοποιεί την αναγραφόμενη τιμή υποσυνόλου μέσα στη συνολική έξοδο· μην προσθέτετε αυτά τα token δύο φορές. Όταν η έξοδος περιλαμβάνει token συλλογισμού

Χρεώσεις Ailoot

Τιμές ανά διαμόρφωση

Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.

ΔιαμόρφωσηΠίνακας χρεώσεωνToken συμφραζομένων, πάνω απόToken συμφραζομένων, έως καιΧρέωση
ΔιαμόρφωσηΒασικές χρεώσεις ανά tokenΠίνακας χρεώσεωνΒασική χρέωσηToken συμφραζομένων, πάνω από—Token συμφραζομένων, έως καιΧωρίς ανώτατο όριοΧρέωση
Είσοδος · Token εισόδου $0.0025 / 1K token
Έξοδος · Token εξόδου $0.02 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.00025 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token
Έξοδος · Token εξόδου συλλογισμού $0.02 / 1K token
ΔιαμόρφωσηΕπίπεδο 1 βάσει μήκους αιτήματοςΠίνακας χρεώσεων—Token συμφραζομένων, πάνω από0Token συμφραζομένων, έως και200.000Χρέωση
Είσοδος · Token εισόδου $0.0025 / 1K token
Έξοδος · Token εξόδου $0.02 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.00025 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token
ΔιαμόρφωσηΕπίπεδο 2 βάσει μήκους αιτήματοςΠίνακας χρεώσεων—Token συμφραζομένων, πάνω από200.000Token συμφραζομένων, έως καιΧωρίς ανώτατο όριοΧρέωση
Είσοδος · Token εισόδου $0.005 / 1K token
Έξοδος · Token εξόδου $0.03 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.0005 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token

Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. Πώς λειτουργούν η δέσμευση και η εκκαθάριση →

Παραδείγματα αιτημάτων

Ailoot Ultra · OpenAI Chat

curlPython SDK
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"gemini-2.5-pro","messages":[{"role":"user","content":"hello"}],"stream":false}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model="gemini-2.5-pro", messages=[{"role":"user","content":"hello"}], stream=False)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))

Λήψη και αποθήκευση αποτελεσμάτων

Ailoot Ultra · OpenAI Chat

json ή SSE

Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα

Διατηρήστε κάθε πλήρη απάντηση, αρχείο και τμήμα περιεχομένου που επιστρέφεται.

Διατηρήστε κάθε επιλογή και το περιεχόμενο/τις κλήσεις εργαλείων/το περιεχόμενο συλλογιστικής της. Στο SSE συνθέστε τις διαφορικές ενημερώσεις ανά δείκτη επιλογής/εργαλείου και κρατήστε την τελική αιτία τερματισμού και τα στοιχεία χρήσης.

Αν χρειάζεται έλεγχος της αρχικής απάντησης

Διατηρήστε τα ID αιτήματος/απάντησης και τις κεφαλίδες. Δεν παρέχεται γενικό URL ανάκτησης εργασιών κειμένου.

Πεδία απάντησης
ΠεδίοΤύπος
Πεδίοchoices[].indexΤύποςinteger
Πεδίοchoices[].message.contentΤύποςstring|null
Πεδίοchoices[].message.tool_callsΤύποςtool_call[]
Πεδίοchoices[].message.reasoning_contentΤύποςstring
Πεδίοchoices[].message.reasoning_detailsΤύποςobject|array
Πεδίοchoices[].finish_reasonΤύποςstring|null
ΠεδίοusageΤύποςobject
Σφάλματα και επόμενα βήματα
ΑπάντησηΣυνθήκηΕπόμενο βήμα
Απάντηση400 · invalid_request_errorΣυνθήκηΜη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρουΕπόμενο βήμαΔιορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.

Εναλλακτικά ονόματα

Εναλλακτικά ονόματα μοντέλου

Ailoot gemini-2.5-pro
Ailoot Ultra gemini-2.5-pro, google/gemini-2.5-pro

Εναλλακτικές διαδρομές μεθόδων

/chat/completions

Σχετικά ID μοντέλων

google/gemini-2.5-pro, gemini-2.5-pro, gemini-2.5-pro

Ailoot Ultra · Anthropic Messages POST /v1/messages gemini-2.5-pro

gemini-2.5-pro

Google /gemini-2.5-pro
ID μοντέλου
  • gemini-2.5-pro
  • google/gemini-2.5-pro

Εισαγωγή

Το Gemini 2.5 Pro είναι το σταθερό μοντέλο σκέψης της Google για σύνθετο κώδικα, μαθηματικά, STEM και ανάλυση μεγάλου πλαισίου. Δέχεται κείμενο, εικόνες, ήχο, βίντεο και PDF και επιστρέφει κείμενο, με εργαλεία και δομημένη έξοδο. Ο δυναμικός προϋπολογισμός συλλογισμού του υποστηρίζει 128–32,768 tokens και δεν μπορεί να απενεργοποιηθεί πλήρως.

Αποδεκτές είσοδοι
Κείμενο
Αποτελέσματα
json · sse

Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι

Ailoot Ultra · Anthropic Messages POST /v1/messages
Είσοδος
text
Έξοδος
json, sse
Μορφή εξόδου
JSON ή SSE
ΠεδίοΤύποςΑπαίτησηΤιμές και όριαΠροεπιλογή
ΠεδίοmodelΤύποςstringΑπαίτησηΥποχρεωτικόΤιμές και όρια
gemini-2.5-pro
Προεπιλογή—
ΠεδίοmessagesΤύποςmessage[]ΑπαίτησηΥποχρεωτικόΤιμές και όριαΠροεπιλογή—
Πεδίοmessages[].roleΤύποςstringΑπαίτησηΥποχρεωτικόΤιμές και όρια
user, assistant
Προεπιλογή—
Πεδίοmessages[].contentΤύποςstringΑπαίτησηΥποχρεωτικόΤιμές και όριαΠροεπιλογή—
Πεδίοmax_tokensΤύποςintegerΑπαίτησηΥποχρεωτικόΤιμές και όριαΠροεπιλογή—
ΠεδίοstreamΤύποςbooleanΑπαίτησηΠροαιρετικόΤιμές και όριαΠροεπιλογήfalse
Συνδυασμοί υλικών εισόδου

Κείμενο · Κείμενο UTF-8

Συμβολοσειρά messages[].content

Παράμετροι και κύκλος ζωής μεθόδου
ΠαράμετροςΣύμβαση
Παράμετροςcontent_typeΣύμβασηapplication/json
ΠαράμετροςrequiredΣύμβασηmodel, messages, max_tokens
Παράμετροςoptional_controlsΣύμβασηstream
Παράμετροςmaterial_typesΣύμβασηtext
Παράμετροςtext_file_materialΣύμβασηΔιαβάστε το πραγματικό έγγραφο UTF-8 και τοποθετήστε το κείμενό του στην υποδεικνυόμενη συμβολοσειρά εισόδου ή περιεχομένου του μηνύματος.

Κύκλος ζωής: synchronous_or_streamed

Τιμολόγηση

Οι τιμολογιακές αναφορές δεν προσθέτουν επιλογές αιτήματος. Οι υποστηριζόμενες παράμετροι αναφέρονται στην επιλεγμένη μέθοδο.

Γρήγορη λειτουργία
Τυπική χρέωση Όταν επιλέγεται η γρήγορη λειτουργία
Λειτουργία flex
Τυπική χρέωση Όταν επιλέγεται η λειτουργία flex
Μέγιστη προσπάθεια συλλογισμού
Τυπική χρέωση Όταν η μέγιστη προσπάθεια συλλογισμού χρησιμοποιεί την προσαρμογή default
Τιμολόγηση ρητής αποθήκευσης στην κρυφή μνήμη
Δεν είναι ενεργοποιημένο Όταν ζητείται ρητή αποθήκευση στην κρυφή μνήμη
Έξοδος συλλογισμού
Ο συλλογισμός χρησιμοποιεί την αναγραφόμενη τιμή υποσυνόλου μέσα στη συνολική έξοδο· μην προσθέτετε αυτά τα token δύο φορές. Όταν η έξοδος περιλαμβάνει token συλλογισμού

Χρεώσεις Ailoot

Τιμές ανά διαμόρφωση

Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.

ΔιαμόρφωσηΠίνακας χρεώσεωνToken συμφραζομένων, πάνω απόToken συμφραζομένων, έως καιΧρέωση
ΔιαμόρφωσηΒασικές χρεώσεις ανά tokenΠίνακας χρεώσεωνΒασική χρέωσηToken συμφραζομένων, πάνω από—Token συμφραζομένων, έως καιΧωρίς ανώτατο όριοΧρέωση
Είσοδος · Token εισόδου $0.0025 / 1K token
Έξοδος · Token εξόδου $0.02 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.00025 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token
Έξοδος · Token εξόδου συλλογισμού $0.02 / 1K token
ΔιαμόρφωσηΕπίπεδο 1 βάσει μήκους αιτήματοςΠίνακας χρεώσεων—Token συμφραζομένων, πάνω από0Token συμφραζομένων, έως και200.000Χρέωση
Είσοδος · Token εισόδου $0.0025 / 1K token
Έξοδος · Token εξόδου $0.02 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.00025 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token
ΔιαμόρφωσηΕπίπεδο 2 βάσει μήκους αιτήματοςΠίνακας χρεώσεων—Token συμφραζομένων, πάνω από200.000Token συμφραζομένων, έως καιΧωρίς ανώτατο όριοΧρέωση
Είσοδος · Token εισόδου $0.005 / 1K token
Έξοδος · Token εξόδου $0.03 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.0005 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token

Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. Πώς λειτουργούν η δέσμευση και η εκκαθάριση →

Παραδείγματα αιτημάτων

Ailoot Ultra · Anthropic Messages

Πλήρες ελάχιστο σώμα JSONcurl · χρησιμοποιήστε το έγγραφό σας σε UTF-8Python · αποθηκεύστε το πλήρες αποτέλεσμα
{
  "model": "gemini-2.5-pro",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'gemini-2.5-pro', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'gemini-2.5-pro', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

Λήψη και αποθήκευση αποτελεσμάτων

Ailoot Ultra · Anthropic Messages

JSON ή SSE

Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα

Διατηρήστε κάθε πλήρη απάντηση, αρχείο και τμήμα περιεχομένου που επιστρέφεται.

Διατηρήστε όλα τα μπλοκ περιεχομένου, τις υπογραφές συλλογιστικής και τα πραγματικά ID χρήσης εργαλείων. Συνθέστε όλες τις διαφορικές ενημερώσεις μπλοκ SSE· το πρώτο μπλοκ κειμένου δεν είναι η πλήρης έξοδος.

Αν χρειάζεται έλεγχος της αρχικής απάντησης

Διατηρήστε τα ID αιτήματος/απάντησης και τις κεφαλίδες. Δεν παρέχεται γενικό URL ανάκτησης εργασιών κειμένου.

Πεδία απάντησης
ΠεδίοΤύπος
ΠεδίοidΤύποςstring
ΠεδίοmodelΤύποςstring
Πεδίοcontent[]Τύποςtext|thinking|tool_use|other content block
Πεδίοstop_reasonΤύποςstring|null
ΠεδίοusageΤύποςobject
Σφάλματα και επόμενα βήματα
ΑπάντησηΣυνθήκηΕπόμενο βήμα
Απάντηση400 · invalid_request_errorΣυνθήκηΜη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρουΕπόμενο βήμαΔιορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.

Εναλλακτικά ονόματα

Εναλλακτικά ονόματα μοντέλου

Ailoot gemini-2.5-pro
Ailoot Ultra gemini-2.5-pro, google/gemini-2.5-pro

Εναλλακτικές διαδρομές μεθόδων

/chat/completions

Σχετικά ID μοντέλων

google/gemini-2.5-pro, gemini-2.5-pro, gemini-2.5-pro

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions google/gemini-2.5-pro

google/gemini-2.5-pro

Google /google/gemini-2.5-pro
ID μοντέλου
  • gemini-2.5-pro
  • google/gemini-2.5-pro

Εισαγωγή

Το Gemini 2.5 Pro είναι το σταθερό μοντέλο σκέψης της Google για σύνθετο κώδικα, μαθηματικά, STEM και ανάλυση μεγάλου πλαισίου. Δέχεται κείμενο, εικόνες, ήχο, βίντεο και PDF και επιστρέφει κείμενο, με εργαλεία και δομημένη έξοδο. Ο δυναμικός προϋπολογισμός συλλογισμού του υποστηρίζει 128–32,768 tokens και δεν μπορεί να απενεργοποιηθεί πλήρως.

Αποδεκτές είσοδοι
Κείμενο
Αποτελέσματα
Κείμενο

Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Είσοδος
text
Έξοδος
text
Μορφή εξόδου
json ή SSE
ΠεδίοΤύποςΑπαίτησηΤιμές και όριαΠροεπιλογή
ΠεδίοmodelΤύποςstringΑπαίτησηΥποχρεωτικόΤιμές και όρια
google/gemini-2.5-pro
Προεπιλογή—
ΠεδίοmessagesΤύποςmessage[]ΑπαίτησηΥποχρεωτικόΤιμές και όρια
Ελάχιστο πλήθος στοιχείων: 1
Προεπιλογή—
Πεδίοmessages[].roleΤύποςstringΑπαίτησηΥποχρεωτικόΤιμές και όρια
Παραδείγματα: system, user, assistant, tool, function
Συνθήκες: Αυτοί οι ρόλοι αναπαρίστανται ρητά από τους τύπους συμβατότητας του πηγαίου κώδικα· το ακριβές σύνολο ρόλων παραμένει ειδικό για κάθε μοντέλο.
Εξαρτάται από το μοντέλο
Προεπιλογή—
Πεδίοmessages[].contentΤύποςstring|content_part[]|nullΑπαίτησηΠροαιρετικόΤιμές και όριαΠροεπιλογή—
Πεδίοmessages[].tool_callsΤύποςtool_call[]ΑπαίτησηΠροαιρετικόΤιμές και όριαΠροεπιλογή—
Πεδίοmessages[].tool_call_idΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όρια
Εφαρμόζεται όταν: role=tool· χρησιμοποιήστε το πραγματικό ID που επιστράφηκε
Προεπιλογή—
Πεδίοmessages[].nameΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όριαΠροεπιλογή—
Πεδίοmessages[].reasoning_contentΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όρια
Εφαρμόζεται όταν: Επαναποστείλετε το πραγματικό περιεχόμενο συλλογιστικής που επιστράφηκε, όταν το μοντέλο το χρησιμοποιεί
Προεπιλογή—
Πεδίοmessages[].reasoning_detailsΤύποςobject|arrayΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
Πεδίοmax_tokensΤύποςintegerΑπαίτησηΠροαιρετικόΤιμές και όρια
Ελάχιστο: 1
Εξαρτάται από το μοντέλο
Προεπιλογή—
Πεδίοmax_completion_tokensΤύποςintegerΑπαίτησηΠροαιρετικόΤιμές και όρια
Ελάχιστο: 1
Εξαρτάται από το μοντέλο
Προεπιλογή—
ΠεδίοstreamΤύποςbooleanΑπαίτησηΠροαιρετικόΤιμές και όριαΠροεπιλογήfalse
Πεδίοstream_options.include_usageΤύποςbooleanΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
ΠεδίοtemperatureΤύποςnumberΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
Πεδίοtop_pΤύποςnumberΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
ΠεδίοstopΤύποςstring|string[]ΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
ΠεδίοtoolsΤύποςfunction_tool[]ΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
Πεδίοtools[].typeΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όρια
function
Εξαρτάται από το μοντέλο
Προεπιλογή—
Πεδίοtools[].function.nameΤύποςstringΑπαίτησηΥποχρεωτικόΤιμές και όρια
Εφαρμόζεται όταν: Παρεχόμενο εργαλείο τύπου συνάρτησης
Προεπιλογή—
Πεδίοtools[].function.descriptionΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όριαΠροεπιλογή—
Πεδίοtools[].function.parametersΤύποςJSON_schemaΑπαίτησηΠροαιρετικόΤιμές και όριαΠροεπιλογή—
Πεδίοtool_choiceΤύποςstring|objectΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
Πεδίοparallel_tool_callsΤύποςbooleanΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
Πεδίοresponse_formatΤύποςobjectΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
Πεδίοreasoning_effortΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
ΠεδίοreasoningΤύποςobjectΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
Πεδίοservice_tierΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
ΠεδίοinstructionsΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όρια
Πεδίο συμβατότητας
Προεπιλογή—
ΠεδίοfunctionsΤύποςfunction[]ΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
Πεδίοfunction_callΤύποςstring|objectΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
Πεδίοprompt_cache_optionsΤύποςobjectΑπαίτησηΠροαιρετικόΤιμές και όρια
Εξαρτάται από το μοντέλο
Προεπιλογή—
ΠεδίοmodalitiesΤύποςstring[]ΑπαίτησηΠροαιρετικόΤιμές και όρια
text
Προεπιλογή—
ΠεδίοproviderΤύποςobjectΑπαίτησηΠροαιρετικόΤιμές και όρια
Συνθήκες: Το provider.options απορρίπτεται σε αυτή τη διαδρομή κειμένου Ultra
Προεπιλογή—
Πεδίοcache_control.ttlΤύποςstringΑπαίτησηΠροαιρετικόΤιμές και όρια
Συνθήκες: Το 1h απορρίπτεται στα πραγματικά πεδία κρυφής μνήμης προτροπών
Προεπιλογή—
Συνδυασμοί υλικών εισόδου

Κείμενο · Κείμενο UTF8

messages[].content

Παράμετροι και κύκλος ζωής μεθόδου
ΠαράμετροςΣύμβαση
Παράμετροςcontent_typeΣύμβασηapplication/json
ΠαράμετροςrequiredΣύμβασηmodel, messages
Παράμετροςmaterial_typesΣύμβασηtext
ΠαράμετροςmessagesΣύμβασηΠίνακας μηνυμάτων με δομή role/content
Παράμετροςfile_materialΣύμβασηπραγματικό έγγραφο UTF-8 που εισάγεται ως αυτούσιο κείμενο· δεν συνάγεται ID αρχείου
Παράμετροςoptional_controlsΣύμβασηstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Παράμετροςcontrol_scopeΣύμβασηεξαρτάται από το μοντέλο· τα εργαλεία συναρτήσεων του χρήστη διαφέρουν από τα φιλοξενούμενα εργαλεία
Παράμετροςoutput_modalitiesΣύμβασηtext
Παράμετροςhosted_operationsΣύμβασηfalse
Παράμετροςmultimodal_input_bindingΣύμβασηnull

Κύκλος ζωής: synchronous_or_streamed

Στείλτε το ακριβές ID μοντέλου μαζί με το messages.

Το μήκος συμφραζομένων δεν είναι ανώτατο όριο εξόδου.

Ένα αρχείο κειμένου μπορεί να παρέχει αυτούσιο κείμενο· οι είσοδοι εικόνας/ήχου/αντικειμένων αρχείων χρειάζονται ακριβή αντιστοίχιση.

Τιμολόγηση

Οι τιμολογιακές αναφορές δεν προσθέτουν επιλογές αιτήματος. Οι υποστηριζόμενες παράμετροι αναφέρονται στην επιλεγμένη μέθοδο.

Γρήγορη λειτουργία
Τυπική χρέωση Όταν επιλέγεται η γρήγορη λειτουργία
Λειτουργία flex
Τυπική χρέωση Όταν επιλέγεται η λειτουργία flex
Μέγιστη προσπάθεια συλλογισμού
Τυπική χρέωση Όταν η μέγιστη προσπάθεια συλλογισμού χρησιμοποιεί την προσαρμογή default
Τιμολόγηση ρητής αποθήκευσης στην κρυφή μνήμη
Δεν είναι ενεργοποιημένο Όταν ζητείται ρητή αποθήκευση στην κρυφή μνήμη
Έξοδος συλλογισμού
Ο συλλογισμός χρησιμοποιεί την αναγραφόμενη τιμή υποσυνόλου μέσα στη συνολική έξοδο· μην προσθέτετε αυτά τα token δύο φορές. Όταν η έξοδος περιλαμβάνει token συλλογισμού

Χρεώσεις Ailoot

Τιμές ανά διαμόρφωση

Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.

ΔιαμόρφωσηΠίνακας χρεώσεωνToken συμφραζομένων, πάνω απόToken συμφραζομένων, έως καιΧρέωση
ΔιαμόρφωσηΒασικές χρεώσεις ανά tokenΠίνακας χρεώσεωνΒασική χρέωσηToken συμφραζομένων, πάνω από—Token συμφραζομένων, έως καιΧωρίς ανώτατο όριοΧρέωση
Είσοδος · Token εισόδου $0.0025 / 1K token
Έξοδος · Token εξόδου $0.02 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.00025 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token
Έξοδος · Token εξόδου συλλογισμού $0.02 / 1K token
ΔιαμόρφωσηΕπίπεδο 1 βάσει μήκους αιτήματοςΠίνακας χρεώσεων—Token συμφραζομένων, πάνω από0Token συμφραζομένων, έως και200.000Χρέωση
Είσοδος · Token εισόδου $0.0025 / 1K token
Έξοδος · Token εξόδου $0.02 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.00025 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token
ΔιαμόρφωσηΕπίπεδο 2 βάσει μήκους αιτήματοςΠίνακας χρεώσεων—Token συμφραζομένων, πάνω από200.000Token συμφραζομένων, έως καιΧωρίς ανώτατο όριοΧρέωση
Είσοδος · Token εισόδου $0.005 / 1K token
Έξοδος · Token εξόδου $0.03 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.0005 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token

Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. Πώς λειτουργούν η δέσμευση και η εκκαθάριση →

Παραδείγματα αιτημάτων

Ailoot Ultra · OpenAI Chat

curlPython SDKΡοή σε Python
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "google/gemini-2.5-pro", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='google/gemini-2.5-pro',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='google/gemini-2.5-pro',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")

Λήψη και αποθήκευση αποτελεσμάτων

Ailoot Ultra · OpenAI Chat

json ή SSE

Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα

Διατηρήστε κάθε πλήρη απάντηση, αρχείο και τμήμα περιεχομένου που επιστρέφεται.

Διατηρήστε κάθε επιλογή και το περιεχόμενο/τις κλήσεις εργαλείων/το περιεχόμενο συλλογιστικής της. Στο SSE συνθέστε τις διαφορικές ενημερώσεις ανά δείκτη επιλογής/εργαλείου και κρατήστε την τελική αιτία τερματισμού και τα στοιχεία χρήσης.

Αν χρειάζεται έλεγχος της αρχικής απάντησης

Διατηρήστε τα ID αιτήματος/απάντησης και τις κεφαλίδες. Δεν παρέχεται γενικό URL ανάκτησης εργασιών κειμένου.

Πεδία απάντησης
ΠεδίοΤύπος
Πεδίοchoices[].indexΤύποςinteger
Πεδίοchoices[].message.contentΤύποςstring|null
Πεδίοchoices[].message.tool_callsΤύποςtool_call[]
Πεδίοchoices[].message.reasoning_contentΤύποςstring
Πεδίοchoices[].message.reasoning_detailsΤύποςobject|array
Πεδίοchoices[].finish_reasonΤύποςstring|null
ΠεδίοusageΤύποςobject
Σφάλματα και επόμενα βήματα
ΑπάντησηΣυνθήκηΕπόμενο βήμα
Απάντηση400 · invalid_request_errorΣυνθήκηΜη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρουΕπόμενο βήμαΔιορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.

Εναλλακτικά ονόματα

Εναλλακτικά ονόματα μοντέλου

Ailoot gemini-2.5-pro
Ailoot Ultra gemini-2.5-pro, google/gemini-2.5-pro

Εναλλακτικές διαδρομές μεθόδων

/chat/completions

Σχετικά ID μοντέλων

google/gemini-2.5-pro, gemini-2.5-pro, gemini-2.5-pro

Ailoot Ultra · Anthropic Messages POST /v1/messages google/gemini-2.5-pro

google/gemini-2.5-pro

Google /google/gemini-2.5-pro
ID μοντέλου
  • gemini-2.5-pro
  • google/gemini-2.5-pro

Εισαγωγή

Το Gemini 2.5 Pro είναι το σταθερό μοντέλο σκέψης της Google για σύνθετο κώδικα, μαθηματικά, STEM και ανάλυση μεγάλου πλαισίου. Δέχεται κείμενο, εικόνες, ήχο, βίντεο και PDF και επιστρέφει κείμενο, με εργαλεία και δομημένη έξοδο. Ο δυναμικός προϋπολογισμός συλλογισμού του υποστηρίζει 128–32,768 tokens και δεν μπορεί να απενεργοποιηθεί πλήρως.

Αποδεκτές είσοδοι
Κείμενο
Αποτελέσματα
json · sse

Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι

Ailoot Ultra · Anthropic Messages POST /v1/messages
Είσοδος
text
Έξοδος
json, sse
Μορφή εξόδου
JSON ή SSE
ΠεδίοΤύποςΑπαίτησηΤιμές και όριαΠροεπιλογή
ΠεδίοmodelΤύποςstringΑπαίτησηΥποχρεωτικόΤιμές και όρια
google/gemini-2.5-pro
Προεπιλογή—
ΠεδίοmessagesΤύποςmessage[]ΑπαίτησηΥποχρεωτικόΤιμές και όριαΠροεπιλογή—
Πεδίοmessages[].roleΤύποςstringΑπαίτησηΥποχρεωτικόΤιμές και όρια
user, assistant
Προεπιλογή—
Πεδίοmessages[].contentΤύποςstringΑπαίτησηΥποχρεωτικόΤιμές και όριαΠροεπιλογή—
Πεδίοmax_tokensΤύποςintegerΑπαίτησηΥποχρεωτικόΤιμές και όριαΠροεπιλογή—
ΠεδίοstreamΤύποςbooleanΑπαίτησηΠροαιρετικόΤιμές και όριαΠροεπιλογήfalse
Συνδυασμοί υλικών εισόδου

Κείμενο · Κείμενο UTF-8

Συμβολοσειρά messages[].content

Παράμετροι και κύκλος ζωής μεθόδου
ΠαράμετροςΣύμβαση
Παράμετροςcontent_typeΣύμβασηapplication/json
ΠαράμετροςrequiredΣύμβασηmodel, messages, max_tokens
Παράμετροςoptional_controlsΣύμβασηstream
Παράμετροςmaterial_typesΣύμβασηtext
Παράμετροςtext_file_materialΣύμβασηΔιαβάστε το πραγματικό έγγραφο UTF-8 και τοποθετήστε το κείμενό του στην υποδεικνυόμενη συμβολοσειρά εισόδου ή περιεχομένου του μηνύματος.

Κύκλος ζωής: synchronous_or_streamed

Τιμολόγηση

Οι τιμολογιακές αναφορές δεν προσθέτουν επιλογές αιτήματος. Οι υποστηριζόμενες παράμετροι αναφέρονται στην επιλεγμένη μέθοδο.

Γρήγορη λειτουργία
Τυπική χρέωση Όταν επιλέγεται η γρήγορη λειτουργία
Λειτουργία flex
Τυπική χρέωση Όταν επιλέγεται η λειτουργία flex
Μέγιστη προσπάθεια συλλογισμού
Τυπική χρέωση Όταν η μέγιστη προσπάθεια συλλογισμού χρησιμοποιεί την προσαρμογή default
Τιμολόγηση ρητής αποθήκευσης στην κρυφή μνήμη
Δεν είναι ενεργοποιημένο Όταν ζητείται ρητή αποθήκευση στην κρυφή μνήμη
Έξοδος συλλογισμού
Ο συλλογισμός χρησιμοποιεί την αναγραφόμενη τιμή υποσυνόλου μέσα στη συνολική έξοδο· μην προσθέτετε αυτά τα token δύο φορές. Όταν η έξοδος περιλαμβάνει token συλλογισμού

Χρεώσεις Ailoot

Τιμές ανά διαμόρφωση

Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.

ΔιαμόρφωσηΠίνακας χρεώσεωνToken συμφραζομένων, πάνω απόToken συμφραζομένων, έως καιΧρέωση
ΔιαμόρφωσηΒασικές χρεώσεις ανά tokenΠίνακας χρεώσεωνΒασική χρέωσηToken συμφραζομένων, πάνω από—Token συμφραζομένων, έως καιΧωρίς ανώτατο όριοΧρέωση
Είσοδος · Token εισόδου $0.0025 / 1K token
Έξοδος · Token εξόδου $0.02 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.00025 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token
Έξοδος · Token εξόδου συλλογισμού $0.02 / 1K token
ΔιαμόρφωσηΕπίπεδο 1 βάσει μήκους αιτήματοςΠίνακας χρεώσεων—Token συμφραζομένων, πάνω από0Token συμφραζομένων, έως και200.000Χρέωση
Είσοδος · Token εισόδου $0.0025 / 1K token
Έξοδος · Token εξόδου $0.02 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.00025 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token
ΔιαμόρφωσηΕπίπεδο 2 βάσει μήκους αιτήματοςΠίνακας χρεώσεων—Token συμφραζομένων, πάνω από200.000Token συμφραζομένων, έως καιΧωρίς ανώτατο όριοΧρέωση
Είσοδος · Token εισόδου $0.005 / 1K token
Έξοδος · Token εξόδου $0.03 / 1K token
Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.0005 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη $0.00075 / 1K token
Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token

Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. Πώς λειτουργούν η δέσμευση και η εκκαθάριση →

Παραδείγματα αιτημάτων

Ailoot Ultra · Anthropic Messages

Πλήρες ελάχιστο σώμα JSONcurl · χρησιμοποιήστε το έγγραφό σας σε UTF-8Python · αποθηκεύστε το πλήρες αποτέλεσμα
{
  "model": "google/gemini-2.5-pro",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'google/gemini-2.5-pro', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'google/gemini-2.5-pro', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

Λήψη και αποθήκευση αποτελεσμάτων

Ailoot Ultra · Anthropic Messages

JSON ή SSE

Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα

Διατηρήστε κάθε πλήρη απάντηση, αρχείο και τμήμα περιεχομένου που επιστρέφεται.

Διατηρήστε όλα τα μπλοκ περιεχομένου, τις υπογραφές συλλογιστικής και τα πραγματικά ID χρήσης εργαλείων. Συνθέστε όλες τις διαφορικές ενημερώσεις μπλοκ SSE· το πρώτο μπλοκ κειμένου δεν είναι η πλήρης έξοδος.

Αν χρειάζεται έλεγχος της αρχικής απάντησης

Διατηρήστε τα ID αιτήματος/απάντησης και τις κεφαλίδες. Δεν παρέχεται γενικό URL ανάκτησης εργασιών κειμένου.

Πεδία απάντησης
ΠεδίοΤύπος
ΠεδίοidΤύποςstring
ΠεδίοmodelΤύποςstring
Πεδίοcontent[]Τύποςtext|thinking|tool_use|other content block
Πεδίοstop_reasonΤύποςstring|null
ΠεδίοusageΤύποςobject
Σφάλματα και επόμενα βήματα
ΑπάντησηΣυνθήκηΕπόμενο βήμα
Απάντηση400 · invalid_request_errorΣυνθήκηΜη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρουΕπόμενο βήμαΔιορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.

Εναλλακτικά ονόματα

Εναλλακτικά ονόματα μοντέλου

Ailoot gemini-2.5-pro
Ailoot Ultra gemini-2.5-pro, google/gemini-2.5-pro

Εναλλακτικές διαδρομές μεθόδων

/chat/completions

Σχετικά ID μοντέλων

google/gemini-2.5-pro, gemini-2.5-pro, gemini-2.5-pro

FAQ · Google: Gemini 2.5 Pro
Ποιες είσοδοι και αποτελέσματα διατίθενται;

POST /v1/messages · gemini-2.5-pro: text, image → text

POST /v1beta/models/{model}:generateContent · gemini-2.5-pro: text, image → text

POST /v1/chat/completions · gemini-2.5-pro: text → text

POST /v1/messages · gemini-2.5-pro: text → json, sse

POST /v1/chat/completions · google/gemini-2.5-pro: text → text

POST /v1/messages · google/gemini-2.5-pro: text → json, sse

Ποια πεδία χρησιμοποιεί το αίτημα;

POST /v1/messages · gemini-2.5-pro: model, messages, system, max_tokens, stream, metadata

POST /v1beta/models/{model}:generateContent · gemini-2.5-pro: contents, systemInstruction, sessionId

POST /v1/chat/completions · gemini-2.5-pro: model, messages, stream

POST /v1/messages · gemini-2.5-pro: model, messages, max_tokens, stream

POST /v1/chat/completions · google/gemini-2.5-pro: model, messages, stream, modalities, provider

POST /v1/messages · google/gemini-2.5-pro: model, messages, max_tokens, stream

Ποια όρια ισχύουν;

POST /v1/messages · gemini-2.5-pro: ctx: 1048576; max_out: 65536; messages.min_items: 1; max_tokens.minimum: 1

POST /v1beta/models/{model}:generateContent · gemini-2.5-pro: ctx: 1048576; max_out: 65536; contents.min_items: 1

POST /v1/chat/completions · gemini-2.5-pro: messages.min_items: 1

POST /v1/chat/completions · google/gemini-2.5-pro: messages.min_items: 1

Περισσότερες λεπτομέρειες

Συνδέστε το Ailoot με Claude Code, OpenCode, Hermes ή τη δική σας εφαρμογή.

Η εταιρεία και το χαρτοφυλάκιο έργων της

Η εταιρεία και το χαρτοφυλάκιο έργων της: εκατομμύρια πελάτες· μηνιαίες πωλήσεις δισεκατομμυρίων.

Αγοράστε token με έκπτωση.

Έκπτωση συνδρομής για τακτική χρήση. Προωθητικοί κωδικοί — έως 50% στην αγορά token.

Συνδρομή
Επιλέξτε πρόγραμμα με έκπτωση για τα τακτικά αιτήματά σας.
Προωθητικός κωδικός έως 50%
Εισαγάγετε τον κωδικό στην αγορά. Η τιμή επανυπολογίζεται σύμφωνα με την ενεργή προσφορά.
Δαπάνες στο ιστορικό
Μοντέλο, token και ποσό αποθηκεύονται για κάθε αίτημα.

Επιλέξτε συνδρομή · Δείτε τιμές μοντέλων

Συνδέστε το API με το προϊόν που πουλάτε.

SaaS, εφαρμογές και bot — σύμφωνα με τη δημόσια προσφορά και τη σύμβαση άδειας χρήσης Ailoot. Για μεταπώληση ζητήστε σχετική άδεια.

Εμπορική εφαρμογή
Ενσωματώστε δημιουργία κειμένου, εικόνων, βίντεο και ήχου στις πληρωμένες λειτουργίες της υπηρεσίας σας.
Άδεια για μεταπωλητή
Στείλτε περιγραφή έργου και τρόπο πρόσβασης. Ζητήστε γραπτούς όρους χρήσης και μεταπώλησης.
Έγγραφα στον ιστότοπο
Δημόσια προσφορά, σύμβαση άδειας χρήσης και πολιτική επεξεργασίας δεδομένων είναι διαθέσιμες πριν τη σύνδεση.

Ζητήστε άδεια μεταπώλησης · Δημόσια προσφορά και σύμβαση άδειας χρήσης