OpenAI: o3 (batch)
OpenAI o3 ialah model penaakulan untuk kerja berbilang langkah merentas matematik, sains, kod dan imej. Model ini mengembalikan teks serta menyokong jawapan berstruktur dan penggunaan alat, menjadikannya berguna untuk menyiasat masalah teknikal dan menghasilkan penjelasan berasaskan bukti atau penyelesaian yang dicadangkan.
Tentang model
Huraian ini merangkumi keupayaan model. Input, output dan pilihan yang tersedia di Ailoot disenaraikan di bawah untuk kaedah yang dipilih.
o3 ialah model penaakulan serba guna siri o OpenAI untuk tugasan kompleks. Pengeluar mengetengahkan matematik, sains, pengekodan, penaakulan visual, penulisan teknikal dan pematuhan arahan. Model ini menerima teks dan imej serta menghasilkan teks, maka tugasan boleh menggabungkan masalah bertulis, kod dan rajah, bukannya menganggap setiap sumber sebagai soalan terasing. Hasil yang dimaksudkan ialah jawapan yang dipertimbangkan dengan teliti bagi masalah berbilang langkah, dengan maklumat yang diperlukan untuk menilai jawapan itu.
Untuk soalan matematik atau saintifik, berikan masalah lengkap, takrif, kuantiti yang diketahui, unit dan kekangan. Nyatakan sama ada anda memerlukan penerbitan rumus, hasil berangka, perbandingan hipotesis atau penjelasan untuk khalayak tertentu. Contoh arahan output ialah: kenal pasti andaian yang berkaitan, bentangkan penyelesaian bersama unitnya dan terangkan fakta yang dibekalkan yang menyokongnya. Minta penjelasan berguna dalam jawapan akhir; token penaakulan dalaman OpenAI tidak didedahkan sebagai jejak kerja mentah model.
Untuk kerja perisian, bekalkan kod yang berkaitan, tingkah laku yang dijangkakan dan kegagalan yang diperhatikan, termasuk ralat atau input tepat yang menunjukkannya. Minta o3 menghubungkan gejala dengan punca yang munasabah dan mencadangkan perubahan terfokus dengan penjelasan. Tugasan visual boleh merangkumi rajah, tangkapan skrin atau hasil yang diplot: kenal pasti soalan serta label atau kawasan yang penting, kekalkan skala yang jelas dibaca dan minta kesimpulan yang dikaitkan dengan perkara yang benar-benar kelihatan. Langkah persediaan ini memberikan model masalah yang ditentukan dan output konkrit, bukannya permintaan tanpa batas untuk memeriksa segala-galanya.
OpenAI menyenaraikan tetingkap konteks 200,000 token, output maksimum 100,000 token dan had pengetahuan pada 1 Jun 2024. Penaakulan dalaman menggunakan kapasiti konteks dan output bersama jawapan yang kelihatan. Oleh itu, output maksimum bukan janji 100,000 token jawapan yang kelihatan, dan konteks bukan peruntukan output tambahan yang bebas. Tinggalkan ruang selepas bahan input untuk analisis dan hasil yang diminta. Panduan penaakulan pengeluar menerangkan respons tidak lengkap apabila had konteks atau output dicapai; hal ini boleh berlaku sebelum jawapan yang kelihatan muncul.
Spesifikasi o3 yang tepat mendokumentasikan antara muka Chat Completions, Responses dan Batch, bersama penstriman, Structured Outputs, panggilan fungsi, muat naik fail, input imej, carian fail dan cache prom. Set alat yang didokumentasikan merangkumi carian web dan fail, pentafsiran kod, penjanaan imej dan sambungan MCP. Hasil carian atau pengiraan ialah bukti tambahan untuk tugasan, manakala panggilan fungsi meminta operasi daripada aplikasi yang mengelilinginya. Simpan bukti yang dikembalikan bersama soalan yang dijawabnya dan bezakan tindakan yang dicadangkan daripada hasil yang disahkan. Output model sendiri kekal teks walaupun alat penjanaan imej mencipta artifak berasingan.
Panduan penaakulan OpenAI mengutamakan arahan yang mudah dan langsung dengan sempadan jelas antara arahan dan bahan sumber. Nyatakan matlamat, kekangan dan format jawapan yang diperlukan, bukannya menetapkan proses pemikiran peribadi model. Gunakan contoh apabila contoh menjelaskan format atau peraturan keputusan yang sukar dan pastikan contoh itu konsisten dengan keperluan sebenar. Untuk dokumen teknikal panjang, labelkan bahagian dan minta petikan atau hubungan yang berkaitan dengan soalan tertentu; untuk semakan kod, nyatakan tingkah laku dan risiko yang mahu disiasat.
Hasil kerja o3 yang berguna boleh berupa penjelasan teknikal dengan langkah penyelesaian, analisis rajah, pembetulan kod yang didokumentasikan atau perbandingan yang berasaskan bahan yang dibekalkan. Nyatakan andaian yang tidak disokong dan maklumat yang tiada dengan jelas, serta semak pengiraan penentu atau tingkah laku kod berdasarkan masalah asal. Had pengetahuannya bermakna fakta terkini memerlukan bahan yang dibekalkan atau alat maklumat yang sesuai. Bukti jelas, kriteria penyelesaian yang nyata dan ruang output yang mencukupi membantu mengubah tugasan penaakulan luas menjadi hasil yang boleh diteliti dan digunakan orang lain.
Ailoot Ultra · Kelompok POST /v1/batches openai/o3:batch
openai/o3:batchPengenalan
OpenAI o3 ialah model penaakulan untuk kerja berbilang langkah merentas matematik, sains, kod dan imej. Model ini mengembalikan teks serta menyokong jawapan berstruktur dan penggunaan alat, menjadikannya berguna untuk menyiasat masalah teknikal dan menghasilkan penjelasan berasaskan bukti atau penyelesaian yang dicadangkan.
- Input yang diterima
- Teks
- Hasil
- Teks
Tersedia di Ailoot · input & kaedah
Ailoot Ultra · Kelompok POST /v1/batches
- Input
text- Output
text- Format output
- JSON results[].response.body sebaris
| Medan | Jenis | Keperluan | Nilai & had | Lalai |
|---|---|---|---|---|
Medanendpoint | Jenisstring | KeperluanDiperlukan | Nilai & had /v1/chat/completions | Lalai— |
Medanmodel | Jenisstring | KeperluanDiperlukan | Nilai & had openai/o3:batch | Lalai— |
Medanrequests | Jenisbatch_item[] | KeperluanDiperlukan | Nilai & had Item minimum: 1 | Lalai— |
Medanrequests[].custom_id | Jenisstring | KeperluanDiperlukan | Nilai & had | Lalai— |
Medanrequests[].body.messages | Jenismessage[] | KeperluanDiperlukan | Nilai & had | Lalai— |
Medancompletion_window | Jenisstring | KeperluanPilihan | Nilai & had 24h | Lalai— |
Medanprovider | Jenisobject|null | KeperluanPilihan | Nilai & had | Lalai— |
Medanrequests[].body.model | Jenisstring | KeperluanPilihan | Nilai & had openai/o3:batch, openai/o3 | Lalai— |
Medanprovider.only | Jenisstring[] | KeperluanPilihan | Nilai & had openai | Lalai— |
Medanprovider.allow_fallbacks | Jenisboolean|null | KeperluanPilihan | Nilai & had false, null | Lalai— |
Parameter kaedah dan kitar hayat
| Parameter | Kontrak |
|---|---|
Parametercontent_type | Kontrakapplication/json |
Parameterrequired | Kontrakendpoint, model, requests |
Parametermaterial_types | Kontraktext |
Parameterrepresentation | Kontrakrequests[] sebaris; setiap item mempunyai custom_id dan body |
Parameterrequest_endpoint_profile | Kontrak/v1/chat/completions |
Parameterfile_material | KontrakPemanggil boleh membaca JSONL UTF-8 sebenar secara setempat ke dalam requests[]. Tiada tujuan muat naik, input_file_id atau rujukan fail digunakan. Bahan pelanggan yang tiada atau kosong menghentikan persediaan sebelum POST. |
Parameterserialization_order | Kontrakendpoint, model, provider (jika dibekalkan), completion_window (jika dibekalkan), requests di akhir |
Parameteroptional_controls | Kontrakprovider.only, provider.allow_fallbacks, completion_window |
Parameterschema_scope | KontrakBadan permintaan Chat Completions teks dalam pembungkus Batch sebaris yang didokumenkan. |
Kitar hayat: asynchronous
GET /v1/batches/{operation_id} · response.id sebenar daripada respons penciptaan asal; pengguna/kunci/kumpulan yang sama
Pelan harga
Rujukan tarif tidak menambah pilihan permintaan. Parameter yang disokong disenaraikan untuk kaedah yang dipilih.
- Mod pantas
- Tidak dinyatakan Apabila mod pantas dipilih
- Mod flex
- Tidak dinyatakan Apabila mod flex dipilih
- Usaha penaakulan maksimum
- Tidak dinyatakan Apabila usaha penaakulan maksimum menggunakan pelarasan default
- Harga cache eksplisit
- Tidak diaktifkan Apabila cache eksplisit diminta
Kadar Ailoot
Harga mengikut konfigurasi
Padankan setiap caj dengan syarat yang dipaparkan. Gunakan satu kadar bagi setiap set konfigurasi alternatif.
| Konfigurasi | Jadual kadar | Token konteks, melebihi | Token konteks, sehingga dan termasuk | Caj |
|---|---|---|---|---|
| KonfigurasiKadar asas token | Jadual kadarKadar asas | Token konteks, melebihi— | Token konteks, sehingga dan termasukTiada had atas | Caj Input · Token input $0.002 / 1K token Output · Token output $0.008 / 1K token Input · Bacaan cache $0.0005 / 1K token Input · Penulisan cache — / 1K token Input · Penulisan cache, 1 jam — / 1K token |
| KonfigurasiTahap panjang permintaan 1 | Jadual kadar— | Token konteks, melebihi0 | Token konteks, sehingga dan termasukTiada had atas | Caj Input · Token input $0.002 / 1K token Output · Token output $0.008 / 1K token Input · Bacaan cache $0.0005 / 1K token Input · Penulisan cache — / 1K token Input · Penulisan cache, 1 jam — / 1K token |
Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. Cara rizab dan penyelesaian caj berfungsi →
Contoh permintaan
Ailoot Ultra · Kelompok
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.
Terima dan simpan hasil
Ailoot Ultra · Kelompok
JSON results[].response.body sebaris
GET /v1/batches/{operation_id}
Semak status tugas
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
Simpan semua hasil yang selesai
Simpan setiap respons lengkap, fail dan bahagian kandungan yang dikembalikan.
Simpan keseluruhan JSON status asal, setiap hasil/custom_id serta badan respons atau ralat yang lengkap. Simpan results[] yang telah selesai sebagai JSONL tanpa penapisan.
Jika respons asal perlu disemak
Simpan ID operasi asal. 503 result_pending_check mempunyai X-Should-Retry:false; jangan sekali-kali hantar semula kelompok asal yang hasilnya tidak diketahui.
Medan respons
| Medan | Jenis |
|---|---|
Medanresults[].custom_id | Jenisstring |
Medanresults[].response.body.choices[].message.content | Jenisstring|null |
Medanresults[].error | Jenisobject|null |
Medanusage | Jenisobject|null |
Medanid | Jenisstring |
Medanmodel | Jenisstring |
Medanendpoint | Jenisstring |
Medanstatus | Jenisstring |
Medanrequest_counts | Jenisobject |
Medanresults[].id | Jenisstring |
Medanresults[].response.status_code | Jenisinteger |
Medanresults[].response.request_id | Jenisstring |
Ralat dan langkah seterusnya
| Respons | Syarat | Langkah seterusnya |
|---|---|---|
Respons400 · invalid_request_error | SyaratPembungkus sebaris yang didokumenkan tidak sah, kunci berulang, identiti item atau keupayaan model yang dikonfigurasikan bercanggah. | Langkah seterusnyaBetulkan medan yang dinyatakan sebelum sebarang penghantaran baharu. |
Respons401 · authentication_error | SyaratKunci API tidak sah. | Langkah seterusnyaGunakan kunci Ailoot yang dibenarkan. |
Respons403 · permission_error | SyaratKumpulan kelompok tidak tersedia. | Langkah seterusnyaSemak hak akses kunci/kumpulan. |
Respons422 · invalid_request_error | SyaratKelompok menggunakan pengebilan baki; penciptaan melalui langganan ditolak. | Langkah seterusnyaGunakan kumpulan yang dibenarkan untuk pengebilan melalui baki. |
Respons422 · price_unavailable | SyaratSebut harga tidak dapat diberikan untuk input kelompok. | Langkah seterusnyaSimpan respons; gunakan input keluarga API yang didokumenkan. |
Respons402 · billing_error | SyaratRizab kelompok tidak tersedia. | Langkah seterusnyaSelesaikan isu penerimaan permintaan sebelum menghantar permintaan baharu. |
Respons503 · price_unavailable | SyaratHarga kaedah kelompok/kadar natif tidak tersedia. | Langkah seterusnyaSimpan respons; jangan gantikan harga. |
Respons503 · api_error | SyaratLaluan pembekal yang tepat tidak tersedia. | Langkah seterusnyaSimpan respons untuk pembaikan laluan. |
Respons503 · result_pending_check | SyaratHasil asal memerlukan semakan; X-Should-Retry:false. | Langkah seterusnyaSimpan operation_id/id asal dan baca statusnya; jangan sekali-kali ulang POST asal. |
Respons404 · not_found | SyaratOperasi status kelompok tiada atau dimiliki oleh identiti lain. | Langkah seterusnyaGunakan id asal yang tepat serta pengguna/kunci/kumpulan yang sama. |
Alias
Alias model
Ailoot Ultra openai/o3:batch
Alias laluan kaedah
Gunakan laluan kaedah yang dipaparkan di atas.
ID pemanggil berkaitan
FAQ · OpenAI: o3 (batch)
- Apakah input dan hasil yang tersedia?
POST /v1/batches·openai/o3:batch:text→text- Apakah medan yang digunakan oleh permintaan?
POST /v1/batches·openai/o3:batch:endpoint,model,requests,completion_window,provider- Apakah had yang terpakai?
POST /v1/batches·openai/o3:batch:requests.min_items:1