OpenAI: GPT-4.1 (batch)
OpenAI GPT-4.1 är en modell utan separat resonemangssteg för exakt instruktionsföljning, programmering och verktygsanrop. Den tar emot text och bilder och returnerar text, med ett stort kontextfönster, Structured Outputs och Predicted Outputs för att återskapa text eller kod som till största delen är oförändrad.
Om modellen
Den här beskrivningen omfattar modellens förmågor. Tillgängliga indata, utdata och alternativ i Ailoot anges nedan för den valda metoden.
GPT-4.1 är OpenAI:s modell utan separat resonemangssteg för instruktionsföljning och verktygsanrop, med bred kunskap inom olika områden. Den tar emot text och bilder och returnerar text utan ett särskilt resonemangssteg. Den stora kontexten är användbar när uppgiften är tydligt definierad men det relevanta materialet omfattar stora dokument eller mycket kod. Ange operationen du vill ha, källmaterialet den gäller och formen på slutresultatet.
För dokumentbearbetning skiljer du instruktionerna från materialet med rubriker eller andra tydliga gränser. Märk dokumenten och bevara identifierare som svaret behöver hänvisa till. Definiera fälten för extraktion, jämförelsekriterierna eller målgruppen och längden för en omskrivning. Ett exempel på utdata kan vara en kravtabell med källplatser, en sammanfattning organiserad efter en viss frågeuppsättning eller en strukturerad post som skiljer saknad information från ett uttryckligt värde.
För programmering anger du de relevanta filerna, den begärda ändringen och beteendet som måste förbli intakt. Be om det faktiska resultat du behöver: en bearbetad funktion, en fullständig fil, föreslagna verktygsargument eller en förklaring av den berörda logiken. Exempel kan klargöra en formateringsregel eller ett gränsfall men ska följa samma krav som den verkliga uppgiften. OpenAI:s promptvägledning betonar direkta instruktioner, roller, källgränser och representativa exempel i stället för att anta att en lång prompt automatiskt är exakt.
Den specifika GPT-4.1-specifikationen anger ett kontextfönster på 1 047 576 token, högst 32 768 token i utdata och en kunskapsgräns den 1 juni 2024. Den stora indatakontexten innebär inte lika stor utdata, så en begäran om att skriva om omfattande material ska ange den del och det slutresultat som behövs. Lämna tillräckligt med plats för svaret och ange aktuell information när uppgiften beror på fakta efter kunskapsgränsen. GPT-4.1:s dokumenterade modelltyp är chat; inställningar för resonemangsinsats från nyare resonemangsmodeller ingår inte i den här profilen.
OpenAI dokumenterar gränssnitten Chat Completions, Responses, Assistants, Batch och finjustering för GPT-4.1. De angivna funktionerna omfattar strömning, Structured Outputs, funktionsanrop, filuppladdningar, bildindata, webb- och filsökning, finjustering och promptcache. Verktygen omfattar kodtolkning, bildgenerering och MCP-anslutningar samt sökning och funktioner. Modellens egna utdata är text, medan ett verktyg kan returnera en separat artefakt eller observation. Definiera syftet och argumenten för en applikationsoperation och använd dess faktiska returnerade resultat; en modellgenererad förfrågan bekräftar inte att en extern operation har slutförts.
En särskild funktion är Predicted Outputs i OpenAI:s Chat Completions-gränssnitt. När större delen av ett önskat text- eller kodresultat redan är känt kan det befintliga innehållet anges som en prediktion för att hjälpa till att återskapa hela resultatet med en liten ändring. Du kan exempelvis ange en aktuell fil och be om ett snävt specificerat byte av namn på en egenskap samtidigt som den omgivande koden bevaras. Prediktionen är förväntat utdatainnehåll, inte en instruktion eller en garanti för att de oförändrade delarna förblir korrekta. Kontrollera det återskapade resultatet mot den begärda ändringen och ursprungsmaterialet.
Predicted Outputs har egna kompatibilitetsgränser. OpenAI dokumenterar användning med enbart text, utan ljudindata eller ljudutdata och utan funktionsanrop i den förfrågan. Flera alternativ med n större än 1, logaritmiska sannolikheter, positiva presence- eller frequency-straff och parametern max_completion_tokens stöds inte. Håll det här återskapandeflödet separat från en uppgift som behöver verktygsanrop. Prediktionstext kan matcha delar av utdata, och tillverkaren rapporterar accepterade och avvisade prediktionstoken; en olämplig prediktion kan delvis bli oanvänd, så funktionen garanterar inte en viss tidsvinst eller ett visst resultat.
För vanliga instruktionsuppgifter är ett användbart GPT-4.1-resultat ett dokument eller en kodartefakt som följer ett definierat kontrakt, en extraktion med uttryckliga fält eller en verktygsförfrågan vars argument passar den tillhandahållna operationen. För en liten ändring i en fil som till största delen är oförändrad ger arbetsflödet med predikterade utdata ett mer specifikt sätt att förbereda det förväntade resultatet. I båda fallen bevarar du källmaterialet som behövs för att kontrollera svaret och tydliggör tvetydigheter. Modellens kontextkapacitet och verktyg stöder arbetsflödet; uppgiftsunderlaget avgör fortfarande vad ett fullständigt och användbart svar innehåller.
Ailoot Ultra · Batchkörning POST /v1/batches openai/gpt-4.1:batch
openai/gpt-4.1:batchStart
OpenAI GPT-4.1 är en modell utan separat resonemangssteg för exakt instruktionsföljning, programmering och verktygsanrop. Den tar emot text och bilder och returnerar text, med ett stort kontextfönster, Structured Outputs och Predicted Outputs för att återskapa text eller kod som till största delen är oförändrad.
- Godkända indata
- Text
- Resultat
- Text
Tillgängligt i Ailoot · indata & metoder
Ailoot Ultra · Batchkörning POST /v1/batches
- Indatatyper
text- Utdatatyper
text- Utdataformat
- JSON i inbäddade results[].response.body
| Fält | Typ | Krav | Värden & gränser | Standard |
|---|---|---|---|---|
Fältendpoint | Typstring | KravObligatoriskt | Värden & gränser /v1/chat/completions | Standard— |
Fältmodel | Typstring | KravObligatoriskt | Värden & gränser openai/gpt-4.1:batch | Standard— |
Fältrequests | Typbatch_item[] | KravObligatoriskt | Värden & gränser Minsta antal objekt: 1 | Standard— |
Fältrequests[].custom_id | Typstring | KravObligatoriskt | Värden & gränser | Standard— |
Fältrequests[].body.messages | Typmessage[] | KravObligatoriskt | Värden & gränser | Standard— |
Fältcompletion_window | Typstring | KravValfritt | Värden & gränser 24h | Standard— |
Fältprovider | Typobject|null | KravValfritt | Värden & gränser | Standard— |
Fältrequests[].body.model | Typstring | KravValfritt | Värden & gränser openai/gpt-4.1:batch, openai/gpt-4.1 | Standard— |
Fältprovider.only | Typstring[] | KravValfritt | Värden & gränser openai | Standard— |
Fältprovider.allow_fallbacks | Typboolean|null | KravValfritt | Värden & gränser false, null | Standard— |
Metodparametrar och livscykel
| Parameter | Avtal |
|---|---|
Parametercontent_type | Avtalapplication/json |
Parameterrequired | Avtalendpoint, model, requests |
Parametermaterial_types | Avtaltext |
Parameterrepresentation | AvtalInbäddade requests[]; varje objekt har custom_id och body |
Parameterrequest_endpoint_profile | Avtal/v1/chat/completions |
Parameterfile_material | AvtalDen anropande klienten kan läsa in faktiska UTF-8 JSONL-data lokalt i requests[]. Inget uppladdningssyfte, input_file_id eller någon filreferens används. Om kundmaterial saknas eller är tomt avbryts förberedelserna före POST. |
Parameterserialization_order | Avtalendpoint, model, provider (om angivet), completion_window (om angivet), requests sist |
Parameteroptional_controls | Avtalprovider.only, provider.allow_fallbacks, completion_window |
Parameterschema_scope | AvtalFörfrågningskroppar för Text Chat Completions i det dokumenterade inbäddade Batch-formatet. |
Livscykel: asynchronous
GET /v1/batches/{operation_id} · Det faktiska response.id från det ursprungliga skapandesvaret; samma användare/nyckel/grupp
Priser
Tariffuppgifter lägger inte till begäransalternativ. Parametrar som stöds anges för den valda metoden.
- Snabbt läge
- Ej angivet När snabbt läge är valt
- Flex-läge
- Ej angivet När läget flex är valt
- Högsta resonemangsnivå
- Ej angivet När den högsta resonemangsnivån använder standardjusteringen (default)
- Prissättning för explicit cache
- Inte aktiverat När explicit cache begärs
Ailoot-priser
Priser efter konfiguration
Matcha varje avgift mot de visade villkoren. Använd ett pris för varje uppsättning alternativa konfigurationer.
| Konfiguration | Prislista | Kontexttoken, fler än | Kontexttoken, upp till och med | Avgift |
|---|---|---|---|---|
| KonfigurationGrundpriser för token | PrislistaGrundpris | Kontexttoken, fler än— | Kontexttoken, upp till och medIngen övre gräns | Avgift Indata · Indatatoken $0.002 / 1K token Utdata · Utdatatoken $0.008 / 1K token Indata · Cacheläsning $0.0005 / 1K token Indata · Skrivning till cache — / 1K token Indata · Skrivning till cache, 1 tim — / 1K token |
| KonfigurationNivå 1 för förfrågans längd | Prislista— | Kontexttoken, fler än0 | Kontexttoken, upp till och medIngen övre gräns | Avgift Indata · Indatatoken $0.002 / 1K token Utdata · Utdatatoken $0.008 / 1K token Indata · Cacheläsning $0.0005 / 1K token Indata · Skrivning till cache — / 1K token Indata · Skrivning till cache, 1 tim — / 1K token |
Ailoot reserverar ett uppskattat belopp före en begäran. Efter resultatet slutregleras avgiften utifrån uppmätt förbrukning. Slutreglering för strömning använder den slutliga förbrukningsposten. Så fungerar reservation och slutreglering →
Exempelbegäranden
Ailoot Ultra · Batchkörning
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.
Ta emot och spara resultat
Ailoot Ultra · Batchkörning
JSON i inbäddade results[].response.body
GET /v1/batches/{operation_id}
Kontrollera jobbstatus
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
Behåll alla färdiga resultat
Behåll varje fullständigt returnerat svar, fil och innehållsdel.
Spara hela det ursprungliga statusobjektet i JSON, varje resultat/custom_id och hela svars- eller felkroppen. Spara slutförda results[] som JSONL utan filtrering.
Om det ursprungliga svaret behöver kontrolleras
Behåll det ursprungliga operations-ID:t. Vid 503 result_pending_check gäller X-Should-Retry:false; skicka aldrig om en ursprunglig batch med okänt utfall.
Svarsfält
| Fält | Typ |
|---|---|
Fältresults[].custom_id | Typstring |
Fältresults[].response.body.choices[].message.content | Typstring|null |
Fältresults[].error | Typobject|null |
Fältusage | Typobject|null |
Fältid | Typstring |
Fältmodel | Typstring |
Fältendpoint | Typstring |
Fältstatus | Typstring |
Fältrequest_counts | Typobject |
Fältresults[].id | Typstring |
Fältresults[].response.status_code | Typinteger |
Fältresults[].response.request_id | Typstring |
Fel och nästa steg
| Svar | Villkor | Nästa steg |
|---|---|---|
Svar400 · invalid_request_error | VillkorFörfrågan har ett ogiltigt inbäddat format enligt dokumentationen, duplicerade nycklar eller en felaktig objektidentitet, eller står i konflikt med modellens konfigurerade funktioner. | Nästa stegRätta de angivna fälten innan du skickar en ny förfrågan. |
Svar401 · authentication_error | VillkorOgiltig API-nyckel. | Nästa stegAnvänd den behöriga Ailoot-nyckeln. |
Svar403 · permission_error | VillkorGrupp för batchkörning är inte tillgänglig. | Nästa stegKontrollera nyckelns/gruppens behörighet. |
Svar422 · invalid_request_error | VillkorBatchkörning debiteras från saldot; skapande via abonnemang avvisas. | Nästa stegAnvänd den behöriga gruppen med saldodebitering. |
Svar422 · price_unavailable | VillkorKostnaden för batchindata kan inte beräknas i förväg. | Nästa stegSpara svaret; använd det dokumenterade indataformatet för API-familjen. |
Svar402 · billing_error | VillkorReservation för batchkörning är inte tillgänglig. | Nästa stegSe till att villkoren för att godta förfrågan är uppfyllda innan du skickar en ny. |
Svar503 · price_unavailable | VillkorPriset för batchmetoden eller de inbyggda priserna är inte tillgängliga. | Nästa stegSpara svaret; ersätt inte priserna med andra. |
Svar503 · api_error | VillkorDen exakta leverantörsrutten är inte tillgänglig. | Nästa stegSpara svaret för att kunna reparera routningen. |
Svar503 · result_pending_check | VillkorDet ursprungliga resultatet behöver kontrolleras; X-Should-Retry:false. | Nästa stegBehåll det ursprungliga värdet för operation_id/id och läs av operationens status; upprepa aldrig det ursprungliga POST-anropet. |
Svar404 · not_found | VillkorOperationen för batchstatus saknas eller tillhör en annan identitet. | Nästa stegAnvänd exakt det ursprungliga id-värdet och samma användare/nyckel/grupp. |
Alias
Modellalias
Ailoot Ultra openai/gpt-4.1:batch
Alias för metodsökvägar
Använd metodsökvägarna som visas ovan.
Relaterade anropar-ID:n
FAQ · OpenAI: GPT-4.1 (batch)
- Vilka indata och resultat finns?
POST /v1/batches·openai/gpt-4.1:batch:text→text- Vilka fält använder begäran?
POST /v1/batches·openai/gpt-4.1:batch:endpoint,model,requests,completion_window,provider- Vilka gränser gäller?
POST /v1/batches·openai/gpt-4.1:batch:requests.min_items:1