OpenAI: GPT-4o (batch)
GPT-4o verbindet Text- und Bildverständnis mit Schreiben, Programmieren, Structured Outputs und Anwendungswerkzeugen. Nutzen Sie es, um eine beleggestützte Antwort zu erarbeiten, visuelles Material zu interpretieren oder definierte Felder aus einer umfangreichen Quellensammlung zurückzugeben.
Ü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.
GPT-4o ist OpenAIs vielseitiges GPT-Modell für Text- und Bildverständnis, Schreiben und Aufgaben in Anwendungen. Das „o“ steht für „omni“; dieses dokumentierte Modell nimmt Text und Bilder entgegen und gibt Text aus, einschließlich Structured Outputs. Eine praktische Anfrage kann einen schriftlichen Auftrag mit Fotos, Screenshots oder Dokumentseiten verbinden und eine klare Erklärung, ein überarbeitetes Ergebnis oder definierte Felder für einen weiteren Anwendungsschritt verlangen.
Stellen Sie für einen Bericht die Quelldokumente und die Entscheidung bereit, die der Bericht unterstützen soll. Benennen Sie relevante Daten, Einheiten und Belegkennzeichnungen und verlangen Sie einen Vergleich, der Beobachtungen, Annahmen und fehlende Informationen trennt. Weisen Sie bei einer visuellen Aufgabe auf das wichtige Objekt, Diagramm oder den relevanten Zustand der Oberfläche hin und fügen Sie den umgebenden Kontext hinzu. Stellen Sie für eine Codeänderung den betroffenen Code, das gewünschte Verhalten und die zu erhaltenden Einschränkungen bereit. Damit nutzen Sie die Text- und Bildfähigkeiten des Modells konkret, ohne vorauszusetzen, dass der Prompt die gesamte Aufgabe bereits impliziert.
OpenAIs aktuelles GPT-4o-Profil nennt ein Kontextfenster von 128.000 Token, eine maximale Ausgabe von 16.384 Token und einen Wissensstand bis zum 1. Oktober 2023. Der Hersteller führt mehrere datierte GPT-4o-Snapshots separat auf. Gespräch, Eingabematerial und erzeugte Antwort teilen sich das Kontextbudget. Auch eine große Dokumentensammlung braucht deshalb eine klare Ordnung und Platz für ihr fertiges Ergebnis. Veränderliche Fakten oder Informationen aus einem privaten System sollten direkt bereitgestellt oder über ein ausdrücklich konfiguriertes Werkzeug beschafft werden.
Der Leitfaden zur Bildverarbeitung akzeptiert PNG, JPEG, WebP und nicht animierte GIF. GPT-4o unterstützt die Bilddetailstufen low, high und auto; high und auto verwenden eine Verarbeitung in Bildkacheln. Vergrößern Sie kleine Beschriftungen, richten Sie Text aufrecht aus und erhalten Sie bei der Interpretation eines Diagramms die Legende oder die umgebende Darstellung. Zu den dokumentierten Einschränkungen gehören präzise räumliche Lokalisierung, ungefähre Objektzählungen, einige nicht lateinische Schriften sowie Panorama- oder Fischaugenansichten. Das Modell kann ein Bild auch falsch beschreiben. Bewahren Sie daher die Quelle auf und verlangen Sie die konkreten Beobachtungen, auf denen eine Interpretation beruht. In OpenAIs dokumentiertem Ablauf für die Bildverarbeitung ist die gesamte Anfragegröße auf 512 MB begrenzt; eine Anfrage kann bis zu 1.500 Bilder enthalten. Bilder und Text müssen außerdem in den Kontext des Modells passen.
OpenAIs Ablauf für Dateieingaben liefert einem bildfähigen Modell sowohl extrahierten Text als auch Seitenbilder aus PDFs. Office-Dokumente außerhalb des PDF-Formats liefern extrahierten Text statt eingebetteter Diagramme; bei Tabellen werden bis zu den ersten 1.000 Zeilen pro Blatt ergänzend aufbereitet. Jede Datei muss kleiner als 50 MB sein, alle Dateien einer Anfrage zusammen dürfen 50 MB umfassen. Chat Completions unterstützt PDF-Dateiteile; der dokumentierte Responses-Ablauf akzeptiert weitere Dateiformate. Wählen Sie eine PDF-Darstellung, wenn die visuelle Wiedergabetreue wichtig ist, und halten Sie Quellenkennungen im Ergebnis sichtbar.
Streaming kann die Antwort während ihrer Erzeugung zurückgeben. Structured Outputs beschränkt eine fertige Antwort auf die unterstützte Teilmenge von JSON Schema und eignet sich damit für Dokumentextraktion oder ein Anwendungsobjekt mit definierten Feldern. Der JSON-Modus betrifft lediglich die Gültigkeit des JSON. Definieren Sie die erwarteten Typen, zulässigen Werte und den Umgang mit fehlenden Belegen und behandeln Sie ausdrückliche Ablehnungen oder unvollständige Antworten separat. Ein Schema belegt nicht die sachliche Richtigkeit eines Werts; die verlangten Felder sollten daher auf das bereitgestellte Material zurückführbar bleiben.
Der Hersteller unterstützt Funktionsaufrufe, Websuche, Dateisuche, Codeausführung und MCP-Verbindungen. Eigene Funktionen brauchen aussagekräftige Beschreibungen und Argumentschemata. Die Anwendung führt die angeforderte Aktion aus und gibt deren Ergebnis für den nächsten Modellschritt zurück. GPT-4o kann in einem konfigurierten Responses-Ablauf außerdem ein separates Werkzeug zur Bilderzeugung steuern. Ein damit erzeugtes Bild ist ein eigenes Artefakt; die dokumentierte native Antwort von GPT-4o ist Text. Die abschließende Erklärung eines Agenten sollte tatsächlich abgerufene oder berechnete Beobachtungen verwenden, statt einen vorgeschlagenen Werkzeugaufruf als abgeschlossene Operation zu behandeln.
Predicted Outputs ist für GPT-4o verfügbar, wenn weitgehend bekannter Text oder Code mit kleinen Änderungen neu erzeugt wird. Liefern Sie den vorhandenen Inhalt und eine präzise Änderung und prüfen Sie anschließend das zurückgegebene Ergebnis. Dieser reine Textpfad lässt sich nicht mit Funktionsaufrufen kombinieren und schließt logprobs, max_completion_tokens und mehrere weitere Steuerungen aus. Eine Anfrage mit Werkzeugen ist eine separate Wahl, wenn die Antwort von neuen Informationen aus einer externen Operation abhängt.
OpenAI dokumentiert Fine-Tuning für GPT-4o; der Optimierungsleitfaden nennt ausdrücklich den Snapshot vom 6. August 2024 für Vision-Fine-Tuning mit Bildbeispielen. Dieser snapshotspezifische Anpassungsablauf unterscheidet sich von einer gewöhnlichen Anfrage an den Modellalias. Beginnen Sie für alltägliches Schreiben, Analysieren oder Extrahieren mit einem hilfreichen Auftrag und einem Beispiel für die gewünschte Ausgabe. Eine Folgeanfrage kann eine fehlende Tatsache klären, ein Feld überarbeiten oder dasselbe Ergebnis unter Erhaltung der Belege und Einschränkungen der Aufgabe verfeinern.
Ailoot Ultra · Stapelverarbeitung POST /v1/batches openai/gpt-4o:batch
openai/gpt-4o:batchStart
GPT-4o verbindet Text- und Bildverständnis mit Schreiben, Programmieren, Structured Outputs und Anwendungswerkzeugen. Nutzen Sie es, um eine beleggestützte Antwort zu erarbeiten, visuelles Material zu interpretieren oder definierte Felder aus einer umfangreichen Quellensammlung zurückzugeben.
- Zulässige Eingaben
- Text
- Ergebnisse
- Text
In Ailoot verfügbar · Eingaben und Methoden
Ailoot Ultra · Stapelverarbeitung POST /v1/batches
- Eingabetypen
text- Ausgabetypen
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/gpt-4o: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/gpt-4o:batch, openai/gpt-4o | 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.0025 / 1K Token Ausgabe · Ausgabetoken $0.01 / 1K Token Eingabe · Cache-Lesen $0.00125 / 1K Token Eingabe · Cache-Schreiben — / 1K Token Eingabe · Cache-Schreiben, 1 Stunde — / 1K Token |
| KonfigurationAnfragelängenstufe 1 | Tarifstaffel— | Kontexttoken, mehr als0 | Kontexttoken, bis einschließlichKeine Obergrenze | Gebühr Eingabe · Eingabetoken $0.0025 / 1K Token Ausgabe · Ausgabetoken $0.01 / 1K Token Eingabe · Cache-Lesen $0.00125 / 1K Token Eingabe · Cache-Schreiben — / 1K Token Eingabe · Cache-Schreiben, 1 Stunde — / 1K Token |
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/gpt-4o: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-4o:batch', 'openai/gpt-4o']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"openai/gpt-4o: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/gpt-4o:batch
Aliasnamen für Methodenpfade
Verwenden Sie die oben angezeigten Methodenpfade.
Zugehörige Aufrufer-IDs
FAQ · OpenAI: GPT-4o (batch)
- Welche Eingaben und Ergebnisse sind verfügbar?
POST /v1/batches·openai/gpt-4o:batch:text→text- Welche Felder verwendet die Anfrage?
POST /v1/batches·openai/gpt-4o:batch:endpoint,model,requests,completion_window,provider- Welche Grenzen gelten?
POST /v1/batches·openai/gpt-4o:batch:requests.min_items:1