OpenAI: GPT-4.1 (batch)
OpenAI GPT-4.1 is een model zonder aparte redeneerstap voor nauwkeurige instructieopvolging, programmeren en hulpmiddelaanroepen. Het accepteert tekst en afbeeldingen en retourneert tekst, met een groot contextvenster, Structured Outputs en Predicted Outputs voor het opnieuw genereren van grotendeels ongewijzigde tekst of code.
Over het model
Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.
GPT-4.1 is OpenAI’s model zonder aparte redeneerstap voor instructieopvolging en hulpmiddelaanroepen, met brede kennis van uiteenlopende vakgebieden. Het accepteert tekst en afbeeldingen en retourneert tekst zonder een afzonderlijke redeneerstap. De grote context is nuttig wanneer de taak duidelijk is gedefinieerd, maar het relevante materiaal omvangrijke documenten of code beslaat. Benoem de gewenste bewerking, het bronmateriaal waarop deze betrekking heeft en de vorm van het eindresultaat.
Scheid bij documentverwerking de instructies van het materiaal met koppen of andere duidelijke grenzen. Label documenten en behoud identificaties waarnaar het antwoord moet verwijzen. Definieer de velden voor extractie, de vergelijkingscriteria of de doelgroep en lengte voor een herschrijving. Een voorbeelduitvoer kan een tabel met eisen en hun bronlocaties zijn, een samenvatting die is ingedeeld volgens opgegeven vragen of een gestructureerd record dat ontbrekende informatie van een expliciete waarde onderscheidt.
Lever voor programmeren de relevante bestanden, de gevraagde wijziging en het gedrag dat behouden moet blijven aan. Vraag om het concrete resultaat dat je nodig hebt: een herziene functie, een volledig bestand, voorgestelde hulpmiddelargumenten of een uitleg van de betrokken logica. Voorbeelden kunnen een opmaakregel of een randgeval verduidelijken, maar moeten dezelfde eisen volgen als de echte taak. OpenAI’s promptadvies benadrukt directe instructies, rollen, brongrenzen en representatieve voorbeelden in plaats van aan te nemen dat een lange prompt automatisch nauwkeurig is.
De exacte GPT-4.1-specificatie vermeldt een contextvenster van 1.047.576 tokens, maximaal 32.768 uitvoertokens en een kennisgrens van 1 juni 2024. De grote invoercontext betekent geen even grote uitvoer, dus een verzoek om omvangrijk materiaal te herschrijven moet het benodigde gedeelte en eindresultaat benoemen. Laat voldoende ruimte voor het antwoord en lever actuele informatie aan als de taak afhangt van feiten na de kennisgrens. Het gedocumenteerde modeltype van GPT-4.1 is chat; instellingen voor redeneerinspanning van nieuwere redeneermodellen behoren niet tot dit profiel.
OpenAI documenteert Chat Completions-, Responses-, Assistants-, Batch- en fine-tuning-interfaces voor GPT-4.1. De genoemde functies omvatten streaming, Structured Outputs, functieaanroepen, bestandsuploads, beeldinvoer, web- en bestandszoekfuncties, fine-tuning en promptcaching. De hulpmiddelen omvatten code-interpretatie, beeldgeneratie en MCP-verbindingen, naast zoeken en functies. De eigen uitvoer van het model is tekst, terwijl een hulpmiddel een afzonderlijk resultaat of een waarneming kan teruggeven. Definieer het doel en de argumenten van een toepassingsbewerking en gebruik het daadwerkelijk teruggegeven resultaat; een door het model gegenereerd verzoek bevestigt niet dat een externe bewerking is voltooid.
Een onderscheidende functie is Predicted Outputs in OpenAI’s Chat Completions-interface. Wanneer het grootste deel van een gewenst tekst- of coderesultaat al bekend is, kan de bestaande inhoud als voorspelling worden aangeleverd om het volledige resultaat met een kleine wijziging opnieuw te genereren. Lever bijvoorbeeld een huidig bestand aan en vraag om een nauwkeurig begrensde naamswijziging van een eigenschap, met behoud van de omringende code. De voorspelling is verwachte uitvoerinhoud, geen instructie of garantie dat de ongewijzigde delen correct blijven. Controleer het opnieuw gegenereerde resultaat aan de hand van de gevraagde wijziging en het oorspronkelijke materiaal.
Predicted Outputs heeft eigen compatibiliteitsgrenzen. OpenAI documenteert gebruik met uitsluitend tekst, zonder audio-invoer of -uitvoer en zonder functieaanroepen in dat verzoek. Meerdere keuzes met n groter dan 1, logaritmische waarschijnlijkheden, positieve strafwaarden voor het voorkomen of de frequentie van tokens en de parameter max_completion_tokens worden niet ondersteund. Houd deze werkwijze voor opnieuw genereren gescheiden van een taak die hulpmiddelaanroepen nodig heeft. Voorspellingstekst kan met delen van de uitvoer overeenkomen en de leverancier rapporteert geaccepteerde en afgewezen voorspellingstokens; een ongeschikte voorspelling kan gedeeltelijk ongebruikt blijven, zodat de functie geen bepaalde versnelling of uitkomst garandeert.
Voor gewone taken met instructieopvolging is een nuttig GPT-4.1-resultaat een document of coderesultaat dat aan een gedefinieerd contract voldoet, een extractie met expliciete velden of een hulpmiddelverzoek waarvan de argumenten bij de aangeleverde bewerking passen. Voor een kleine wijziging aan een grotendeels ongewijzigd bestand geeft de werkwijze met voorspelde uitvoer een specifiekere manier om het verwachte resultaat voor te bereiden. Behoud in beide gevallen het bronmateriaal dat nodig is om het antwoord te controleren en maak dubbelzinnigheid expliciet. De contextcapaciteit en hulpmiddelen van het model ondersteunen de werkwijze; de taakbeschrijving bepaalt nog steeds wat een volledig, bruikbaar antwoord bevat.
Ailoot Ultra · Batch POST /v1/batches openai/gpt-4.1:batch
openai/gpt-4.1:batchAan de slag
OpenAI GPT-4.1 is een model zonder aparte redeneerstap voor nauwkeurige instructieopvolging, programmeren en hulpmiddelaanroepen. Het accepteert tekst en afbeeldingen en retourneert tekst, met een groot contextvenster, Structured Outputs en Predicted Outputs voor het opnieuw genereren van grotendeels ongewijzigde tekst of code.
- Toegestane invoer
- Tekst
- Resultaten
- Tekst
Beschikbaar in Ailoot · invoer en methoden
Ailoot Ultra · Batch POST /v1/batches
- Invoertypen
text- Uitvoertypen
text- Uitvoerformaat
- inline results[].response.body JSON
| Veld | Type | Vereiste | Waarden en limieten | Standaard |
|---|---|---|---|---|
Veldendpoint | Typestring | VereisteVereist | Waarden en limieten /v1/chat/completions | Standaard— |
Veldmodel | Typestring | VereisteVereist | Waarden en limieten openai/gpt-4.1:batch | Standaard— |
Veldrequests | Typebatch_item[] | VereisteVereist | Waarden en limieten Minimumaantal items: 1 | Standaard— |
Veldrequests[].custom_id | Typestring | VereisteVereist | Waarden en limieten | Standaard— |
Veldrequests[].body.messages | Typemessage[] | VereisteVereist | Waarden en limieten | Standaard— |
Veldcompletion_window | Typestring | VereisteOptioneel | Waarden en limieten 24h | Standaard— |
Veldprovider | Typeobject|null | VereisteOptioneel | Waarden en limieten | Standaard— |
Veldrequests[].body.model | Typestring | VereisteOptioneel | Waarden en limieten openai/gpt-4.1:batch, openai/gpt-4.1 | Standaard— |
Veldprovider.only | Typestring[] | VereisteOptioneel | Waarden en limieten openai | Standaard— |
Veldprovider.allow_fallbacks | Typeboolean|null | VereisteOptioneel | Waarden en limieten false, null | Standaard— |
Methodeparameters en levenscyclus
| Parameter | Contract |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractendpoint, model, requests |
Parametermaterial_types | Contracttext |
Parameterrepresentation | Contractinline requests[]; elk item bevat custom_id en body |
Parameterrequest_endpoint_profile | Contract/v1/chat/completions |
Parameterfile_material | ContractDe aanroeper mag daadwerkelijke JSONL-inhoud in UTF-8 lokaal in requests[] inlezen. Er wordt geen uploaddoel (purpose), input_file_id of bestandsverwijzing gebruikt. Ontbrekend of leeg klantmateriaal stopt de voorbereiding vóór POST. |
Parameterserialization_order | Contractendpoint, model, provider (indien opgegeven), completion_window (indien opgegeven), requests als laatste |
Parameteroptional_controls | Contractprovider.only, provider.allow_fallbacks, completion_window |
Parameterschema_scope | ContractBody’s voor tekstaanvragen via Chat Completions in de gedocumenteerde inline Batch-envelop. |
Levenscyclus: asynchronous
GET /v1/batches/{operation_id} · de daadwerkelijke response.id uit het oorspronkelijke aanmaakantwoord; dezelfde gebruiker/sleutel/groep
Tarieven
Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.
- Snelle modus
- Niet opgegeven Wanneer de snelle modus is geselecteerd
- Flexmodus
- Niet opgegeven Wanneer de modus flex is geselecteerd
- Maximale redeneerinspanning
- Niet opgegeven Wanneer bij maximale redeneerinspanning de default-aanpassing wordt gebruikt
- Tarieven voor expliciete caching
- Niet ingeschakeld Wanneer expliciete caching wordt aangevraagd
Ailoot-tarieven
Prijzen per configuratie
Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.
| Configuratie | Tariefstaffel | Contexttokens, meer dan | Contexttokens, tot en met | Kosten |
|---|---|---|---|---|
| ConfiguratieBasistarieven voor tokens | TariefstaffelBasistarief | Contexttokens, meer dan— | Contexttokens, tot en metGeen bovengrens | Kosten Invoer · Invoertokens $0.002 / 1K tokens Uitvoer · Uitvoertokens $0.008 / 1K tokens Invoer · Cache lezen $0.0005 / 1K tokens Invoer · Cache schrijven — / 1K tokens Invoer · Cache schrijven, 1 uur — / 1K tokens |
| ConfiguratieNiveau 1 voor aanvraaglengte | Tariefstaffel— | Contexttokens, meer dan0 | Contexttokens, tot en metGeen bovengrens | Kosten Invoer · Invoertokens $0.002 / 1K tokens Uitvoer · Uitvoertokens $0.008 / 1K tokens Invoer · Cache lezen $0.0005 / 1K tokens Invoer · Cache schrijven — / 1K tokens Invoer · Cache schrijven, 1 uur — / 1K tokens |
Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →
Voorbeeldverzoeken
Ailoot Ultra · Batch
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.
Resultaten ophalen en opslaan
Ailoot Ultra · Batch
inline results[].response.body JSON
GET /v1/batches/{operation_id}
Taakstatus controleren
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 voltooide resultaten bewaren
Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.
Bewaar de volledige oorspronkelijke status-JSON, elk resultaat/custom_id en de volledige antwoord- of foutbody. Sla voltooide results[] zonder filtering op als JSONL.
Als het oorspronkelijke antwoord moet worden gecontroleerd
Bewaar de oorspronkelijke bewerkings-ID. Bij 503 result_pending_check hoort X-Should-Retry:false; dien een oorspronkelijke batch met onbekende uitkomst nooit opnieuw in.
Antwoordvelden
| Veld | Type |
|---|---|
Veldresults[].custom_id | Typestring |
Veldresults[].response.body.choices[].message.content | Typestring|null |
Veldresults[].error | Typeobject|null |
Veldusage | Typeobject|null |
Veldid | Typestring |
Veldmodel | Typestring |
Veldendpoint | Typestring |
Veldstatus | Typestring |
Veldrequest_counts | Typeobject |
Veldresults[].id | Typestring |
Veldresults[].response.status_code | Typeinteger |
Veldresults[].response.request_id | Typestring |
Fouten en vervolgstappen
| Antwoord | Voorwaarde | Volgende stap |
|---|---|---|
Antwoord400 · invalid_request_error | VoorwaardeOngeldige gedocumenteerde inline envelop, dubbele sleutels, ongeldige itemidentiteit of een conflict met de geconfigureerde modelmogelijkheden. | Volgende stapCorrigeer de aangegeven velden voordat u een nieuwe aanvraag indient. |
Antwoord401 · authentication_error | VoorwaardeOngeldige API-sleutel. | Volgende stapGebruik de geautoriseerde Ailoot-sleutel. |
Antwoord403 · permission_error | VoorwaardeBatch-groep niet beschikbaar. | Volgende stapControleer de toegangsrechten van de sleutel/groep. |
Antwoord422 · invalid_request_error | VoorwaardeBij Batch worden kosten van het saldo afgeschreven; aanmaken via een abonnement wordt geweigerd. | Volgende stapGebruik de geautoriseerde groep waarvoor kosten van het saldo worden afgeschreven. |
Antwoord422 · price_unavailable | VoorwaardeVoor de Batch-invoer kan geen prijsopgave worden berekend. | Volgende stapBewaar het antwoord; gebruik de gedocumenteerde invoer voor deze familie. |
Antwoord402 · billing_error | VoorwaardeBatch-reservering niet beschikbaar. | Volgende stapLos het toelatingsprobleem op voordat u een nieuwe aanvraag indient. |
Antwoord503 · price_unavailable | VoorwaardePrijs voor de Batch-methode/native tarieven niet beschikbaar. | Volgende stapBewaar het antwoord; vervang de prijzen niet. |
Antwoord503 · api_error | VoorwaardeDe exacte leveranciersroute is niet beschikbaar. | Volgende stapBewaar het antwoord voor herstel van de route. |
Antwoord503 · result_pending_check | VoorwaardeHet oorspronkelijke resultaat moet worden gecontroleerd; X-Should-Retry:false. | Volgende stapBewaar de oorspronkelijke operation_id/id en lees de status ervan uit; herhaal de oorspronkelijke POST nooit. |
Antwoord404 · not_found | VoorwaardeDe bewerking voor de Batch-status ontbreekt of is eigendom van een andere identiteit. | Volgende stapGebruik exact de oorspronkelijke id en dezelfde gebruiker/sleutel/groep. |
Aliasnamen
Modelaliasnamen
Ailoot Ultra openai/gpt-4.1:batch
Aliasnamen voor methodepaden
Gebruik de hierboven getoonde methodepaden.
Gerelateerde aanroeper-ID’s
FAQ · OpenAI: GPT-4.1 (batch)
- Welke invoer en resultaten zijn beschikbaar?
POST /v1/batches·openai/gpt-4.1:batch:text→text- Welke velden gebruikt het verzoek?
POST /v1/batches·openai/gpt-4.1:batch:endpoint,model,requests,completion_window,provider- Welke limieten gelden?
POST /v1/batches·openai/gpt-4.1:batch:requests.min_items:1