OpenAI: o3 (batch)
OpenAI o3 adalah model penalaran untuk pekerjaan beberapa langkah dalam matematika, sains, kode, dan gambar. Model ini mengembalikan teks serta mendukung jawaban terstruktur dan penggunaan alat, sehingga berguna untuk menyelidiki masalah teknis dan menghasilkan penjelasan berbasis bukti atau usulan solusi.
Tentang model
Deskripsi ini mencakup kemampuan model. Masukan, keluaran, dan opsi yang tersedia di Ailoot tercantum di bawah untuk metode yang dipilih.
o3 adalah model penalaran serbaguna seri o dari OpenAI untuk tugas kompleks. Pembuatnya menyoroti matematika, sains, pemrograman, penalaran visual, penulisan teknis, dan kepatuhan terhadap instruksi. Model ini menerima teks dan gambar serta menghasilkan teks, sehingga tugas dapat menggabungkan masalah tertulis, kode, dan diagram, alih-alih memperlakukan setiap sumber sebagai pertanyaan terpisah. Hasil yang dituju adalah jawaban yang dipertimbangkan dengan matang untuk masalah beberapa langkah, dengan informasi yang diperlukan untuk menilai jawaban itu.
Untuk pertanyaan matematika atau ilmiah, berikan masalah lengkap, definisi, jumlah yang diketahui, satuan, dan batasan. Nyatakan apakah Anda membutuhkan penurunan rumus, hasil numerik, perbandingan hipotesis, atau penjelasan bagi pembaca tertentu. Contoh arahan keluaran adalah: tentukan asumsi yang relevan, sajikan solusi beserta satuannya, dan jelaskan fakta yang diberikan yang mendukungnya. Mintalah penjelasan yang berguna dalam jawaban akhir; token penalaran internal OpenAI tidak ditampilkan sebagai jejak kerja mentah model.
Untuk pekerjaan perangkat lunak, berikan kode yang relevan, perilaku yang diharapkan, dan kegagalan yang diamati, termasuk kesalahan atau masukan yang tepat yang memperlihatkannya. Mintalah o3 menghubungkan gejala dengan kemungkinan penyebab dan mengusulkan perubahan terarah beserta penjelasan. Tugas visual dapat menyertakan diagram, tangkapan layar, atau grafik hasil: tentukan pertanyaan serta label atau area yang penting, pertahankan skala yang terbaca, dan mintalah kesimpulan yang terhubung dengan hal yang benar-benar terlihat. Langkah persiapan ini memberikan masalah yang terdefinisi serta keluaran konkret kepada model, bukan permintaan tanpa batas untuk memeriksa semuanya.
OpenAI mencantumkan jendela konteks 200,000 token, keluaran maksimum 100,000 token, dan batas pengetahuan 1 Juni 2024. Penalaran internal menggunakan kapasitas konteks dan keluaran bersama jawaban yang terlihat. Karena itu, keluaran maksimum bukan janji 100,000 token jawaban yang terlihat, dan konteks bukan jatah keluaran tambahan yang mandiri. Sisakan ruang setelah materi masukan untuk analisis serta hasil yang diminta. Panduan penalaran pembuatnya menjelaskan respons yang tidak lengkap ketika batas konteks atau keluaran tercapai; hal ini dapat terjadi sebelum ada jawaban yang terlihat.
Spesifikasi o3 yang tepat mendokumentasikan antarmuka Chat Completions, Responses, dan Batch, bersama streaming, Structured Outputs, pemanggilan fungsi, unggahan berkas, masukan gambar, pencarian berkas, dan cache prompt. Alat yang didokumentasikan mencakup pencarian web dan berkas, interpretasi kode, generasi gambar, serta koneksi MCP. Hasil pencarian atau perhitungan merupakan bukti tambahan bagi tugas, sedangkan pemanggilan fungsi meminta operasi dari aplikasi di sekelilingnya. Simpan bukti yang dikembalikan bersama pertanyaan yang dijawabnya, dan bedakan tindakan usulan dari hasil yang telah dikonfirmasi. Keluaran model sendiri tetap berupa teks meskipun alat generasi gambar membuat artefak terpisah.
Panduan penalaran OpenAI mengutamakan instruksi yang sederhana dan langsung dengan batas yang jelas antara instruksi dan materi sumber. Nyatakan tujuan, batasan, dan format jawaban yang diperlukan, alih-alih menentukan proses pemikiran pribadi model. Gunakan contoh ketika membantu memperjelas format atau aturan keputusan yang sulit, dan pastikan contoh itu konsisten dengan persyaratan sebenarnya. Untuk dokumen teknis panjang, beri label pada bagian dan mintalah kutipan atau hubungan yang relevan bagi pertanyaan tertentu; untuk tinjauan kode, tentukan perilaku serta risiko yang ingin diselidiki.
Hasil kerja o3 yang berguna dapat berupa penjelasan teknis dengan langkah penyelesaian, analisis diagram, perbaikan kode yang didokumentasikan, atau perbandingan yang didasarkan pada materi yang diberikan. Nyatakan asumsi tanpa dukungan dan informasi yang tidak tersedia secara eksplisit, serta periksa perhitungan penentu atau perilaku kode terhadap masalah asli. Batas pengetahuannya berarti fakta terkini memerlukan materi yang diberikan atau alat informasi yang sesuai. Bukti yang jelas, kriteria penyelesaian yang eksplisit, dan ruang keluaran yang memadai membantu mengubah tugas penalaran yang luas menjadi hasil yang dapat diperiksa serta digunakan orang lain.
Ailoot Ultra · Batch POST /v1/batches openai/o3:batch
openai/o3:batchMulai
OpenAI o3 adalah model penalaran untuk pekerjaan beberapa langkah dalam matematika, sains, kode, dan gambar. Model ini mengembalikan teks serta mendukung jawaban terstruktur dan penggunaan alat, sehingga berguna untuk menyelidiki masalah teknis dan menghasilkan penjelasan berbasis bukti atau usulan solusi.
- Masukan yang diterima
- Teks
- Hasil
- Teks
Tersedia di Ailoot · masukan & metode
Ailoot Ultra · Batch POST /v1/batches
- Masukan
text- Keluaran
text- Format keluaran
- JSON inline pada results[].response.body
| Kolom | Jenis | Persyaratan | Nilai & batasan | Bawaan |
|---|---|---|---|---|
Kolomendpoint | Jenisstring | PersyaratanWajib | Nilai & batasan /v1/chat/completions | Bawaan— |
Kolommodel | Jenisstring | PersyaratanWajib | Nilai & batasan openai/o3:batch | Bawaan— |
Kolomrequests | Jenisbatch_item[] | PersyaratanWajib | Nilai & batasan Item minimum: 1 | Bawaan— |
Kolomrequests[].custom_id | Jenisstring | PersyaratanWajib | Nilai & batasan | Bawaan— |
Kolomrequests[].body.messages | Jenismessage[] | PersyaratanWajib | Nilai & batasan | Bawaan— |
Kolomcompletion_window | Jenisstring | PersyaratanOpsional | Nilai & batasan 24h | Bawaan— |
Kolomprovider | Jenisobject|null | PersyaratanOpsional | Nilai & batasan | Bawaan— |
Kolomrequests[].body.model | Jenisstring | PersyaratanOpsional | Nilai & batasan openai/o3:batch, openai/o3 | Bawaan— |
Kolomprovider.only | Jenisstring[] | PersyaratanOpsional | Nilai & batasan openai | Bawaan— |
Kolomprovider.allow_fallbacks | Jenisboolean|null | PersyaratanOpsional | Nilai & batasan false, null | Bawaan— |
Parameter metode dan siklus hidup
| Parameter | Kontrak |
|---|---|
Parametercontent_type | Kontrakapplication/json |
Parameterrequired | Kontrakendpoint, model, requests |
Parametermaterial_types | Kontraktext |
Parameterrepresentation | Kontrakrequests[] inline; setiap item memiliki custom_id dan body |
Parameterrequest_endpoint_profile | Kontrak/v1/chat/completions |
Parameterfile_material | KontrakPemanggil dapat membaca JSONL UTF-8 aktual secara lokal ke dalam requests[]. Tidak menggunakan purpose unggahan, input_file_id, atau referensi file. Materi pelanggan yang tidak ada atau kosong menghentikan persiapan sebelum POST. |
Parameterserialization_order | Kontrakendpoint, model, provider (jika disertakan), completion_window (jika disertakan), requests paling akhir |
Parameteroptional_controls | Kontrakprovider.only, provider.allow_fallbacks, completion_window |
Parameterschema_scope | Kontrakbody teks Chat Completions dalam envelope Batch inline yang didokumentasikan. |
Siklus hidup: asynchronous
GET /v1/batches/{operation_id} · response.id aktual dari operasi create awal; user/key/group yang sama
Paket
Referensi tarif tidak menambah opsi permintaan. Parameter yang didukung tercantum pada metode yang dipilih.
- Mode Fast
- Tidak ditentukan Saat mode fast dipilih
- Mode Flex
- Tidak ditentukan Saat mode flex dipilih
- Upaya penalaran maksimum
- Tidak ditentukan Saat upaya penalaran maksimum menggunakan penyesuaian default
- Harga cache eksplisit
- Tidak diaktifkan Saat cache eksplisit diminta
Tarif Ailoot
Harga menurut konfigurasi
Cocokkan setiap biaya dengan kondisi yang ditampilkan. Gunakan satu tarif untuk setiap kelompok konfigurasi alternatif.
| Konfigurasi | Jadwal tarif | Token konteks, lebih dari | Token konteks, hingga dan termasuk | Biaya |
|---|---|---|---|---|
| KonfigurasiTarif dasar token | Jadwal tarifTarif dasar | Token konteks, lebih dari— | Token konteks, hingga dan termasukTanpa batas atas | Biaya Masukan · Token masukan $0.002 / 1K token Keluaran · Token keluaran $0.008 / 1K token Masukan · Pembacaan cache $0.0005 / 1K token Masukan · Penulisan cache — / 1K token Masukan · Penulisan cache, 1 jam — / 1K token |
| KonfigurasiPanjang permintaan · tingkat 1 | Jadwal tarif— | Token konteks, lebih dari0 | Token konteks, hingga dan termasukTanpa batas atas | Biaya Masukan · Token masukan $0.002 / 1K token Keluaran · Token keluaran $0.008 / 1K token Masukan · Pembacaan cache $0.0005 / 1K token Masukan · Penulisan cache — / 1K token Masukan · Penulisan cache, 1 jam — / 1K token |
Ailoot mencadangkan perkiraan dana sebelum permintaan. Setelah hasil diterima, tagihan akhir diselesaikan berdasarkan penggunaan yang terukur. Penyelesaian tagihan streaming menggunakan catatan penggunaan akhir. Cara kerja cadangan dan penyelesaian tagihan →
Contoh permintaan
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.
Terima dan simpan hasil
Ailoot Ultra · Batch
JSON inline pada results[].response.body
GET /v1/batches/{operation_id}
Periksa 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, berkas, dan bagian konten yang dikembalikan.
Pertahankan JSON status asli secara lengkap, setiap result/custom_id, serta body response atau error yang lengkap. Simpan results[] yang telah selesai sebagai JSONL tanpa penyaringan.
Jika respons asli perlu diperiksa
Pertahankan ID operasi asli. 503 result_pending_check memiliki X-Should-Retry:false; jangan pernah kirim ulang batch asli yang statusnya tidak diketahui.
Kolom respons
| Kolom | Jenis |
|---|---|
Kolomresults[].custom_id | Jenisstring |
Kolomresults[].response.body.choices[].message.content | Jenisstring|null |
Kolomresults[].error | Jenisobject|null |
Kolomusage | Jenisobject|null |
Kolomid | Jenisstring |
Kolommodel | Jenisstring |
Kolomendpoint | Jenisstring |
Kolomstatus | Jenisstring |
Kolomrequest_counts | Jenisobject |
Kolomresults[].id | Jenisstring |
Kolomresults[].response.status_code | Jenisinteger |
Kolomresults[].response.request_id | Jenisstring |
Kesalahan dan langkah berikutnya
| Respons | Kondisi | Langkah berikutnya |
|---|---|---|
Respons400 · invalid_request_error | KondisiEnvelope inline yang didokumentasikan tidak valid, ada kunci duplikat, atau terdapat konflik pada identitas item atau kemampuan model yang dikonfigurasi. | Langkah berikutnyaPerbaiki kolom yang ditunjukkan sebelum pengiriman baru apa pun. |
Respons401 · authentication_error | KondisiKunci API tidak valid. | Langkah berikutnyaGunakan kunci Ailoot yang berizin. |
Respons403 · permission_error | KondisiGrup Batch tidak tersedia. | Langkah berikutnyaPeriksa hak akses key/group. |
Respons422 · invalid_request_error | KondisiBatch menggunakan penagihan dari saldo; pembuatan dengan langganan ditolak. | Langkah berikutnyaGunakan grup berizin yang ditagih dari saldo. |
Respons422 · price_unavailable | KondisiPenawaran harga untuk input Batch tidak dapat dibuat. | Langkah berikutnyaSimpan respons; gunakan input keluarga API yang didokumentasikan. |
Respons402 · billing_error | KondisiCadangan Batch tidak tersedia. | Langkah berikutnyaSelesaikan kendala penerimaan sebelum mengirim permintaan baru. |
Respons503 · price_unavailable | KondisiHarga metode Batch/tarif native tidak tersedia. | Langkah berikutnyaSimpan respons; jangan mengganti harga. |
Respons503 · api_error | KondisiRute pemasok yang tepat tidak tersedia. | Langkah berikutnyaSimpan respons untuk perbaikan rute. |
Respons503 · result_pending_check | KondisiHasil asli perlu diperiksa; X-Should-Retry:false. | Langkah berikutnyaSimpan operation_id/id asli dan baca statusnya; jangan pernah mengulangi POST asli. |
Respons404 · not_found | KondisiOperasi status Batch tidak ada atau dimiliki oleh identitas lain. | Langkah berikutnyaGunakan id asli yang persis sama dan user/key/group yang sama. |
Alias
Alias model
Ailoot Ultra openai/o3:batch
Alias jalur metode
Gunakan jalur metode yang ditampilkan di atas.
ID pemanggil terkait
FAQ · OpenAI: o3 (batch)
- Input dan hasil apa yang tersedia?
POST /v1/batches·openai/o3:batch:text→text- Kolom apa yang digunakan permintaan?
POST /v1/batches·openai/o3:batch:endpoint,model,requests,completion_window,provider- Batasan apa yang berlaku?
POST /v1/batches·openai/o3:batch:requests.min_items:1