OpenAI: o3 Mini (batch)
OpenAI o3-mini ist ein Text-Reasoning-Modell für Naturwissenschaften, Mathematik und Programmierung. Es bietet die Reasoning-Stufen low, medium und high, einen Kontext von 200K, strukturierte Ausgaben und Abläufe mit Werkzeugen. Das maximale Budget für die erzeugte Ausgabe beträgt 100K Token.
Über das Modell
Diese Beschreibung erläutert die Fähigkeiten des Modells. Die über Ailoot verfügbaren Eingaben, Ausgaben und Optionen sind unten für die ausgewählte Methode aufgeführt.
OpenAI o3-mini ist ein kleineres Reasoning-Modell der o-Serie für die Lösung technischer Probleme, darunter Naturwissenschaften, Mathematik und Programmierung. Es nimmt Text entgegen und erzeugt Text, mit zusätzlichem internem Schlussfolgern vor der sichtbaren Antwort. Verwenden Sie es für ein klar beschriebenes mathematisches Problem, eine algorithmische Analyse, eine Codeüberarbeitung oder einen technischen Vergleich, dessen Schlussfolgerung von mehreren Bedingungen abhängt. Der Reasoning-Aufwand lässt sich für die Basisedition o3-mini einstellen; eine Voreinstellung o3-mini High wählt einen hohen Aufwand, statt einen separaten Satz von Modellgewichten zu bezeichnen.
Der Hersteller dokumentiert die Reasoning-Stufen low, medium und high. Ein höherer Aufwand kann ein anspruchsvolles Problem unterstützen und mehr Generierungszeit erfordern, während die gewünschte sichtbare Antwort trotzdem knapp ausfallen kann. Geben Sie dem Modell die Aufgabe, Bedingungen und Ausgabeanforderungen vor, statt eine lange Folge von Zwischengedanken zu verlangen. Stellen Sie bei einem algorithmischen Problem die Eingabegrenzen, das erforderliche Verhalten und die für die Korrektheit entscheidenden Fälle bereit. Definieren Sie bei mathematischen Aufgaben Variablen, Definitionsbereiche, Notation und das benötigte Ergebnis.
OpenAI nennt ein Kontextfenster von 200.000 Token, ein maximales Ausgabebudget von 100.000 Token und einen Wissensstand bis zum 1. Oktober 2023. Reasoning-Token beanspruchen den verfügbaren Kontext und das Budget für die erzeugte Ausgabe vor der abschließenden Antwort. Das Maximum ist daher keine Zusage einer entsprechend langen sichtbaren Antwort. Lassen Sie Platz für Analyse und gewünschtes Ergebnis. Eine Anfrage kann ihr Budget für erzeugte Token ausschöpfen, bevor nützlicher sichtbarer Text zurückgegeben wird, wenn das Budget für das Problem zu klein ist.
Die native Eingabemodalität ist Text, nicht Bilderkennung. Wenn eine Aufgabe aus einem Diagramm oder Screenshot stammt, stellen Sie die relevanten Bedingungen schriftlich bereit. Der Hersteller nennt Datei-Uploads und Dateisuche in Abläufen mit Werkzeugen. Diese können relevantes Textmaterial liefern, ohne die native Modalität des Modells zu ändern. Benennen Sie die Quellenpassagen oder Dateiinhalte, die zur Beantwortung der Frage benötigt werden, statt anzunehmen, dass jeder Anhang automatisch nützliche Belege beisteuert.
Das Modell unterstützt Structured Outputs, Funktionsaufrufe und Streaming. Die Modellkarte des Herstellers führt die Schnittstellen Responses, Chat Completions, Assistants und Batch auf. Geben Sie bei einer strukturierten Aufgabe die erforderlichen Felder und die Darstellung fehlender Informationen vor. In einem Werkzeugablauf schlägt das Modell eine Funktion und Argumente vor; die Anwendung führt die Aktion aus und liefert die tatsächliche Beobachtung zurück. Halten Sie eine vorgeschlagene Operation von einer Operation getrennt, deren Ergebnis bereits vorliegt.
Die aktuelle Werkzeugliste des Herstellers nennt außerdem Dateisuche, Codeinterpretation, MCP-Verbindungen und Werkzeuge zur Bilderzeugung. Diese konfigurierten Werkzeuge haben eigene Operationen; sie machen aus der direkten Textantwort von o3-mini keine native Bild- oder Audioausgabe. Stellen Sie bei einer Programmieraufgabe den Code, den beobachteten Fehler und die Anforderungen bereit und fordern Sie dann einen Änderungsvorschlag mit einer Erklärung der berücksichtigten Fälle an. Wenn Ausführungsergebnisse vorliegen, liefern Sie sie als Belege für die nächste Überarbeitung, statt nicht ausgeführten Code als abgeschlossenes Ergebnis zu behandeln.
Ein nützliches fertiges Ergebnis kann eine Formel, ein begründeter Vergleich, ein Codevorschlag oder ein strukturiertes technisches Ergebnis sein, das seine Schlussfolgerung mit den ursprünglichen Bedingungen verknüpft. Benennen Sie bei einer Folgeanfrage die neuen Belege und den zu überarbeitenden Teil der Antwort. Bewahren Sie den relevanten Gesprächsverlauf und die Werkzeugbeobachtungen, damit die nächste Antwort mit tatsächlichen Ergebnissen arbeiten kann. Die kleinere Reasoning-Rolle des Modells ist praktisch, wenn eine Aufgabe Analyse, klare Bedingungen und ein gezieltes Textergebnis benötigt statt unbelegter Annahmen über externe Aktionen.
Ailoot Ultra · Stapelverarbeitung POST /v1/batches openai/o3-mini:batch
openai/o3-mini:batchEinstieg
OpenAI o3-mini ist ein Text-Reasoning-Modell für Naturwissenschaften, Mathematik und Programmierung. Es bietet die Reasoning-Stufen low, medium und high, einen Kontext von 200K, strukturierte Ausgaben und Abläufe mit Werkzeugen. Das maximale Budget für die erzeugte Ausgabe beträgt 100K Token.
- Zulässige Eingaben
- Text
- Ergebnisse
- Text
In Ailoot verfügbar · Eingaben und Methoden
Ailoot Ultra · Stapelverarbeitung POST /v1/batches
- Eingabe
text- Ausgabe
text- Ausgabeformat
- eingebettetes JSON unter results[].response.body
| Feld | Typ | Anforderung | Werte und Limits | Standard |
|---|---|---|---|---|
Feldendpoint | Typstring | AnforderungErforderlich | Werte und Limits /v1/chat/completions | Standard— |
Feldmodel | Typstring | AnforderungErforderlich | Werte und Limits openai/o3-mini:batch | Standard— |
Feldrequests | Typbatch_item[] | AnforderungErforderlich | Werte und Limits Mindestanzahl Elemente: 1 | Standard— |
Feldrequests[].custom_id | Typstring | AnforderungErforderlich | Werte und Limits | Standard— |
Feldrequests[].body.messages | Typmessage[] | AnforderungErforderlich | Werte und Limits | Standard— |
Feldcompletion_window | Typstring | AnforderungOptional | Werte und Limits 24h | Standard— |
Feldprovider | Typobject|null | AnforderungOptional | Werte und Limits | Standard— |
Feldrequests[].body.model | Typstring | AnforderungOptional | Werte und Limits openai/o3-mini:batch, openai/o3-mini | Standard— |
Feldprovider.only | Typstring[] | AnforderungOptional | Werte und Limits openai | Standard— |
Feldprovider.allow_fallbacks | Typboolean|null | AnforderungOptional | Werte und Limits false, null | Standard— |
Methodenparameter und Lebenszyklus
| Parameter | Vertrag |
|---|---|
Parametercontent_type | Vertragapplication/json |
Parameterrequired | Vertragendpoint, model, requests |
Parametermaterial_types | Vertragtext |
Parameterrepresentation | Vertrageingebettete requests[]; jedes Element enthält custom_id und body |
Parameterrequest_endpoint_profile | Vertrag/v1/chat/completions |
Parameterfile_material | VertragDer Aufrufer kann tatsächliches UTF-8-JSONL lokal in requests[] einlesen. Es werden weder ein Upload-Zweck noch input_file_id oder eine Dateireferenz verwendet. Fehlendes oder leeres Kundenmaterial stoppt die Vorbereitung vor POST. |
Parameterserialization_order | Vertragendpoint, model, provider (falls angegeben), completion_window (falls angegeben), requests als letztes Feld |
Parameteroptional_controls | Vertragprovider.only, provider.allow_fallbacks, completion_window |
Parameterschema_scope | VertragAnfragekörper für Text Chat Completions in der dokumentierten Inline-Batch-Struktur. |
Lebenszyklus: asynchronous
GET /v1/batches/{operation_id} · die tatsächliche response.id der ursprünglichen Erstellungsantwort; derselbe Nutzer/Schlüssel/dieselbe Gruppe
Tarife
Tarifangaben erweitern die Anfrageoptionen nicht. Unterstützte Parameter stehen bei der ausgewählten Methode.
- Schnellmodus
- Nicht angegeben Wenn der Schnellmodus ausgewählt ist
- Flex-Modus
- Nicht angegeben Wenn der Modus flex ausgewählt ist
- Maximaler Denkaufwand
- Nicht angegeben Wenn beim maximalen Denkaufwand die Standardanpassung (default) verwendet wird
- Preise für explizites Caching
- Nicht aktiviert Wenn explizites Caching angefordert wird
Ailoot-Tarife
Preise nach Konfiguration
Ordnen Sie jede Gebühr den angezeigten Bedingungen zu. Verwenden Sie für jede Gruppe alternativer Konfigurationen einen Tarif.
| Konfiguration | Tarifstaffel | Kontexttoken, mehr als | Kontexttoken, bis einschließlich | Gebühr |
|---|---|---|---|---|
| KonfigurationBasistarife für Token | TarifstaffelGrundtarif | Kontexttoken, mehr als— | Kontexttoken, bis einschließlichKeine Obergrenze | Gebühr Eingabe · Eingabetoken $0.0011 / 1K Tokens Ausgabe · Ausgabetoken $0.0044 / 1K Tokens Eingabe · Cache lesen $0.00055 / 1K Tokens Eingabe · In Cache schreiben — / 1K Tokens Eingabe · In Cache schreiben, 1 Stunde — / 1K Tokens |
| KonfigurationAnfragelängenstufe 1 | Tarifstaffel— | Kontexttoken, mehr als0 | Kontexttoken, bis einschließlichKeine Obergrenze | Gebühr Eingabe · Eingabetoken $0.0011 / 1K Tokens Ausgabe · Ausgabetoken $0.0044 / 1K Tokens Eingabe · Cache lesen $0.00055 / 1K Tokens Eingabe · In Cache schreiben — / 1K Tokens Eingabe · In Cache schreiben, 1 Stunde — / 1K Tokens |
Ailoot reserviert vor einer Anfrage einen geschätzten Betrag. Nach dem Ergebnis rechnet Ailoot die endgültige Gebühr anhand des gemessenen Verbrauchs ab. Bei Streaming erfolgt die Abrechnung anhand des abschließenden Verbrauchsdatensatzes. So funktionieren Reservierung und Abrechnung →
Beispielanfragen
Ailoot Ultra · Stapelverarbeitung
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-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/o3-mini:batch', 'openai/o3-mini']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"openai/o3-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.
Ergebnisse abrufen und speichern
Ailoot Ultra · Stapelverarbeitung
eingebettetes JSON unter results[].response.body
GET /v1/batches/{operation_id}
Auftragsstatus prüfen
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
Alle fertiggestellten Ergebnisse aufbewahren
Bewahren Sie jede vollständig zurückgegebene Antwort, Datei und jeden Inhaltsteil auf.
Das vollständige ursprüngliche Status-JSON, jedes Ergebnis/jede custom_id und den vollständigen Antwort- oder Fehlerkörper aufbewahren. Abgeschlossene results[] ohne Filterung als JSONL speichern.
Wenn die ursprüngliche Antwort geprüft werden muss
Die ursprüngliche Vorgangs-ID beibehalten. Bei 503 result_pending_check gilt X-Should-Retry:false; einen ursprünglichen Batch mit unbekanntem Ausgang niemals erneut einreichen.
Antwortfelder
| Feld | Typ |
|---|---|
Feldresults[].custom_id | Typstring |
Feldresults[].response.body.choices[].message.content | Typstring|null |
Feldresults[].error | Typobject|null |
Feldusage | Typobject|null |
Feldid | Typstring |
Feldmodel | Typstring |
Feldendpoint | Typstring |
Feldstatus | Typstring |
Feldrequest_counts | Typobject |
Feldresults[].id | Typstring |
Feldresults[].response.status_code | Typinteger |
Feldresults[].response.request_id | Typstring |
Fehler und nächste Schritte
| Antwort | Bedingung | Nächster Schritt |
|---|---|---|
Antwort400 · invalid_request_error | BedingungUngültige Struktur der dokumentierten Inline-Einbettung, doppelte Schlüssel, ungültige Identitätsangaben zu einem Element oder ein Konflikt mit den konfigurierten Modellfähigkeiten. | Nächster SchrittDie angegebenen Felder vor jeder neuen Einreichung korrigieren. |
Antwort401 · authentication_error | BedingungUngültiger API-Schlüssel. | Nächster SchrittDen autorisierten Ailoot-Schlüssel verwenden. |
Antwort403 · permission_error | BedingungGruppe für Stapelverarbeitung nicht verfügbar. | Nächster SchrittDie Berechtigung des Schlüssels bzw. der Gruppe prüfen. |
Antwort422 · invalid_request_error | BedingungStapelverarbeitung wird über das Guthaben abgerechnet; die Erstellung über ein Abonnement wird abgelehnt. | Nächster SchrittDie autorisierte Gruppe mit Guthabenabrechnung verwenden. |
Antwort422 · price_unavailable | BedingungFür die Batch-Eingabe kann kein Preisangebot erstellt werden. | Nächster SchrittAntwort aufbewahren; die dokumentierte Eingabe der API-Familie verwenden. |
Antwort402 · billing_error | BedingungReservierung für Stapelverarbeitung nicht verfügbar. | Nächster SchrittDie Zulassung klären, bevor eine neue Anfrage gestellt wird. |
Antwort503 · price_unavailable | BedingungMethodenpreis bzw. native Tarife für Stapelverarbeitung nicht verfügbar. | Nächster SchrittAntwort aufbewahren; keine anderen Preise einsetzen. |
Antwort503 · api_error | BedingungDie genaue Anbieterroute ist nicht verfügbar. | Nächster SchrittAntwort zur Reparatur der Route aufbewahren. |
Antwort503 · result_pending_check | BedingungDas ursprüngliche Ergebnis muss geprüft werden; X-Should-Retry:false. | Nächster SchrittDie ursprüngliche operation_id/id beibehalten und ihren Status lesen; den ursprünglichen POST niemals wiederholen. |
Antwort404 · not_found | BedingungDer Batch-Vorgang, dessen Status abgefragt wird, ist nicht vorhanden oder gehört einer anderen Identität. | Nächster SchrittDie genaue ursprüngliche id und denselben Nutzer/Schlüssel/dieselbe Gruppe verwenden. |
Aliasnamen
Modellaliasnamen
Ailoot Ultra openai/o3-mini:batch
Aliasnamen für Methodenpfade
Verwenden Sie die oben angezeigten Methodenpfade.
Zugehörige Aufrufer-IDs
FAQ · OpenAI: o3 Mini (batch)
- Welche Eingaben und Ergebnisse sind verfügbar?
POST /v1/batches·openai/o3-mini:batch:text→text- Welche Felder verwendet die Anfrage?
POST /v1/batches·openai/o3-mini:batch:endpoint,model,requests,completion_window,provider- Welche Grenzen gelten?
POST /v1/batches·openai/o3-mini:batch:requests.min_items:1