OpenAI: GPT-4.1 Mini (batch)
Επεξεργασία ανεξάρτητων αιτημάτων κειμένου σε παρτίδα, με αντιστοίχιση custom_id και προαιρετικό παράθυρο ολοκλήρωσης 24h.
Σχετικά με το μοντέλο
Αυτή η περιγραφή καλύπτει τις δυνατότητες του μοντέλου. Οι είσοδοι, έξοδοι και επιλογές που διατίθενται στο Ailoot παρατίθενται παρακάτω για την επιλεγμένη μέθοδο.
Το openai/gpt-4.1-mini:batch είναι η καταχώριση παρτίδας για ανεξάρτητες εργασίες κειμένου. Συγκεκριμένη χρήση είναι η εξαγωγή του ίδιου συνόλου πεδίων από πολλές παρεχόμενες συνομιλίες υποστήριξης, με ένα αποτέλεσμα ανά συνομιλία. Επιλέξτε αυτή τη διαδρομή όταν η μεταγενέστερη συλλογή ταιριάζει στη ροή και δεν απαιτείται ζωντανή απάντηση βοηθού.
Υποβάλετε ενσωματωμένο πίνακα requests στο /v1/batches, χρησιμοποιώντας endpoint=/v1/chat/completions και μοναδικό custom_id για κάθε στοιχείο. Κάθε body περιέχει messages· το completion_window δέχεται 24h. Η μέθοδος χρησιμοποιεί χρέωση υπολοίπου και απορρίπτει τη δημιουργία εργασίας παρτίδας με χρέωση συνδρομής. Η αποδεκτή είσοδος παρτίδας είναι κείμενο και δεν εκθέτει ροή μεταφόρτωσης Files/input_file_id. Η ευρύτερη περιγραφή του μοντέλου Mini δεν πρέπει να διαβάζεται ως υπόσχεση διαδραστικής καθυστέρησης για αυτή τη διαδρομή παρτίδας.
Ailoot Ultra · Μαζική επεξεργασία POST /v1/batches openai/gpt-4.1-mini:batch
openai/gpt-4.1-mini:batchΕισαγωγή
Επεξεργασία ανεξάρτητων αιτημάτων κειμένου σε παρτίδα, με αντιστοίχιση custom_id και προαιρετικό παράθυρο ολοκλήρωσης 24h.
- Αποδεκτές είσοδοι
- Κείμενο
- Αποτελέσματα
- Κείμενο
Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι
Ailoot Ultra · Μαζική επεξεργασία POST /v1/batches
- Είσοδος
text- Έξοδος
text- Μορφή εξόδου
- Ενσωματωμένο JSON στο results[].response.body
| Πεδίο | Τύπος | Απαίτηση | Τιμές και όρια | Προεπιλογή |
|---|---|---|---|---|
Πεδίοendpoint | Τύποςstring | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια /v1/chat/completions | Προεπιλογή— |
Πεδίοmodel | Τύποςstring | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια openai/gpt-4.1-mini: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/gpt-4.1-mini:batch, openai/gpt-4.1-mini | Προεπιλογή— |
Πεδίο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.0004 / 1K token Έξοδος · Token εξόδου $0.0016 / 1K token Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.0001 / 1K token Είσοδος · Εγγραφή στην κρυφή μνήμη — / 1K token Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα — / 1K token |
| ΔιαμόρφωσηΕπίπεδο 1 βάσει μήκους αιτήματος | Πίνακας χρεώσεων— | Token συμφραζομένων, πάνω από0 | Token συμφραζομένων, έως καιΧωρίς ανώτατο όριο | Χρέωση Είσοδος · Token εισόδου $0.0004 / 1K token Έξοδος · Token εξόδου $0.0016 / 1K token Είσοδος · Ανάγνωση από την κρυφή μνήμη $0.0001 / 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/gpt-4.1-mini: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/gpt-4.1-mini:batch', 'openai/gpt-4.1-mini']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"openai/gpt-4.1-mini: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/gpt-4.1-mini:batch
Εναλλακτικές διαδρομές μεθόδων
Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.
Σχετικά ID μοντέλων
FAQ · OpenAI: GPT-4.1 Mini (batch)
- Ποιες είσοδοι και αποτελέσματα διατίθενται;
POST /v1/batches·openai/gpt-4.1-mini:batch:text→text- Ποια πεδία χρησιμοποιεί το αίτημα;
POST /v1/batches·openai/gpt-4.1-mini:batch:endpoint,model,requests,completion_window,provider- Ποια όρια ισχύουν;
POST /v1/batches·openai/gpt-4.1-mini:batch:requests.min_items:1