OpenAI: GPT-4o (batch)
GPT-4o kombinerer tekst- og bildeforståelse med skriving, programmering, Structured Outputs og applikasjonsverktøy. Bruk modellen til å utvikle et svar basert på belegg, tolke visuelt materiale eller returnere definerte felt fra en omfattende kildesamling.
Om modellen
Denne beskrivelsen dekker modellens funksjoner. Tilgjengelige inndata, utdata og alternativer i Ailoot er oppført nedenfor for den valgte metoden.
GPT-4o er OpenAIs allsidige GPT-modell for tekst- og bildeforståelse, skriving og applikasjonsarbeid. Bokstaven «o» står for «omni», mens denne dokumenterte modellen godtar tekst og bilder og returnerer tekst, inkludert Structured Outputs. En praktisk forespørsel kan kombinere et skriftlig oppgavegrunnlag med fotografier, skjermbilder eller dokumentsider og be om en tydelig forklaring, et redigert produkt eller definerte felt for et annet trinn i applikasjonen.
For en rapport oppgir du kildedokumentene og beslutningen rapporten skal støtte. Angi relevante datoer, enheter og etiketter som identifiserer belegget, og be deretter om en sammenligning som skiller observasjoner, antakelser og manglende informasjon. For en visuell oppgave peker du på gjenstanden, grafen eller tilstanden i grensesnittet som er viktig, og tar med konteksten rundt. For en kodeendring oppgir du den berørte koden, ønsket atferd og begrensningene som må overholdes. Dette er konkrete måter å bruke modellens tekst- og bildeegenskaper på uten å stole på at instruksjonen implisitt angir hele oppgaven.
OpenAIs gjeldende GPT-4o-profil oppgir et kontekstvindu på 128000 tokener, en maksimal utdatamengde på 16384 tokener og en kunnskapsgrense på 1. oktober 2023. Produsenten oppgir flere daterte GPT-4o-modellversjoner separat. Samtalen, inndatamaterialet og det genererte svaret deler kontekstbudsjettet, så en stor dokumentsamling trenger fortsatt organisering og rom for sluttproduktet. Fakta som endres eller kommer fra et privat system, skal oppgis direkte eller hentes gjennom et eksplisitt konfigurert verktøy.
Bildeveiledningen godtar PNG, JPEG, WebP og ikke-animerte GIF-bilder. GPT-4o støtter bildedetaljene low, high og auto; high og auto følger behandling basert på bildefliser. Forstørr små etiketter, hold teksten riktig vei og behold tegnforklaringen eller diagrammet rundt når du tolker en graf. De dokumenterte begrensningene omfatter presis romlig lokalisering, omtrentlig telling av gjenstander, noen former for ikke-latinsk skrift og panorama- eller fiskeøyeperspektiver. Modellen kan også beskrive et bilde feil, så behold kilden og be om de konkrete observasjonene som støtter en tolkning. I OpenAIs dokumenterte bildearbeidsflyt er den samlede datamengden i forespørselen begrenset til 512 MB, og en forespørsel kan inneholde opptil 1500 bilder; bildene og teksten må også passe i modellens kontekst.
OpenAIs arbeidsflyt for filinndata gir en modell med bildestøtte både uthentet tekst og sidebilder fra PDF-filer. Kontordokumenter som ikke er PDF-filer, leverer uthentet tekst fremfor innebygde diagrammer, og regnearkgrunnlaget suppleres fra opptil de første 1000 radene i hvert ark. Hver fil må være under 50 MB, med en samlet grense på 50 MB per forespørsel. Chat Completions støtter PDF-fildeler; den dokumenterte Responses-arbeidsflyten godtar flere filformater. Velg en PDF-representasjon når visuell nøyaktighet er viktig, og hold kildeidentifikatorene synlige i resultatet.
Strømming kan returnere svaret etter hvert som det genereres. Structured Outputs begrenser et fullført svar til den støttede delmengden av JSON Schema, noe som er nyttig for dokumentuthenting eller et applikasjonsobjekt med definerte felt. JSON-modus handler bare om gyldig JSON. Definer forventede typer, tillatte verdier og håndtering av manglende belegg, og håndter deretter eksplisitte avslag eller ufullstendige svar separat. Et skjema fastslår ikke om en verdi er faktuelt korrekt, så de forespurte feltene skal fortsatt kunne spores til det innsendte materialet.
Produsenten støtter funksjonskall, nettsøk, filsøk, kodetolking og MCP-tilkoblinger. Egendefinerte funksjoner trenger meningsfulle beskrivelser og argumentskjemaer; applikasjonen utfører den forespurte handlingen og returnerer resultatet for modellens neste trinn. GPT-4o kan også styre et separat bildegenereringsverktøy i en konfigurert Responses-arbeidsflyt. Et bilde opprettet av et verktøy er et eget produkt, mens GPT-4os eget dokumenterte svar er tekst. Agentens endelige forklaring skal bruke faktiske innhentede eller beregnede observasjoner, fremfor å behandle et foreslått verktøykall som en fullført operasjon.
Predicted Outputs er tilgjengelig for GPT-4o ved regenerering av i hovedsak kjent tekst eller kode med små endringer. Oppgi det eksisterende innholdet og en presis endring, og undersøk deretter det returnerte produktet. Denne arbeidsflyten er bare for tekst, kombineres ikke med funksjonskall og utelukker logprobs, max_completion_tokens og flere andre innstillinger. En verktøybasert forespørsel er et separat valg når svaret avhenger av ny informasjon fra en ekstern operasjon.
OpenAI dokumenterer finjustering for GPT-4o, og optimaliseringsveiledningen navngir spesielt modellversjonen datert 6. august 2024 for visuell finjustering med bildeeksempler. Denne versjonsspesifikke tilpasningsarbeidsflyten er atskilt fra en vanlig forespørsel til modellaliaset. For daglig skriving, analyse eller uthenting begynner du med et nyttig oppgavegrunnlag og et eksempel på ønskede utdata. En oppfølging kan avklare én manglende opplysning, revidere et felt eller videreutvikle det samme produktet og samtidig beholde oppgavens belegg og begrensninger.
Ailoot Ultra · Batchbehandling POST /v1/batches openai/gpt-4o:batch
openai/gpt-4o:batchStart
GPT-4o kombinerer tekst- og bildeforståelse med skriving, programmering, Structured Outputs og applikasjonsverktøy. Bruk modellen til å utvikle et svar basert på belegg, tolke visuelt materiale eller returnere definerte felt fra en omfattende kildesamling.
- Godkjente inndata
- Tekst
- Resultater
- Tekst
Tilgjengelig i Ailoot · inndata & metoder
Ailoot Ultra · Batchbehandling POST /v1/batches
- Inndatatyper
text- Utdatatyper
text- Utdataformat
- JSON fra results[].response.body direkte i svaret
| Felt | Type | Krav | Verdier & grenser | Standard |
|---|---|---|---|---|
Feltendpoint | Typestring | KravPåkrevd | Verdier & grenser /v1/chat/completions | Standard— |
Feltmodel | Typestring | KravPåkrevd | Verdier & grenser openai/gpt-4o:batch | Standard— |
Feltrequests | Typebatch_item[] | KravPåkrevd | Verdier & grenser Minste antall elementer: 1 | Standard— |
Feltrequests[].custom_id | Typestring | KravPåkrevd | Verdier & grenser | Standard— |
Feltrequests[].body.messages | Typemessage[] | KravPåkrevd | Verdier & grenser | Standard— |
Feltcompletion_window | Typestring | KravValgfritt | Verdier & grenser 24h | Standard— |
Feltprovider | Typeobject|null | KravValgfritt | Verdier & grenser | Standard— |
Feltrequests[].body.model | Typestring | KravValgfritt | Verdier & grenser openai/gpt-4o:batch, openai/gpt-4o | Standard— |
Feltprovider.only | Typestring[] | KravValgfritt | Verdier & grenser openai | Standard— |
Feltprovider.allow_fallbacks | Typeboolean|null | KravValgfritt | Verdier & grenser false, null | Standard— |
Metodeparametere og livssyklus
| Parameter | Avtale |
|---|---|
Parametercontent_type | Avtaleapplication/json |
Parameterrequired | Avtaleendpoint, model, requests |
Parametermaterial_types | Avtaletext |
Parameterrepresentation | Avtalerequests[] direkte i forespørselen; hvert element har custom_id og body |
Parameterrequest_endpoint_profile | Avtale/v1/chat/completions |
Parameterfile_material | AvtaleKlienten kan lese det faktiske UTF-8-kodede JSONL-innholdet lokalt inn i requests[]. Feltet purpose for opplasting, input_file_id og filreferanser brukes ikke. Manglende eller tomt kundemateriale stopper klargjøringen før POST. |
Parameterserialization_order | Avtaleendpoint, model, provider (hvis angitt), completion_window (hvis angitt), requests til slutt |
Parameteroptional_controls | Avtaleprovider.only, provider.allow_fallbacks, completion_window |
Parameterschema_scope | AvtaleForespørselsinnhold for tekstbasert Chat Completions lagt direkte inn i det dokumenterte Batch-formatet. |
Livssyklus: asynchronous
GET /v1/batches/{operation_id} · faktisk response.id fra den opprinnelige opprettelsen; samme bruker/nøkkel/gruppe
Priser
Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.
- Hurtigmodus
- Ikke angitt Når hurtigmodus er valgt
- Flex-modus
- Ikke angitt Når flex-modus er valgt
- Maksimal resonneringsinnsats
- Ikke angitt Når justeringen «default» brukes for maksimal resonneringsinnsats
- Priser for eksplisitt mellomlagring
- Ikke aktivert Når eksplisitt mellomlagring forespørres
Ailoot-satser
Priser etter konfigurasjon
Knytt hver kostnad til de viste vilkårene. Bruk én sats for hvert sett med alternative konfigurasjoner.
| Konfigurasjon | Prisplan | Konteksttokener, mer enn | Konteksttokener, opptil og med | Kostnad |
|---|---|---|---|---|
| KonfigurasjonGrunnpriser for tokener | PrisplanGrunnsats | Konteksttokener, mer enn— | Konteksttokener, opptil og medIngen øvre grense | Kostnad Inndata · Inngående tokener $0.0025 / 1K tokener Utdata · Utgående tokener $0.01 / 1K tokener Inndata · Lesing fra hurtigbuffer $0.00125 / 1K tokener Inndata · Skriving til hurtigbuffer — / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time — / 1K tokener |
| KonfigurasjonNivå 1 for forespørselslengde | Prisplan— | Konteksttokener, mer enn0 | Konteksttokener, opptil og medIngen øvre grense | Kostnad Inndata · Inngående tokener $0.0025 / 1K tokener Utdata · Utgående tokener $0.01 / 1K tokener Inndata · Lesing fra hurtigbuffer $0.00125 / 1K tokener Inndata · Skriving til hurtigbuffer — / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time — / 1K tokener |
Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. Slik fungerer reservasjon og oppgjør →
Eksempelforespørsler
Ailoot Ultra · Batchbehandling
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.
Motta og lagre resultater
Ailoot Ultra · Batchbehandling
JSON fra results[].response.body direkte i svaret
GET /v1/batches/{operation_id}
Kontroller 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
Behold alle ferdige resultater
Behold alle fullstendige returnerte svar, filer og innholdsdeler.
Bevar hele den opprinnelige statusresponsen i JSON, alle resultater og custom_id-verdier samt hele svar- eller feilinnholdet. Lagre fullførte results[] som JSONL uten filtrering.
Hvis det opprinnelige svaret må kontrolleres
Bevar den opprinnelige operasjons-ID-en. 503 result_pending_check har X-Should-Retry:false; send aldri den opprinnelige batchen på nytt når utfallet er ukjent.
Svarfelter
| Felt | Type |
|---|---|
Feltresults[].custom_id | Typestring |
Feltresults[].response.body.choices[].message.content | Typestring|null |
Feltresults[].error | Typeobject|null |
Feltusage | Typeobject|null |
Feltid | Typestring |
Feltmodel | Typestring |
Feltendpoint | Typestring |
Feltstatus | Typestring |
Feltrequest_counts | Typeobject |
Feltresults[].id | Typestring |
Feltresults[].response.status_code | Typeinteger |
Feltresults[].response.request_id | Typestring |
Feil og neste trinn
| Svar | Vilkår | Neste trinn |
|---|---|---|
Svar400 · invalid_request_error | VilkårUgyldig struktur i det dokumenterte formatet med innebygde forespørsler, dupliserte nøkler, ugyldig elementidentitet eller konflikt med modellens konfigurerte funksjoner. | Neste trinnRett de angitte feltene før du sender en ny forespørsel. |
Svar401 · authentication_error | VilkårUgyldig API-nøkkel. | Neste trinnBruk den autoriserte Ailoot-nøkkelen. |
Svar403 · permission_error | VilkårGruppen for batchbehandling er ikke tilgjengelig. | Neste trinnKontroller tilgangsrettighetene til nøkkelen/gruppen. |
Svar422 · invalid_request_error | VilkårBatch belastes saldoen; opprettelse via abonnement avvises. | Neste trinnBruk den autoriserte gruppen som belastes saldoen. |
Svar422 · price_unavailable | VilkårDet kan ikke beregnes en pris for batchens inndata. | Neste trinnBevar svaret; bruk de dokumenterte inndataene for API-familien. |
Svar402 · billing_error | VilkårBeløpsreservasjon for batchbehandling er ikke tilgjengelig. | Neste trinnLøs problemet som hindrer forespørselen i å bli godkjent før du sender en ny forespørsel. |
Svar503 · price_unavailable | VilkårPris for Batch-metoden eller systemets innebygde satser er ikke tilgjengelige. | Neste trinnBevar svaret; ikke erstatt prisene. |
Svar503 · api_error | VilkårDen nøyaktige leverandørruten er ikke tilgjengelig. | Neste trinnBevar svaret slik at ruten kan repareres. |
Svar503 · result_pending_check | VilkårDet opprinnelige resultatet må kontrolleres; X-Should-Retry:false. | Neste trinnBevar opprinnelig operation_id/id og les statusen; gjenta aldri den opprinnelige POST-forespørselen. |
Svar404 · not_found | VilkårStatusoperasjonen for batchen finnes ikke eller tilhører en annen identitet. | Neste trinnBruk nøyaktig den opprinnelige id-verdien og samme bruker/nøkkel/gruppe. |
Aliaser
Modellaliaser
Ailoot Ultra openai/gpt-4o:batch
Aliaser for metodestier
Bruk metodestiene som vises ovenfor.
Tilknyttede anroper-ID-er
FAQ · OpenAI: GPT-4o (batch)
- Hvilke inndata og resultater er tilgjengelige?
POST /v1/batches·openai/gpt-4o:batch:text→text- Hvilke felt bruker forespørselen?
POST /v1/batches·openai/gpt-4o:batch:endpoint,model,requests,completion_window,provider- Hvilke grenser gjelder?
POST /v1/batches·openai/gpt-4o:batch:requests.min_items:1