OpenAI: o3 Mini (batch)
OpenAI o3-mini is een tekstredeneermodel voor wetenschap, wiskunde en programmeren. Het biedt redeneerinspanning low, medium en high, een context van 200K, gestructureerde uitvoer en werkwijzen met hulpmiddelen, met een maximaal budget van 100K tokens voor gegenereerde uitvoer.
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.
OpenAI o3-mini is een kleiner redeneermodel uit de o-serie, gericht op technische probleemoplossing, waaronder wetenschap, wiskunde en programmeren. Het accepteert tekst en produceert tekst, met extra intern redeneerwerk vóór het zichtbare antwoord. Gebruik het voor een duidelijk gesteld wiskundig probleem, algoritmische analyse, codeherziening of technische vergelijking waarvan de conclusie van meerdere voorwaarden afhangt. De redeneerinspanning kan voor de basiseditie o3-mini worden ingesteld; een voorinstelling o3-mini High kiest hoge inspanning in plaats van afzonderlijke modelgewichten.
De maker documenteert redeneerinspanning low, medium en high. Meer inspanning kan een veeleisend probleem ondersteunen en meer generatietijd vergen, terwijl het gewenste zichtbare antwoord toch beknopt kan blijven. Geef het model de taak, voorwaarden en het uitvoercontract in plaats van een lange keten tussengedachten voor te schrijven. Lever voor een algoritmeprobleem de invoergrenzen, het vereiste gedrag en de gevallen die de correctheid bepalen aan. Definieer bij wiskunde de variabelen, domeinen, notatie en het vereiste resultaat.
OpenAI vermeldt een contextvenster van 200.000 tokens, een maximaal uitvoerbudget van 100.000 tokens en een kennisgrens van 1 oktober 2023. Redeneertokens verbruiken de beschikbare context en het budget voor gegenereerde uitvoer vóór het eindantwoord, dus het maximum is geen belofte van evenveel zichtbare antwoordtokens. Laat ruimte voor zowel analyse als het gevraagde resultaat. Een aanvraag kan haar budget voor gegenereerde tokens uitputten voordat bruikbare zichtbare tekst wordt teruggegeven, als het budget te klein is voor het probleem.
De oorspronkelijke invoermodaliteit is tekst, geen beeld. Als een taak voortkomt uit een diagram of schermafbeelding, lever de relevante voorwaarden dan schriftelijk aan. De maker vermeldt bestandsuploads en ondersteuning voor zoeken in bestanden in werkwijzen met hulpmiddelen; die kunnen relevant tekstmateriaal leveren zonder de oorspronkelijke modaliteit van het model te veranderen. Benoem de bronpassages of bestandsinhoud die nodig zijn om de vraag te beantwoorden, in plaats van aan te nemen dat elke bijlage automatisch bruikbaar bewijs oplevert.
Het model ondersteunt Structured Outputs, functieaanroepen en streaming, en de modelkaart van de maker vermeldt interfaces voor Responses, Chat Completions, Assistants en Batch. Specificeer in een gestructureerde taak de vereiste velden en hoe ontbrekende informatie moet worden weergegeven. In een werkwijze met hulpmiddelen stelt het model een functie en argumenten voor; de toepassing voert de actie uit en geeft de werkelijke waarneming terug. Houd een voorgestelde bewerking onderscheiden van een bewerking waarvan het resultaat is ontvangen.
De huidige hulpmiddelen van de maker omvatten ook zoeken in bestanden, code-interpretatie, MCP-verbindingen en hulpmiddelen voor afbeeldingsgeneratie. Die geconfigureerde hulpmiddelen hebben hun eigen bewerkingen; ze veranderen o3-mini’s directe tekstantwoord niet in oorspronkelijke afbeeldings- of audio-uitvoer. Lever voor een programmeertaak de code, de waargenomen fout en de vereisten aan en vraag vervolgens om een voorgestelde wijziging met uitleg van de gevallen die deze afhandelt. Lever beschikbare uitvoeringsresultaten als bewijs voor de volgende herziening aan, in plaats van niet-uitgevoerde code als een voltooid resultaat te behandelen.
Een bruikbaar eindresultaat kan een formule, een onderbouwde vergelijking, een codevoorstel of een gestructureerd technisch resultaat zijn dat de conclusie met de oorspronkelijke voorwaarden verbindt. Benoem bij een vervolg het nieuwe bewijs en het deel van het antwoord dat moet worden herzien. Behoud de relevante conversatie en waarnemingen van hulpmiddelen, zodat het volgende antwoord met werkelijke resultaten kan werken. De kleinere redeneerrol van het model is praktisch wanneer de taak analyse, duidelijke voorwaarden en een gericht tekstresultaat vraagt in plaats van niet-onderbouwde aannames over externe acties.
Ailoot Ultra · Batchverwerking POST /v1/batches openai/o3-mini:batch
openai/o3-mini:batchAan de slag
OpenAI o3-mini is een tekstredeneermodel voor wetenschap, wiskunde en programmeren. Het biedt redeneerinspanning low, medium en high, een context van 200K, gestructureerde uitvoer en werkwijzen met hulpmiddelen, met een maximaal budget van 100K tokens voor gegenereerde uitvoer.
- Toegestane invoer
- Tekst
- Resultaten
- Tekst
Beschikbaar in Ailoot · invoer en methoden
Ailoot Ultra · Batchverwerking POST /v1/batches
- Invoer
text- Uitvoer
text- Uitvoerformaat
- inline JSON uit results[].response.body
| Veld | Type | Vereiste | Waarden en limieten | Standaard |
|---|---|---|---|---|
Veldendpoint | Typestring | VereisteVereist | Waarden en limieten /v1/chat/completions | Standaard— |
Veldmodel | Typestring | VereisteVereist | Waarden en limieten openai/o3-mini: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/o3-mini:batch, openai/o3-mini | 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 kan de daadwerkelijke UTF-8 JSONL lokaal in requests[] inlezen. Er wordt geen uploaddoel, 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 | ContractAanvraagbodies voor tekst via Chat Completions in de gedocumenteerde inline Batch-structuur. |
Levenscyclus: asynchronous
GET /v1/batches/{operation_id} · daadwerkelijke response.id uit de oorspronkelijke aanmaakrespons; 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 geselecteerd is
- Flex-modus
- Niet opgegeven Wanneer de flex-modus geselecteerd is
- Maximale redeneerinspanning
- Niet opgegeven Wanneer voor 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.0011 / 1K tokens Uitvoer · Uitvoertokens $0.0044 / 1K tokens Invoer · Cache lezen $0.00055 / 1K tokens Invoer · Cache schrijven — / 1K tokens Invoer · Cache schrijven, 1 uur — / 1K tokens |
| ConfiguratieAanvraaglengte · niveau 1 | Tariefstaffel— | Contexttokens, meer dan0 | Contexttokens, tot en metGeen bovengrens | Kosten Invoer · Invoertokens $0.0011 / 1K tokens Uitvoer · Uitvoertokens $0.0044 / 1K tokens Invoer · Cache lezen $0.00055 / 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 · Batchverwerking
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-mini: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-mini:batch', 'openai/o3-mini']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"openai/o3-mini: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 · Batchverwerking
inline JSON uit results[].response.body
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 respons- of foutbody. Sla voltooide results[] op als JSONL, zonder te filteren.
Als het oorspronkelijke antwoord moet worden gecontroleerd
Bewaar de oorspronkelijke bewerkings-ID. 503 result_pending_check bevat X-Should-Retry:false; dien een oorspronkelijke batch met onbekende status 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 structuur, dubbele sleutels, ongeldige itemidentiteit of conflict met de geconfigureerde modelmogelijkheden. | Volgende stapCorrigeer de aangegeven velden vóór elke nieuwe indiening. |
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 | VoorwaardeBatch wordt via het saldo gefactureerd; aanmaken via een abonnement wordt geweigerd. | Volgende stapGebruik de geautoriseerde groep die via het saldo wordt gefactureerd. |
Antwoord422 · price_unavailable | VoorwaardeVoor de Batch-invoer kan geen prijsraming worden gemaakt. | Volgende stapBewaar de respons; gebruik de gedocumenteerde invoer voor deze familie. |
Antwoord402 · billing_error | VoorwaardeReservering voor Batch niet beschikbaar. | Volgende stapLos het toelatingsprobleem op vóór een nieuwe aanvraag. |
Antwoord503 · price_unavailable | VoorwaardePrijs voor de Batch-methode/native tarieven niet beschikbaar. | Volgende stapBewaar de respons; vervang de prijzen niet. |
Antwoord503 · api_error | VoorwaardeDe exacte leveranciersroute is niet beschikbaar. | Volgende stapBewaar de respons voor het herstel van de route. |
Antwoord503 · result_pending_check | VoorwaardeHet oorspronkelijke resultaat moet gecontroleerd worden; 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 | VoorwaardeBewerking voor de Batch-status ontbreekt of behoort toe aan een andere identiteit. | Volgende stapGebruik de exacte oorspronkelijke id en dezelfde gebruiker/sleutel/groep. |
Aliasnamen
Modelaliasnamen
Ailoot Ultra openai/o3-mini:batch
Aliasnamen voor methodepaden
Gebruik de hierboven getoonde methodepaden.
Gerelateerde aanroeper-ID’s
FAQ · OpenAI: o3 Mini (batch)
- Welke invoer en resultaten zijn beschikbaar?
POST /v1/batches·openai/o3-mini:batch:text→text- Welke velden gebruikt het verzoek?
POST /v1/batches·openai/o3-mini:batch:endpoint,model,requests,completion_window,provider- Welke limieten gelden?
POST /v1/batches·openai/o3-mini:batch:requests.min_items:1