OpenAI: GPT-4o (batch)
GPT-4o menggabungkan pemahaman teks dan imej dengan penulisan, pengaturcaraan, Structured Outputs dan alat aplikasi. Gunakan model untuk membangunkan respons berasaskan bukti, mentafsir bahan visual atau mengembalikan medan yang ditentukan daripada kumpulan sumber yang besar.
Tentang model
Huraian ini merangkumi keupayaan model. Input, output dan pilihan yang tersedia di Ailoot disenaraikan di bawah untuk kaedah yang dipilih.
GPT-4o ialah model GPT serba guna OpenAI untuk pemahaman teks dan imej, penulisan serta kerja aplikasi. Huruf “o” bermaksud “omni”, manakala model yang didokumenkan ini menerima teks dan imej serta mengembalikan teks, termasuk Structured Outputs. Permintaan praktikal boleh menggabungkan taklimat bertulis dengan foto, tangkapan skrin atau halaman dokumen dan meminta penjelasan jelas, hasil yang disunting atau medan yang ditentukan untuk peringkat aplikasi lain.
Untuk laporan, bekalkan dokumen sumber dan keputusan yang perlu disokong oleh laporan. Kenal pasti tarikh, unit dan label bukti berkaitan, kemudian minta perbandingan yang membezakan pemerhatian, andaian dan maklumat yang tiada. Untuk tugas visual, tunjukkan objek, carta atau keadaan antara muka yang penting serta sertakan konteks sekeliling. Untuk perubahan kod, bekalkan kod yang terjejas, tingkah laku yang dikehendaki dan kekangan yang mesti kekal utuh. Ini ialah cara konkrit menggunakan keupayaan teks dan imej model tanpa bergantung pada prompt untuk menyiratkan seluruh tugas.
Profil GPT-4o OpenAI semasa menyenaraikan tetingkap konteks 128000 token, output maksimum 16384 token dan tarikh akhir pengetahuan pada 1 Oktober 2023. Pengeluar menyenaraikan beberapa versi GPT-4o bertarikh secara berasingan. Perbualan, bahan input dan jawapan yang dijana berkongsi bajet konteks, maka kumpulan dokumen besar masih memerlukan penyusunan dan ruang untuk hasil akhirnya. Fakta yang berubah atau berasal daripada sistem persendirian perlu dibekalkan secara langsung atau diperoleh melalui alat yang dikonfigurasikan secara eksplisit.
Panduan penglihatan menerima PNG, JPEG, WebP dan GIF tanpa animasi. GPT-4o menyokong perincian imej low, high dan auto; high dan auto menggunakan pemprosesan berasaskan petak imej. Besarkan label kecil, pastikan teks tegak dan kekalkan petunjuk atau rajah sekeliling apabila mentafsir carta. Batasan yang didokumenkan merangkumi penentuan lokasi ruang yang tepat, kiraan objek anggaran, sesetengah tulisan bukan Latin serta pandangan panorama atau mata ikan. Model juga boleh menerangkan imej secara salah, maka simpan sumber dan minta pemerhatian khusus yang menyokong pentafsiran. Dalam aliran penglihatan yang didokumenkan OpenAI, jumlah muatan permintaan dihadkan kepada 512 MB dan satu permintaan boleh mengandungi sehingga 1500 imej; imej serta teks turut perlu muat dalam konteks model.
Aliran kerja input fail OpenAI memberikan teks yang diekstrak dan imej halaman PDF kepada model berkeupayaan penglihatan. Dokumen pejabat bukan PDF membekalkan teks yang diekstrak dan bukannya carta terbenamnya, manakala bahan hamparan ditambah daripada sehingga 1000 baris pertama bagi setiap helaian. Setiap fail mesti berukuran di bawah 50 MB, dengan gabungan 50 MB bagi satu permintaan. Chat Completions menyokong bahagian fail PDF; aliran kerja Responses yang didokumenkan menerima format fail tambahan. Pilih perwakilan PDF apabila ketepatan visual penting dan pastikan pengecam sumber kelihatan dalam hasil.
Penstriman boleh mengembalikan respons semasa dijana. Structured Outputs mengehadkan respons yang telah selesai kepada subset JSON Schema yang disokong, menjadikannya berguna untuk pengekstrakan dokumen atau objek aplikasi dengan medan yang ditentukan. Mod JSON hanya berkaitan dengan kesahan JSON. Tentukan jenis yang dijangkakan, nilai yang dibenarkan dan pengendalian bukti yang tiada, kemudian kendalikan penolakan eksplisit atau respons tidak lengkap secara berasingan. Skema tidak menetapkan kebenaran fakta sesuatu nilai, maka medan yang diminta perlu kekal dapat dijejaki kepada bahan yang dibekalkan.
Pengeluar menyokong panggilan fungsi, carian web, carian fail, pentafsiran kod dan sambungan MCP. Fungsi tersuai memerlukan penerangan bermakna serta skema argumen; aplikasi melaksanakan tindakan yang diminta dan mengembalikan hasilnya untuk langkah model seterusnya. GPT-4o turut boleh mengarahkan alat penjanaan imej berasingan dalam aliran kerja Responses yang dikonfigurasikan. Imej yang dicipta oleh alat ialah hasil tersendiri, manakala respons asal GPT-4o yang didokumenkan ialah teks. Penjelasan akhir ejen perlu menggunakan pemerhatian yang benar-benar diperoleh atau dikira, dan bukannya menganggap panggilan alat yang dicadangkan sebagai operasi yang telah selesai.
Predicted Outputs tersedia untuk GPT-4o apabila menjana semula teks atau kod yang kebanyakannya sudah diketahui dengan perubahan kecil. Bekalkan kandungan sedia ada dan perubahan yang tepat, kemudian periksa hasil yang dikembalikan. Laluan ini untuk teks sahaja, tidak boleh digabungkan dengan panggilan fungsi dan mengecualikan logprobs, max_completion_tokens serta beberapa kawalan lain. Permintaan berasaskan alat ialah pilihan berasingan apabila jawapan bergantung pada maklumat baharu daripada operasi luaran.
OpenAI mendokumenkan penalaan halus untuk GPT-4o, dan panduan pengoptimumannya secara khusus menamakan versi bertarikh 6 Ogos 2024 untuk penalaan halus penglihatan menggunakan contoh imej. Aliran penyesuaian khusus versi itu berbeza daripada permintaan biasa kepada alias model. Untuk penulisan, analisis atau pengekstrakan harian, mulakan dengan taklimat yang berguna dan contoh output yang dikehendaki. Susulan boleh menyelesaikan satu fakta yang tiada, menyemak medan atau memperhalusi hasil yang sama sambil mengekalkan bukti serta kekangan tugas.
Ailoot Ultra · Kelompok POST /v1/batches openai/gpt-4o:batch
openai/gpt-4o:batchPengenalan
GPT-4o menggabungkan pemahaman teks dan imej dengan penulisan, pengaturcaraan, Structured Outputs dan alat aplikasi. Gunakan model untuk membangunkan respons berasaskan bukti, mentafsir bahan visual atau mengembalikan medan yang ditentukan daripada kumpulan sumber yang besar.
- 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/gpt-4o: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/gpt-4o:batch, openai/gpt-4o | 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.0025 / 1K token Output · Token output $0.01 / 1K token Input · Bacaan cache $0.00125 / 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.0025 / 1K token Output · Token output $0.01 / 1K token Input · Bacaan cache $0.00125 / 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/gpt-4o: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/gpt-4o:batch', 'openai/gpt-4o']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"openai/gpt-4o: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/gpt-4o:batch
Alias laluan kaedah
Gunakan laluan kaedah yang dipaparkan di atas.
ID pemanggil berkaitan
FAQ · OpenAI: GPT-4o (batch)
- Apakah input dan hasil yang tersedia?
POST /v1/batches·openai/gpt-4o:batch:text→text- Apakah medan yang digunakan oleh permintaan?
POST /v1/batches·openai/gpt-4o:batch:endpoint,model,requests,completion_window,provider- Apakah had yang terpakai?
POST /v1/batches·openai/gpt-4o:batch:requests.min_items:1