OpenAI: o3 (batch)
OpenAI o3 er en ræsonneringsmodel til arbejde i flere trin inden for matematik, naturvidenskab, kode og billeder. Den returnerer tekst og understøtter strukturerede svar og værktøjsbrug, så den kan undersøge et teknisk problem og udarbejde en underbygget forklaring eller et løsningsforslag.
Om modellen
Denne beskrivelse dækker modellens funktioner. Tilgængelige input, output og indstillinger i Ailoot står nedenfor for den valgte metode.
o3 er OpenAI’s generelle ræsonneringsmodel i o-serien til komplekse opgaver. Producenten fremhæver matematik, naturvidenskab, programmering, visuel ræsonnering, teknisk skrivning og efterlevelse af instruktioner. Den modtager tekst og billeder og producerer tekst, så en opgave kan kombinere en skriftlig problemstilling, kode og et diagram frem for at behandle hver kilde som et isoleret spørgsmål. Det tilsigtede resultat er et velovervejet svar på et problem i flere trin med de oplysninger, der er nødvendige for at vurdere svaret.
Til et matematisk eller naturvidenskabeligt spørgsmål skal hele problemet, definitionerne, kendte størrelser, enheder og betingelser leveres. Angiv, om der er brug for en udledning, et numerisk resultat, en sammenligning af hypoteser eller en forklaring til en bestemt målgruppe. Et eksempel på en outputbeskrivelse er: identificer de relevante antagelser, præsenter løsningen med dens enheder, og forklar, hvilke leverede fakta der understøtter den. Bed om en nyttig forklaring i det endelige svar; OpenAI’s interne ræsonneringstokens vises ikke som modellens rå arbejdsspor.
Ved softwarearbejde skal den relevante kode, den forventede adfærd og den observerede fejl leveres, herunder den præcise fejlmeddelelse eller det input, der afslører den. Bed o3 forbinde symptomerne med en sandsynlig årsag og foreslå en målrettet ændring med en forklaring. En visuel opgave kan indeholde et diagram, skærmbillede eller grafisk afbildet resultat: angiv spørgsmålet og de relevante mærkater eller områder, bevar en læselig skala, og bed om en konklusion knyttet til det faktisk synlige. Denne forberedelse giver modellen et defineret problem og et konkret output frem for en ubegrænset anmodning om at undersøge alt.
OpenAI angiver et kontekstvindue på 200.000 tokens, et maksimalt output på 100.000 tokens og en vidensgrænse den 1. juni 2024. Intern ræsonnering bruger kontekst- og outputkapacitet sammen med det synlige svar. Det maksimale output er derfor ikke et løfte om 100.000 synlige svartokens, og konteksten er ikke en ekstra, uafhængig outputramme. Giv plads efter inputmaterialet til analyse og det ønskede resultat. Producentens ræsonneringsvejledning beskriver ufuldstændige svar, når en kontekst- eller outputgrænse nås; det kan ske, før et synligt svar vises.
Den specifikke o3-specifikation dokumenterer grænseflader til Chat Completions, Responses og Batch samt streaming, Structured Outputs, funktionskald, filuploads, billedinput, filsøgning og promptcaching. De dokumenterede værktøjer omfatter web- og filsøgning, kodefortolkning, billedgenerering og MCP-forbindelser. Et søgeresultat eller en beregning er yderligere dokumentation for opgaven, mens et funktionskald anmoder om en operation fra den omgivende applikation. Hold den returnerede dokumentation knyttet til det spørgsmål, den besvarer, og skeln mellem en foreslået handling og et bekræftet resultat. Modellens eget output forbliver tekst, selv når et billedgenereringsværktøj skaber et separat resultat.
OpenAI’s ræsonneringsvejledning foretrækker enkle, direkte instruktioner med tydelige grænser mellem instruktioner og kildemateriale. Angiv mål, betingelser og påkrævet svarformat frem for at foreskrive modellens private tankeproces. Brug eksempler, når de tydeliggør et vanskeligt format eller en beslutningsregel, og hold dem i overensstemmelse med de faktiske krav. Ved et langt teknisk dokument skal afsnittene mærkes, og de passager eller relationer, der er relevante for et bestemt spørgsmål, efterspørges; ved kodegennemgang skal den adfærd og risiko, der ønskes undersøgt, angives.
Et nyttigt o3-resultat kan være en gennemarbejdet teknisk forklaring, en diagramanalyse, en dokumenteret koderettelse eller en sammenligning baseret på det leverede materiale. Gør udokumenterede antagelser og manglende oplysninger eksplicitte, og kontroller afgørende beregninger eller kodeadfærd mod det oprindelige problem. Vidensgrænsen betyder, at aktuelle fakta kræver leveret materiale eller et passende informationsværktøj. Tydelig dokumentation, et eksplicit afslutningskriterium og tilstrækkelig outputplads hjælper med at omsætte en bred ræsonneringsopgave til et resultat, som en anden person kan undersøge og bruge.
Ailoot Ultra · Batch POST /v1/batches openai/o3:batch
openai/o3:batchStart
OpenAI o3 er en ræsonneringsmodel til arbejde i flere trin inden for matematik, naturvidenskab, kode og billeder. Den returnerer tekst og understøtter strukturerede svar og værktøjsbrug, så den kan undersøge et teknisk problem og udarbejde en underbygget forklaring eller et løsningsforslag.
- Accepterede input
- Tekst
- Resultater
- Tekst
Tilgængelig i Ailoot · input og metoder
Ailoot Ultra · Batch POST /v1/batches
- Inputtyper
text- Outputtyper
text- Outputformat
- JSON direkte i results[].response.body
| Felt | Type | Krav | Værdier og grænser | Standard |
|---|---|---|---|---|
Feltendpoint | Typestring | KravPåkrævet | Værdier og grænser /v1/chat/completions | Standard— |
Feltmodel | Typestring | KravPåkrævet | Værdier og grænser openai/o3:batch | Standard— |
Feltrequests | Typebatch_item[] | KravPåkrævet | Værdier og grænser Minimumsantal elementer: 1 | Standard— |
Feltrequests[].custom_id | Typestring | KravPåkrævet | Værdier og grænser | Standard— |
Feltrequests[].body.messages | Typemessage[] | KravPåkrævet | Værdier og grænser | Standard— |
Feltcompletion_window | Typestring | KravValgfrit | Værdier og grænser 24h | Standard— |
Feltprovider | Typeobject|null | KravValgfrit | Værdier og grænser | Standard— |
Feltrequests[].body.model | Typestring | KravValgfrit | Værdier og grænser openai/o3:batch, openai/o3 | Standard— |
Feltprovider.only | Typestring[] | KravValgfrit | Værdier og grænser openai | Standard— |
Feltprovider.allow_fallbacks | Typeboolean|null | KravValgfrit | Værdier og grænser false, null | Standard— |
Metodeparametre og livscyklus
| Parameter | Kontrakt |
|---|---|
Parametercontent_type | Kontraktapplication/json |
Parameterrequired | Kontraktendpoint, model, requests |
Parametermaterial_types | Kontrakttext |
Parameterrepresentation | Kontraktrequests[] direkte i anmodningen; hvert element har custom_id og body |
Parameterrequest_endpoint_profile | Kontrakt/v1/chat/completions |
Parameterfile_material | KontraktDen kaldende part kan læse det faktiske JSONL-indhold i UTF-8 lokalt ind i requests[]. Der angives hverken purpose til upload, input_file_id eller en filreference. Hvis kundematerialet mangler eller er tomt, stoppes forberedelsen før POST. |
Parameterserialization_order | Kontraktendpoint, model, provider (hvis angivet), completion_window (hvis angivet), requests til sidst |
Parameteroptional_controls | Kontraktprovider.only, provider.allow_fallbacks, completion_window |
Parameterschema_scope | KontraktAnmodningsindhold for Chat Completions med tekst i den dokumenterede inline Batch-struktur. |
Livscyklus: asynchronous
GET /v1/batches/{operation_id} · det faktiske response.id fra den oprindelige oprettelse; samme bruger/nøgle/gruppe
Priser
Tarifoplysninger tilføjer ikke anmodningsmuligheder. Understøttede parametre står ved den valgte metode.
- Hurtig tilstand
- Ikke angivet Når hurtig tilstand er valgt
- flex-tilstand
- Ikke angivet Når flex-tilstanden er valgt
- Maksimal ræsonneringsindsats
- Ikke angivet Når default-justeringen anvendes ved maksimal ræsonneringsindsats
- Priser for eksplicit caching
- Ikke aktiveret Når der anmodes om eksplicit caching
Ailoot-takster
Priser efter konfiguration
Knyt hver omkostning til de viste betingelser. Brug én takst for hver gruppe af alternative konfigurationer.
| Konfiguration | Takstplan | Konteksttokens, mere end | Konteksttokens, op til og med | Beløb |
|---|---|---|---|---|
| KonfigurationGrundtakster for tokens | TakstplanGrundtakst | Konteksttokens, mere end— | Konteksttokens, op til og medIngen øvre grænse | Beløb Input · Inputtokens $0.002 / 1K tokens Output · Outputtokens $0.008 / 1K tokens Input · Cachelæsning $0.0005 / 1K tokens Input · Cacheskrivning — / 1K tokens Input · Cacheskrivning, 1 time — / 1K tokens |
| KonfigurationAnmodningslængde · niveau 1 | Takstplan— | Konteksttokens, mere end0 | Konteksttokens, op til og medIngen øvre grænse | Beløb Input · Inputtokens $0.002 / 1K tokens Output · Outputtokens $0.008 / 1K tokens Input · Cachelæsning $0.0005 / 1K tokens Input · Cacheskrivning — / 1K tokens Input · Cacheskrivning, 1 time — / 1K tokens |
Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →
Eksempelanmodninger
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/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.
Hent og gem resultater
Ailoot Ultra · Batch
JSON direkte i results[].response.body
GET /v1/batches/{operation_id}
Kontrollér opgavestatus
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 færdige resultater
Gem hvert fuldstændigt returneret svar, hver fil og hver indholdsdel.
Gem hele den oprindelige status i JSON, hvert resultat/custom_id og det fulde svar- eller fejlindhold. Gem færdige results[] som JSONL uden filtrering.
Hvis det oprindelige svar skal kontrolleres
Gem det oprindelige operations-ID. 503 result_pending_check har X-Should-Retry:false; send aldrig en oprindelig batch igen, hvis dens udfald er ukendt.
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 |
Fejl og næste trin
| Svar | Betingelse | Næste trin |
|---|---|---|
Svar400 · invalid_request_error | BetingelseUgyldig dokumenteret inline-struktur, dublerede nøgler, ugyldig elementidentitet eller konflikt med modellens konfigurerede funktioner. | Næste trinRet de angivne felter, før du sender en ny anmodning. |
Svar401 · authentication_error | BetingelseUgyldig API-nøgle. | Næste trinBrug den godkendte Ailoot-nøgle. |
Svar403 · permission_error | BetingelseBatch-gruppen er ikke tilgængelig. | Næste trinKontrollér nøglens/gruppens adgangsrettigheder. |
Svar422 · invalid_request_error | BetingelseBatch afregnes via saldoen; oprettelse via et abonnement afvises. | Næste trinBrug den godkendte gruppe med saldoafregning. |
Svar422 · price_unavailable | BetingelseDer kan ikke beregnes en pris for Batch-inputtet. | Næste trinGem svaret; brug det dokumenterede input for API-familien. |
Svar402 · billing_error | BetingelseReservationen til Batch er ikke tilgængelig. | Næste trinAfklar adgangen, før du sender en ny anmodning. |
Svar503 · price_unavailable | BetingelsePrisen for Batch-metoden eller de native satser er ikke tilgængelige. | Næste trinGem svaret; erstat ikke priserne med andre priser. |
Svar503 · api_error | BetingelseDen præcise leverandørrute er ikke tilgængelig. | Næste trinGem svaret, så ruten kan repareres. |
Svar503 · result_pending_check | BetingelseDet oprindelige resultat skal kontrolleres; X-Should-Retry:false. | Næste trinGem det oprindelige operation_id/id, og læs dets status; gentag aldrig den oprindelige POST. |
Svar404 · not_found | BetingelseOperationen til Batch-status findes ikke eller tilhører en anden identitet. | Næste trinBrug det nøjagtige oprindelige id og samme bruger/nøgle/gruppe. |
Aliaser
Modelaliaser
Ailoot Ultra openai/o3:batch
Aliaser for metodestier
Brug metodestierne vist ovenfor.
Relaterede kalder-ID’er
FAQ · OpenAI: o3 (batch)
- Hvilke input og resultater er tilgængelige?
POST /v1/batches·openai/o3:batch:text→text- Hvilke felter bruger anmodningen?
POST /v1/batches·openai/o3:batch:endpoint,model,requests,completion_window,provider- Hvilke grænser gælder?
POST /v1/batches·openai/o3:batch:requests.min_items:1