OpenAI: o3 (batch)
Το OpenAI o3 είναι μοντέλο συλλογισμού για εργασίες πολλών βημάτων σε μαθηματικά, επιστήμη, κώδικα και εικόνες. Επιστρέφει κείμενο και υποστηρίζει δομημένες απαντήσεις και χρήση εργαλείων, ώστε να χρησιμεύει στη διερεύνηση τεχνικού προβλήματος και στην παραγωγή τεκμηριωμένης εξήγησης ή προτεινόμενης λύσης.
Σχετικά με το μοντέλο
Αυτή η περιγραφή καλύπτει τις δυνατότητες του μοντέλου. Οι είσοδοι, έξοδοι και επιλογές που διατίθενται στο Ailoot παρατίθενται παρακάτω για την επιλεγμένη μέθοδο.
Το o3 είναι το μοντέλο συλλογισμού γενικής χρήσης της σειράς o της OpenAI για σύνθετες εργασίες. Ο κατασκευαστής δίνει έμφαση στα μαθηματικά, την επιστήμη, την ανάπτυξη κώδικα, τον οπτικό συλλογισμό, την τεχνική γραφή και την τήρηση οδηγιών. Δέχεται κείμενο και εικόνες και παράγει κείμενο, οπότε μια εργασία μπορεί να συνδυάζει γραπτό πρόβλημα, κώδικα και διάγραμμα, αντί να αντιμετωπίζει κάθε πηγή ως μεμονωμένη ερώτηση. Το επιθυμητό αποτέλεσμα είναι μελετημένη απάντηση σε πρόβλημα πολλών βημάτων, με τις πληροφορίες που απαιτούνται για την αξιολόγησή της.
Για μαθηματική ή επιστημονική ερώτηση, δώσε το πλήρες πρόβλημα, τους ορισμούς, τις γνωστές ποσότητες, τις μονάδες και τους περιορισμούς. Δήλωσε αν χρειάζεσαι αναλυτική εξαγωγή, αριθμητικό αποτέλεσμα, σύγκριση υποθέσεων ή εξήγηση για συγκεκριμένο κοινό. Ενδεικτικές οδηγίες εξόδου είναι: προσδιόρισε τις σχετικές παραδοχές, παρουσίασε τη λύση με τις μονάδες της και εξήγησε ποια παρεχόμενα γεγονότα τη στηρίζουν. Ζήτησε χρήσιμη εξήγηση στην τελική απάντηση· τα εσωτερικά token συλλογισμού της OpenAI δεν εκτίθενται ως ακατέργαστο ίχνος εργασίας του μοντέλου.
Για εργασία λογισμικού, δώσε τον σχετικό κώδικα, την αναμενόμενη συμπεριφορά και την παρατηρημένη αστοχία, μαζί με το ακριβές σφάλμα ή την είσοδο που την αποκαλύπτει. Ζήτησε από το o3 να συνδέσει τα συμπτώματα με εύλογη αιτία και να προτείνει εστιασμένη αλλαγή με εξήγηση. Μια οπτική εργασία μπορεί να περιλαμβάνει διάγραμμα, στιγμιότυπο οθόνης ή σχεδιασμένο γράφημα αποτελέσματος: προσδιόρισε την ερώτηση και τις ετικέτες ή την περιοχή που έχουν σημασία, διατήρησε ευανάγνωστη κλίμακα και ζήτησε συμπέρασμα συνδεδεμένο με όσα είναι πραγματικά ορατά. Αυτά τα βήματα προετοιμασίας δίνουν στο μοντέλο καθορισμένο πρόβλημα και συγκεκριμένη έξοδο, αντί για απεριόριστο αίτημα εξέτασης των πάντων.
Η OpenAI αναφέρει παράθυρο συμφραζομένων 200.000 token, μέγιστη έξοδο 100.000 token και ημερομηνία αποκοπής γνώσεων την 1η Ιουνίου 2024. Ο εσωτερικός συλλογισμός χρησιμοποιεί χωρητικότητα συμφραζομένων και εξόδου μαζί με την ορατή απάντηση. Επομένως, η μέγιστη έξοδος δεν υπόσχεται 100.000 ορατά token απάντησης και τα συμφραζόμενα δεν αποτελούν πρόσθετο ανεξάρτητο όριο εξόδου. Άφησε χώρο μετά το υλικό εισόδου για ανάλυση και το ζητούμενο αποτέλεσμα. Ο οδηγός συλλογισμού του παραγωγού περιγράφει ημιτελείς αποκρίσεις όταν εξαντλείται το όριο συμφραζομένων ή εξόδου· αυτό μπορεί να συμβεί πριν εμφανιστεί ορατή απάντηση.
Η συγκεκριμένη προδιαγραφή του o3 τεκμηριώνει τις διεπαφές Chat Completions, Responses και Batch, μαζί με σταδιακή ροή απαντήσεων, Structured Outputs, κλήσεις συναρτήσεων, ανέβασμα αρχείων, είσοδο εικόνας, αναζήτηση αρχείων και αποθήκευση της εισόδου στην κρυφή μνήμη. Το τεκμηριωμένο σύνολο εργαλείων του περιλαμβάνει αναζήτηση στον ιστό και σε αρχεία, εκτέλεση κώδικα μέσω διερμηνευτή, δημιουργία εικόνας και συνδέσεις MCP. Ένα αποτέλεσμα αναζήτησης ή υπολογισμού είναι πρόσθετο στοιχείο για την εργασία, ενώ μια κλήση συνάρτησης ζητά λειτουργία από την περιβάλλουσα εφαρμογή. Κράτησε τα επιστρεφόμενα στοιχεία συνδεδεμένα με την ερώτηση που απαντούν και ξεχώρισε την προτεινόμενη ενέργεια από επιβεβαιωμένο αποτέλεσμα. Η έξοδος του ίδιου του μοντέλου παραμένει κείμενο ακόμη και όταν ένα εργαλείο δημιουργίας εικόνας παράγει ξεχωριστό αρχείο.
Οι οδηγίες συλλογισμού της OpenAI προτιμούν απλές, άμεσες οδηγίες με σαφή όρια ανάμεσα στις οδηγίες και στο αρχικό υλικό. Δήλωσε τον στόχο, τους περιορισμούς και την απαιτούμενη μορφή απάντησης, αντί να υπαγορεύεις την ιδιωτική διαδικασία σκέψης του μοντέλου. Χρησιμοποίησε παραδείγματα όταν ξεκαθαρίζουν μια δύσκολη μορφή ή έναν κανόνα απόφασης και κράτησέ τα συνεπή με τις πραγματικές απαιτήσεις. Για μεγάλο τεχνικό έγγραφο, βάλε ετικέτες στις ενότητες και ζήτησε τα αποσπάσματα ή τις σχέσεις που σχετίζονται με συγκεκριμένη ερώτηση· για έλεγχο κώδικα, προσδιόρισε τη συμπεριφορά και τον κίνδυνο που θέλεις να διερευνηθούν.
Ένα χρήσιμο παραδοτέο του o3 μπορεί να είναι επεξεργασμένη τεχνική εξήγηση, ανάλυση διαγράμματος, τεκμηριωμένη διόρθωση κώδικα ή σύγκριση βασισμένη στο παρεχόμενο υλικό. Κάνε ρητές τις αστήρικτες παραδοχές και τις πληροφορίες που λείπουν και έλεγξε καθοριστικούς υπολογισμούς ή συμπεριφορά κώδικα έναντι του αρχικού προβλήματος. Η ημερομηνία αποκοπής γνώσεων σημαίνει ότι πρόσφατα γεγονότα χρειάζονται παρεχόμενο υλικό ή κατάλληλο εργαλείο πληροφόρησης. Σαφή στοιχεία, ρητό κριτήριο ολοκλήρωσης και επαρκής χώρος εξόδου βοηθούν να μετατραπεί μια ευρεία εργασία συλλογισμού σε αποτέλεσμα που άλλος άνθρωπος μπορεί να εξετάσει και να χρησιμοποιήσει.
Ailoot Ultra · Μαζική επεξεργασία POST /v1/batches openai/o3:batch
openai/o3:batchΕισαγωγή
Το OpenAI o3 είναι μοντέλο συλλογισμού για εργασίες πολλών βημάτων σε μαθηματικά, επιστήμη, κώδικα και εικόνες. Επιστρέφει κείμενο και υποστηρίζει δομημένες απαντήσεις και χρήση εργαλείων, ώστε να χρησιμεύει στη διερεύνηση τεχνικού προβλήματος και στην παραγωγή τεκμηριωμένης εξήγησης ή προτεινόμενης λύσης.
- Αποδεκτές είσοδοι
- Κείμενο
- Αποτελέσματα
- Κείμενο
Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι
Ailoot Ultra · Μαζική επεξεργασία POST /v1/batches
- Είσοδος
text- Έξοδος
text- Μορφή εξόδου
- Ενσωματωμένο JSON στο results[].response.body
| Πεδίο | Τύπος | Απαίτηση | Τιμές και όρια | Προεπιλογή |
|---|---|---|---|---|
Πεδίοendpoint | Τύποςstring | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια /v1/chat/completions | Προεπιλογή— |
Πεδίοmodel | Τύποςstring | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια openai/o3:batch | Προεπιλογή— |
Πεδίοrequests | Τύποςbatch_item[] | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια Ελάχιστο πλήθος στοιχείων: 1 | Προεπιλογή— |
Πεδίοrequests[].custom_id | Τύποςstring | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια | Προεπιλογή— |
Πεδίοrequests[].body.messages | Τύποςmessage[] | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια | Προεπιλογή— |
Πεδίοcompletion_window | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια 24h | Προεπιλογή— |
Πεδίοprovider | Τύποςobject|null | ΑπαίτησηΠροαιρετικό | Τιμές και όρια | Προεπιλογή— |
Πεδίοrequests[].body.model | Τύποςstring | ΑπαίτησηΠροαιρετικό | Τιμές και όρια openai/o3:batch, openai/o3 | Προεπιλογή— |
Πεδίοprovider.only | Τύποςstring[] | ΑπαίτησηΠροαιρετικό | Τιμές και όρια openai | Προεπιλογή— |
Πεδίοprovider.allow_fallbacks | Τύποςboolean|null | ΑπαίτησηΠροαιρετικό | Τιμές και όρια false, null | Προεπιλογή— |
Παράμετροι και κύκλος ζωής μεθόδου
| Παράμετρος | Σύμβαση |
|---|---|
Παράμετροςcontent_type | Σύμβασηapplication/json |
Παράμετροςrequired | Σύμβασηendpoint, model, requests |
Παράμετροςmaterial_types | Σύμβασηtext |
Παράμετροςrepresentation | ΣύμβασηΕνσωματωμένος πίνακας requests[]· κάθε στοιχείο έχει custom_id και body |
Παράμετροςrequest_endpoint_profile | Σύμβαση/v1/chat/completions |
Παράμετροςfile_material | ΣύμβασηΟ καλών μπορεί να διαβάσει το πραγματικό υλικό UTF-8 JSONL τοπικά στον πίνακα requests[]. Δεν χρησιμοποιείται παράμετρος purpose για μεταφόρτωση, input_file_id ή αναφορά σε αρχείο. Αν το υλικό του πελάτη λείπει ή είναι κενό, η προετοιμασία σταματά πριν από το POST. |
Παράμετροςserialization_order | Σύμβασηendpoint, model, provider (αν παρέχεται), completion_window (αν παρέχεται), requests στο τέλος |
Παράμετροςoptional_controls | Σύμβασηprovider.only, provider.allow_fallbacks, completion_window |
Παράμετροςschema_scope | ΣύμβασηΣώματα αιτημάτων Text Chat Completions στον τεκμηριωμένο ενσωματωμένο φάκελο Batch. |
Κύκλος ζωής: asynchronous
GET /v1/batches/{operation_id} · Το πραγματικό response.id της αρχικής απόκρισης δημιουργίας· ο ίδιος χρήστης, το ίδιο κλειδί και η ίδια ομάδα
Τιμολόγηση
Οι τιμολογιακές αναφορές δεν προσθέτουν επιλογές αιτήματος. Οι υποστηριζόμενες παράμετροι αναφέρονται στην επιλεγμένη μέθοδο.
- Γρήγορη λειτουργία
- Δεν έχει οριστεί Όταν επιλέγεται η γρήγορη λειτουργία
- Λειτουργία flex
- Δεν έχει οριστεί Όταν επιλέγεται η λειτουργία flex
- Μέγιστη προσπάθεια συλλογισμού
- Δεν έχει οριστεί Όταν η μέγιστη προσπάθεια συλλογισμού χρησιμοποιεί την προσαρμογή default
- Τιμολόγηση ρητής αποθήκευσης στην κρυφή μνήμη
- Δεν είναι ενεργοποιημένο Όταν ζητείται ρητή αποθήκευση στην κρυφή μνήμη
Χρεώσεις Ailoot
Τιμές ανά διαμόρφωση
Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.
| Διαμόρφωση | Πίνακας χρεώσεων | Token συμφραζομένων, πάνω από | Token συμφραζομένων, έως και | Χρέωση |
|---|---|---|---|---|
| ΔιαμόρφωσηΒασικές χρεώσεις ανά token | Πίνακας χρεώσεωνΒασική χρέωση | Token συμφραζομένων, πάνω από— | Token συμφραζομένων, έως καιΧωρίς ανώτατο όριο | Χρέωση Είσοδος · Token εισόδου $0.002 / 1K token Έξοδος · Token εξόδου $0.008 / 1K token Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.0005 / 1K token Είσοδος · Εγγραφή στην κρυφή μνήμη — / 1K token Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token |
| ΔιαμόρφωσηΕπίπεδο 1 βάσει μήκους αιτήματος | Πίνακας χρεώσεων— | Token συμφραζομένων, πάνω από0 | Token συμφραζομένων, έως καιΧωρίς ανώτατο όριο | Χρέωση Είσοδος · Token εισόδου $0.002 / 1K token Έξοδος · Token εξόδου $0.008 / 1K token Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.0005 / 1K token Είσοδος · Εγγραφή στην κρυφή μνήμη — / 1K token Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token |
Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. Πώς λειτουργούν η δέσμευση και η εκκαθάριση →
Παραδείγματα αιτημάτων
Ailoot Ultra · Μαζική επεξεργασία
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json
from pathlib import Path
body=json.loads('{"endpoint":"/v1/chat/completions","model":"openai/o3:batch","requests":[{"custom_id":"req-0001","body":{"messages":[{"role":"user","content":"Hello!"}],"max_tokens":16}}]}')
Path("batch-request.json").write_text(json.dumps(body,ensure_ascii=False),encoding="utf-8")
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json
import json, os
from pathlib import Path
from urllib.request import Request, urlopen
def prepare_requests(customer_path):
path = Path(customer_path)
if not path.is_file(): raise ValueError("Customer JSONL file is missing")
items = [json.loads(line) for line in path.read_text(encoding="utf-8").splitlines() if line.strip()]
if not items: raise ValueError("Customer JSONL contains no requests")
ids = set()
for item in items:
if set(item) != {"custom_id", "body"}: raise ValueError("Each item needs custom_id and body")
cid = item["custom_id"]
if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError("custom_id must be nonempty and unique")
ids.add(cid)
if not isinstance(item["body"], dict) or not item["body"].get("messages"): raise ValueError("Supply actual text messages")
supplied_model = item["body"].get("model")
if supplied_model is not None and supplied_model not in ['openai/o3:batch', 'openai/o3']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"openai/o3:batch", "requests":items}
if __name__ == "__main__":
material = os.environ.get("AILOOT_BATCH_REQUESTS_JSONL", "")
if not material: raise SystemExit("Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file")
body = prepare_requests(material)
key = os.environ.get("AILOOT_API_KEY", "")
if not key: raise SystemExit("Set AILOOT_API_KEY")
request = Request("https://api.ailoot.ai/v1/batches", data=json.dumps(body, ensure_ascii=False).encode("utf-8"), headers={"Authorization":"Bearer " + key, "Content-Type":"application/json"}, method="POST")
with urlopen(request) as response:
raw = response.read()
Path("batch-create-response.json").write_bytes(raw)
print(raw.decode("utf-8"))
import json
from pathlib import Path
raw = Path("batch-status-response.json").read_bytes()
response = json.loads(raw)
if response.get("status") != "completed":
raise SystemExit("Keep the original operation; read its status without resubmitting")
results = response.get("results")
if not isinstance(results, list) or not results:
raise SystemExit("Preserve the original response; completed results are missing")
Path("batch-results.jsonl").write_text("".join(json.dumps(item, ensure_ascii=False) + "\n" for item in results), encoding="utf-8")
# Preserve batch-status-response.json with aggregate usage and every result/error.
Λήψη και αποθήκευση αποτελεσμάτων
Ailoot Ultra · Μαζική επεξεργασία
Ενσωματωμένο JSON στο results[].response.body
GET /v1/batches/{operation_id}
Έλεγχος κατάστασης εργασίας
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
BATCH_OPERATION_ID="$(python3 - <<'PY_ID'
import json
from pathlib import Path
from urllib.parse import quote
response = json.loads(Path("batch-create-response.json").read_text(encoding="utf-8"))
operation = response.get("id")
if not isinstance(operation, str) or not operation: raise SystemExit("No actual original operation ID; preserve the response and do not resubmit")
print(quote(operation, safe=""))
PY_ID
)"
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o batch-status-response.json
Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα
Διατηρήστε κάθε πλήρη απάντηση, αρχείο και τμήμα περιεχομένου που επιστρέφεται.
Διατηρήστε ολόκληρο το αρχικό JSON κατάστασης, κάθε result/custom_id και ολόκληρο το σώμα της απόκρισης ή του σφάλματος. Αποθηκεύστε τα ολοκληρωμένα results[] ως JSONL χωρίς φιλτράρισμα.
Αν χρειάζεται έλεγχος της αρχικής απάντησης
Διατηρήστε το αρχικό ID της λειτουργίας. Η απόκριση 503 result_pending_check περιέχει X-Should-Retry:false· μην υποβάλετε ποτέ ξανά μια αρχική μαζική εργασία με άγνωστη έκβαση.
Πεδία απάντησης
| Πεδίο | Τύπος |
|---|---|
Πεδίοresults[].custom_id | Τύποςstring |
Πεδίοresults[].response.body.choices[].message.content | Τύποςstring|null |
Πεδίοresults[].error | Τύποςobject|null |
Πεδίοusage | Τύποςobject|null |
Πεδίοid | Τύποςstring |
Πεδίοmodel | Τύποςstring |
Πεδίοendpoint | Τύποςstring |
Πεδίοstatus | Τύποςstring |
Πεδίοrequest_counts | Τύποςobject |
Πεδίοresults[].id | Τύποςstring |
Πεδίοresults[].response.status_code | Τύποςinteger |
Πεδίοresults[].response.request_id | Τύποςstring |
Σφάλματα και επόμενα βήματα
| Απάντηση | Συνθήκη | Επόμενο βήμα |
|---|---|---|
Απάντηση400 · invalid_request_error | ΣυνθήκηΜη έγκυρος τεκμηριωμένος ενσωματωμένος φάκελος, διπλότυπα κλειδιά, ταυτότητα στοιχείου ή σύγκρουση με τις ρυθμισμένες δυνατότητες του μοντέλου. | Επόμενο βήμαΔιορθώστε τα υποδεικνυόμενα πεδία πριν από οποιαδήποτε νέα υποβολή. |
Απάντηση401 · authentication_error | ΣυνθήκηΜη έγκυρο κλειδί API. | Επόμενο βήμαΧρησιμοποιήστε το εξουσιοδοτημένο κλειδί Ailoot. |
Απάντηση403 · permission_error | ΣυνθήκηΗ ομάδα μαζικής επεξεργασίας δεν είναι διαθέσιμη. | Επόμενο βήμαΕλέγξτε τα δικαιώματα πρόσβασης του κλειδιού/της ομάδας. |
Απάντηση422 · invalid_request_error | ΣυνθήκηΗ μαζική επεξεργασία χρεώνεται στο υπόλοιπο· η δημιουργία μέσω συνδρομής απορρίπτεται. | Επόμενο βήμαΧρησιμοποιήστε την εξουσιοδοτημένη ομάδα που χρεώνεται στο υπόλοιπο. |
Απάντηση422 · price_unavailable | ΣυνθήκηΔεν μπορεί να υπολογιστεί προσφορά κόστους για την είσοδο της μαζικής εργασίας. | Επόμενο βήμαΔιατηρήστε την απόκριση· χρησιμοποιήστε την τεκμηριωμένη είσοδο της οικογένειας API. |
Απάντηση402 · billing_error | ΣυνθήκηΤο ποσό δέσμευσης για τη μαζική επεξεργασία δεν είναι διαθέσιμο. | Επόμενο βήμαΕπιλύστε το ζήτημα αποδοχής πριν από ένα νέο αίτημα. |
Απάντηση503 · price_unavailable | ΣυνθήκηΗ τιμή της μεθόδου μαζικής επεξεργασίας/οι εγγενείς τιμές δεν είναι διαθέσιμες. | Επόμενο βήμαΔιατηρήστε την απόκριση· μην αντικαθιστάτε τις τιμές. |
Απάντηση503 · api_error | ΣυνθήκηΗ ακριβής διαδρομή του προμηθευτή δεν είναι διαθέσιμη. | Επόμενο βήμαΔιατηρήστε την απόκριση για τη διόρθωση της διαδρομής. |
Απάντηση503 · result_pending_check | ΣυνθήκηΤο αρχικό αποτέλεσμα χρειάζεται έλεγχο· X-Should-Retry:false. | Επόμενο βήμαΔιατηρήστε το αρχικό operation_id/id και διαβάστε την κατάστασή του· μην επαναλάβετε ποτέ το αρχικό POST. |
Απάντηση404 · not_found | ΣυνθήκηΗ λειτουργία κατάστασης της μαζικής εργασίας δεν υπάρχει ή ανήκει σε άλλη ταυτότητα. | Επόμενο βήμαΧρησιμοποιήστε το ακριβές αρχικό id και τον ίδιο χρήστη, το ίδιο κλειδί και την ίδια ομάδα. |
Εναλλακτικά ονόματα
Εναλλακτικά ονόματα μοντέλου
Ailoot Ultra openai/o3:batch
Εναλλακτικές διαδρομές μεθόδων
Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.
Σχετικά ID μοντέλων
FAQ · OpenAI: o3 (batch)
- Ποιες είσοδοι και αποτελέσματα διατίθενται;
POST /v1/batches·openai/o3:batch:text→text- Ποια πεδία χρησιμοποιεί το αίτημα;
POST /v1/batches·openai/o3:batch:endpoint,model,requests,completion_window,provider- Ποια όρια ισχύουν;
POST /v1/batches·openai/o3:batch:requests.min_items:1