OpenAI: GPT-4.1 (batch)
OpenAI GPT-4.1 ist ein Modell ohne separaten Reasoning-Schritt für präzise Anweisungsbefolgung, Programmieren und Werkzeugaufrufe. Es nimmt Text und Bilder entgegen und gibt Text aus. Es bietet ein großes Kontextfenster, Structured Outputs und Predicted Outputs zur Neuerzeugung weitgehend unveränderten Texts oder Codes.
Ü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-4.1 ist OpenAIs Modell ohne separaten Reasoning-Schritt für Anweisungsbefolgung und Werkzeugaufrufe mit breitem Wissen über verschiedene Fachgebiete. Es nimmt Text und Bilder entgegen und gibt Text ohne einen gesonderten Denkschritt aus. Sein großer Kontext eignet sich für klar definierte Aufgaben, deren relevantes Material umfangreiche Dokumente oder Code umfasst. Benennen Sie die gewünschte Operation, das zugehörige Ausgangsmaterial und die Form des fertigen Ergebnisses.
Trennen Sie bei der Dokumentverarbeitung Anweisungen durch Überschriften oder andere klare Grenzen vom Material. Kennzeichnen Sie Dokumente und erhalten Sie Kennungen, auf die sich die Antwort beziehen muss. Definieren Sie die Extraktionsfelder, Vergleichskriterien oder Leserschaft und Länge einer Überarbeitung. Ein beispielhaftes Ergebnis kann eine Anforderungstabelle mit Quellenstellen, eine nach vorgegebenen Fragen gegliederte Zusammenfassung oder ein strukturierter Datensatz sein, der fehlende Informationen von einem ausdrücklichen Wert unterscheidet.
Stellen Sie für Programmieraufgaben die relevanten Dateien bereit und nennen Sie die verlangte Änderung und das zu erhaltende Verhalten. Fordern Sie das tatsächlich benötigte Ergebnis an: eine überarbeitete Funktion, eine vollständige Datei, vorgeschlagene Werkzeugargumente oder eine Erklärung der betroffenen Logik. Beispiele können eine Formatierungsregel oder einen Grenzfall verdeutlichen, sollten aber denselben Anforderungen wie die reale Aufgabe folgen. OpenAIs Promptleitfaden betont direkte Anweisungen, Rollen, Quellengrenzen und typische Beispiele, statt vorauszusetzen, dass ein langer Prompt automatisch präzise ist.
Die konkrete GPT-4.1-Spezifikation nennt ein Kontextfenster von 1.047.576 Token, eine maximale Ausgabe von 32.768 Token und einen Wissensstand bis zum 1. Juni 2024. Der große Eingabekontext bedeutet keine ebenso große Ausgabe. Eine Anfrage zur Überarbeitung umfangreichen Materials sollte daher den benötigten Teil und das fertige Ergebnis benennen. Lassen Sie ausreichend Platz für die Antwort und stellen Sie aktuelle Informationen bereit, wenn die Aufgabe von Fakten nach dem Wissensstichtag abhängt. Der dokumentierte Modelltyp von GPT-4.1 ist chat; Einstellungen zum Denkaufwand neuerer Reasoning-Modelle gehören nicht zu diesem Profil.
OpenAI dokumentiert Chat Completions-, Responses-, Assistants-, Batch- und Fine-Tuning-Schnittstellen für GPT-4.1. Zu den aufgeführten Funktionen gehören Streaming, Structured Outputs, Funktionsaufrufe, Dateiuploads, Bildeingaben, Web- und Dateisuche, Fine-Tuning und Prompt-Caching. Seine Werkzeuge umfassen neben Suche und Funktionen auch Codeausführung, Bilderzeugung und MCP-Verbindungen. Die eigene Ausgabe des Modells ist Text, während ein Werkzeug ein separates Artefakt oder eine Beobachtung zurückgeben kann. Definieren Sie Zweck und Argumente einer Anwendungsoperation und verwenden Sie deren tatsächlich zurückgegebenes Ergebnis. Eine modellgenerierte Anfrage ist keine Bestätigung, dass eine externe Operation abgeschlossen wurde.
Eine besondere Funktion ist Predicted Outputs in OpenAIs Schnittstelle Chat Completions. Wenn der Großteil eines gewünschten Text- oder Codeergebnisses bereits bekannt ist, kann der vorhandene Inhalt als Vorhersage bereitgestellt werden, um das vollständige Ergebnis mit einer kleinen Änderung neu zu erzeugen. Stellen Sie beispielsweise eine aktuelle Datei bereit und verlangen Sie die eng begrenzte Umbenennung einer Eigenschaft unter Erhaltung des umgebenden Codes. Die Vorhersage ist erwarteter Ausgabeinhalt, keine Anweisung und keine Garantie dafür, dass unveränderte Teile korrekt bleiben. Prüfen Sie das neu erzeugte Ergebnis anhand der verlangten Änderung und des Originalmaterials.
Predicted Outputs hat eigene Kompatibilitätsgrenzen. OpenAI dokumentiert die reine Textnutzung ohne Audioeingaben oder -ausgaben und ohne Funktionsaufrufe in dieser Anfrage. Nicht unterstützt werden mehrere Auswahlmöglichkeiten mit n größer als 1, Log-Wahrscheinlichkeiten, positive Strafen für das Auftreten oder die Häufigkeit von Token sowie der Parameter max_completion_tokens. Trennen Sie diesen Neuerzeugungsablauf von einer Aufgabe, die Werkzeugaufrufe benötigt. Vorhersagetext kann mit Teilen der Ausgabe übereinstimmen; der Hersteller meldet akzeptierte und verworfene Vorhersagetoken. Eine ungeeignete Vorhersage kann teilweise ungenutzt bleiben, sodass die Funktion weder eine bestimmte Beschleunigung noch ein bestimmtes Ergebnis garantiert.
Für gewöhnliche Aufgaben zur Anweisungsbefolgung ist ein brauchbares GPT-4.1-Ergebnis ein Dokument oder Codeartefakt nach definierten Vorgaben, eine Extraktion mit ausdrücklichen Feldern oder eine Werkzeuganfrage mit Argumenten, die zur bereitgestellten Operation passen. Für eine kleine Änderung an einer weitgehend unveränderten Datei bietet der Ablauf mit vorhergesagter Ausgabe eine gezieltere Möglichkeit, das erwartete Ergebnis vorzubereiten. Erhalten Sie in beiden Fällen das zur Prüfung benötigte Ausgangsmaterial und machen Sie Unklarheiten ausdrücklich sichtbar. Kontextkapazität und Werkzeuge des Modells unterstützen den Ablauf; der Auftrag bestimmt weiterhin, was eine vollständige, nutzbare Antwort enthalten muss.
Ailoot Ultra · Stapelverarbeitung POST /v1/batches openai/gpt-4.1:batch
openai/gpt-4.1:batchStart
OpenAI GPT-4.1 ist ein Modell ohne separaten Reasoning-Schritt für präzise Anweisungsbefolgung, Programmieren und Werkzeugaufrufe. Es nimmt Text und Bilder entgegen und gibt Text aus. Es bietet ein großes Kontextfenster, Structured Outputs und Predicted Outputs zur Neuerzeugung weitgehend unveränderten Texts oder Codes.
- 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-4.1: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-4.1:batch, openai/gpt-4.1 | 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.002 / 1K Token Ausgabe · Ausgabetoken $0.008 / 1K Token Eingabe · Cache-Lesen $0.0005 / 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.002 / 1K Token Ausgabe · Ausgabetoken $0.008 / 1K Token Eingabe · Cache-Lesen $0.0005 / 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-4.1: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:batch', 'openai/gpt-4.1']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"openai/gpt-4.1: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-4.1:batch
Aliasnamen für Methodenpfade
Verwenden Sie die oben angezeigten Methodenpfade.
Zugehörige Aufrufer-IDs
FAQ · OpenAI: GPT-4.1 (batch)
- Welche Eingaben und Ergebnisse sind verfügbar?
POST /v1/batches·openai/gpt-4.1:batch:text→text- Welche Felder verwendet die Anfrage?
POST /v1/batches·openai/gpt-4.1:batch:endpoint,model,requests,completion_window,provider- Welche Grenzen gelten?
POST /v1/batches·openai/gpt-4.1:batch:requests.min_items:1