OpenAI: o3 (batch)
OpenAI o3 er en resonneringsmodell for arbeid i flere trinn innen matematikk, vitenskap, kode og bilder. Den returnerer tekst og støtter strukturerte svar og verktøybruk, noe som gjør den nyttig til å undersøke et teknisk problem og lage en dokumentert forklaring eller et løsningsforslag.
Om modellen
Denne beskrivelsen dekker modellens funksjoner. Tilgjengelige inndata, utdata og alternativer i Ailoot er oppført nedenfor for den valgte metoden.
o3 er OpenAIs allsidige resonneringsmodell i o-serien for komplekse oppgaver. Produsenten fremhever matematikk, vitenskap, koding, visuell resonnering, teknisk skriving og instruksjonsfølging. Den tar imot tekst og bilder og produserer tekst, slik at en oppgave kan kombinere en skriftlig problemstilling, kode og et diagram fremfor å behandle hver kilde som et isolert spørsmål. Målet er et gjennomtenkt svar på et problem med flere trinn, med informasjonen som trengs for å vurdere svaret.
For et matematisk eller vitenskapelig spørsmål legger du ved hele problemet, definisjoner, kjente mengder, enheter og begrensninger. Angi om du trenger en utledning, et tallresultat, en sammenligning av hypoteser eller en forklaring for en bestemt målgruppe. En eksempelbeskrivelse av resultatet er: angi relevante antakelser, presenter løsningen med enheter og forklar hvilke vedlagte fakta som understøtter den. Be om en nyttig forklaring i sluttsvaret; OpenAIs interne resonneringstokens vises ikke som modellens rå arbeidslogg.
For programvarearbeid gir du relevant kode, forventet oppførsel og den observerte feilen, inkludert den nøyaktige feilmeldingen eller inndataene som avslører den. Be o3 knytte symptomene til en plausibel årsak og foreslå en målrettet endring med forklaring. En visuell oppgave kan inkludere et diagram, skjermbilde eller plottet resultat: angi spørsmålet og de viktige etikettene eller områdene, behold en leselig skala og be om en konklusjon knyttet til det som faktisk er synlig. Disse forberedelsene gir modellen et definert problem og et konkret resultat fremfor en ubegrenset forespørsel om å undersøke alt.
OpenAI oppgir et kontekstvindu på 200000 tokens, en maksimal utdatamengde på 100000 tokens og en kunnskapsgrense på 1. juni 2024. Intern resonnering bruker kontekst- og utdatakapasitet ved siden av det synlige svaret. Maksimal utdata er derfor ikke et løfte om 100000 synlige svartokens, og konteksten er ikke en ekstra, uavhengig utdatakvote. La det være rom etter inndatamaterialet for analyse og ønsket resultat. Produsentens resonneringsveiledning beskriver ufullstendige svar når en kontekst- eller utdataramme nås; dette kan skje før et synlig svar kommer.
Den nøyaktige o3-spesifikasjonen dokumenterer grensesnittene Chat Completions, Responses og Batch, sammen med strømming, Structured Outputs, funksjonskall, filopplasting, bildeinndata, filsøk og mellomlagring av ledetekster. Det dokumenterte verktøysettet omfatter nett- og filsøk, kodetolkning, bildegenerering og MCP-tilkoblinger. Et søkeresultat eller en beregning er ytterligere dokumentasjon for oppgaven, mens et funksjonskall ber den omkringliggende applikasjonen om en operasjon. Behold den returnerte dokumentasjonen knyttet til spørsmålet den besvarer, og skill en foreslått handling fra et bekreftet resultat. Modellens egne utdata er fortsatt tekst, selv når et bildegenereringsverktøy lager et separat resultat.
OpenAIs resonneringsveiledning foretrekker enkle, direkte instruksjoner med klare grenser mellom instruksjoner og kildemateriale. Angi mål, begrensninger og påkrevd svarformat fremfor å foreskrive modellens private tankeprosess. Bruk eksempler når de klargjør et vanskelig format eller en beslutningsregel, og hold eksemplene i samsvar med de faktiske kravene. For et langt teknisk dokument merker du avsnittene og ber om passasjene eller sammenhengene som er relevante for et bestemt spørsmål; for kodegjennomgang angir du oppførselen og risikoen du ønsker undersøkt.
Et nyttig o3-resultat kan være en gjennomarbeidet teknisk forklaring, en diagramanalyse, en dokumentert koderettelse eller en sammenligning basert på det vedlagte materialet. Gjør udokumenterte antakelser og manglende informasjon tydelige, og kontroller avgjørende beregninger eller kodeoppførsel mot det opprinnelige problemet. Kunnskapsgrensen betyr at nyere fakta krever vedlagt materiale eller et egnet informasjonsverktøy. Tydelig dokumentasjon, et uttrykkelig fullføringskriterium og nok plass til utdata bidrar til å gjøre en bred resonneringsoppgave til et resultat en annen person kan undersøke og bruke.
Ailoot Ultra · Batchbehandling POST /v1/batches openai/o3:batch
openai/o3:batchStart
OpenAI o3 er en resonneringsmodell for arbeid i flere trinn innen matematikk, vitenskap, kode og bilder. Den returnerer tekst og støtter strukturerte svar og verktøybruk, noe som gjør den nyttig til å undersøke et teknisk problem og lage en dokumentert forklaring eller et løsningsforslag.
- 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/o3: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/o3:batch, openai/o3 | 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.002 / 1K tokener Utdata · Utgående tokener $0.008 / 1K tokener Inndata · Lesing fra hurtigbuffer $0.0005 / 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.002 / 1K tokener Utdata · Utgående tokener $0.008 / 1K tokener Inndata · Lesing fra hurtigbuffer $0.0005 / 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/o3: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/o3:batch', 'openai/o3']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"openai/o3: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/o3:batch
Aliaser for metodestier
Bruk metodestiene som vises ovenfor.
Tilknyttede anroper-ID-er
FAQ · OpenAI: o3 (batch)
- Hvilke inndata og resultater er tilgjengelige?
POST /v1/batches·openai/o3:batch:text→text- Hvilke felt bruker forespørselen?
POST /v1/batches·openai/o3:batch:endpoint,model,requests,completion_window,provider- Hvilke grenser gjelder?
POST /v1/batches·openai/o3:batch:requests.min_items:1