OpenAI: GPT-4.1 (batch)
OpenAI GPT-4.1 adalah model tanpa tahap penalaran khusus untuk mengikuti instruksi secara tepat, pemrograman, dan pemanggilan alat. Model ini menerima teks dan gambar serta mengembalikan teks, dengan jendela konteks besar, Structured Outputs, dan Predicted Outputs untuk membuat ulang teks atau kode yang sebagian besar tidak berubah.
Tentang model
Deskripsi ini mencakup kemampuan model. Masukan, keluaran, dan opsi yang tersedia di Ailoot tercantum di bawah untuk metode yang dipilih.
GPT-4.1 adalah model OpenAI untuk mengikuti instruksi dan memanggil alat tanpa tahap penalaran khusus, dengan pengetahuan luas lintas bidang. Model ini menerima teks dan gambar serta mengembalikan teks tanpa tahap penalaran tersendiri. Konteks besarnya berguna ketika tugas didefinisikan dengan jelas tetapi materi yang relevan mencakup dokumen atau kode yang besar. Nyatakan operasi yang diinginkan, materi sumber yang menjadi sasarannya, dan bentuk hasil akhir.
Untuk pemrosesan dokumen, pisahkan instruksi dari materi menggunakan judul atau batas lain yang jelas. Berikan label pada dokumen dan pertahankan pengenal yang perlu dirujuk jawaban. Definisikan field untuk ekstraksi, kriteria perbandingan, atau pembaca dan panjang untuk penulisan ulang. Contoh keluaran dapat berupa tabel persyaratan dengan lokasi sumbernya, ringkasan yang disusun berdasarkan sekumpulan pertanyaan tertentu, atau catatan terstruktur yang membedakan informasi yang tidak tersedia dari nilai yang dinyatakan secara eksplisit.
Untuk pemrograman, berikan file yang relevan, perubahan yang diminta, dan perilaku yang harus tetap utuh. Mintalah artefak yang benar-benar diperlukan: fungsi yang direvisi, file lengkap, usulan argumen alat, atau penjelasan logika yang terdampak. Contoh dapat memperjelas aturan pemformatan atau kasus tepi, tetapi harus mengikuti persyaratan yang sama dengan tugas sebenarnya. Panduan prompt OpenAI menekankan instruksi langsung, peran, batas sumber, dan contoh yang mewakili tugas, alih-alih menganggap prompt panjang otomatis tepat.
Spesifikasi GPT-4.1 yang tepat mencantumkan jendela konteks 1047576 token, keluaran maksimum 32768 token, dan batas pengetahuan 1 Juni 2024. Konteks masukan yang besar tidak menyiratkan keluaran yang sama besarnya, jadi permintaan penulisan ulang materi yang luas harus mengidentifikasi bagian dan artefak akhir yang diperlukan. Sediakan ruang yang cukup untuk jawaban dan berikan informasi terkini ketika tugas bergantung pada fakta setelah batas pengetahuan. Tipe model GPT-4.1 yang didokumentasikan adalah chat; pengaturan tingkat upaya penalaran dari model penalaran yang lebih baru bukan bagian dari profil ini.
OpenAI mendokumentasikan antarmuka Chat Completions, Responses, Assistants, Batch, dan fine-tuning untuk GPT-4.1. Fitur yang tercantum mencakup streaming, Structured Outputs, pemanggilan fungsi, unggahan file, masukan gambar, pencarian web dan file, fine-tuning, serta cache prompt. Alatnya meliputi interpretasi kode, pembuatan gambar, dan koneksi MCP selain pencarian dan fungsi. Keluaran model sendiri berupa teks, sedangkan alat dapat mengembalikan artefak atau pengamatan terpisah. Definisikan tujuan dan argumen operasi aplikasi serta gunakan hasil yang benar-benar dikembalikan; permintaan buatan model bukan konfirmasi bahwa operasi eksternal selesai.
Fitur yang khas adalah Predicted Outputs dalam antarmuka Chat Completions OpenAI. Ketika sebagian besar hasil teks atau kode yang diinginkan sudah diketahui, konten yang ada dapat diberikan sebagai prediksi untuk membantu membuat ulang hasil lengkap dengan perubahan kecil. Misalnya, berikan file saat ini dan mintalah penggantian nama properti yang dirumuskan secara sempit sambil mempertahankan kode di sekitarnya. Prediksi adalah konten keluaran yang diharapkan, bukan instruksi atau jaminan bahwa bagian yang tidak diubah akan tetap benar. Periksa artefak hasil pembuatan ulang berdasarkan perubahan yang diminta dan materi asli.
Predicted Outputs memiliki batas kompatibilitas tersendiri. OpenAI mendokumentasikan penggunaan teks saja, tanpa masukan atau keluaran audio dan tanpa pemanggilan fungsi dalam permintaan tersebut. Fitur ini tidak mendukung beberapa pilihan dengan n lebih besar dari 1, probabilitas log, penalti kehadiran atau frekuensi positif, maupun parameter max_completion_tokens. Pisahkan alur pembuatan ulang ini dari tugas yang membutuhkan pemanggilan alat. Teks prediksi dapat cocok dengan bagian keluaran, dan produsen melaporkan token prediksi yang diterima serta ditolak; prediksi yang tidak sesuai dapat sebagian tidak digunakan, sehingga fitur ini tidak menjamin percepatan atau hasil tertentu.
Untuk tugas mengikuti instruksi biasa, hasil GPT-4.1 yang berguna adalah artefak dokumen atau kode yang mengikuti kontrak yang ditentukan, ekstraksi dengan field eksplisit, atau permintaan alat yang argumennya sesuai dengan operasi yang diberikan. Untuk perubahan kecil pada file yang sebagian besar tidak berubah, alur keluaran prediksi memberikan cara yang lebih khusus untuk menyiapkan hasil yang diharapkan. Dalam kedua kasus, pertahankan materi sumber yang dibutuhkan untuk memeriksa jawaban dan nyatakan ambiguitas secara eksplisit. Kapasitas konteks dan alat model mendukung alur kerja; arahan tugas tetap menentukan isi jawaban yang lengkap dan dapat digunakan.
Ailoot Ultra · Batch POST /v1/batches openai/gpt-4.1:batch
openai/gpt-4.1:batchMulai
OpenAI GPT-4.1 adalah model tanpa tahap penalaran khusus untuk mengikuti instruksi secara tepat, pemrograman, dan pemanggilan alat. Model ini menerima teks dan gambar serta mengembalikan teks, dengan jendela konteks besar, Structured Outputs, dan Predicted Outputs untuk membuat ulang teks atau kode yang sebagian besar tidak berubah.
- 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/gpt-4.1: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/gpt-4.1:batch, openai/gpt-4.1 | 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/gpt-4.1: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-4.1:batch', 'openai/gpt-4.1']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"openai/gpt-4.1: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/gpt-4.1:batch
Alias jalur metode
Gunakan jalur metode yang ditampilkan di atas.
ID pemanggil terkait
FAQ · OpenAI: GPT-4.1 (batch)
- Input dan hasil apa yang tersedia?
POST /v1/batches·openai/gpt-4.1:batch:text→text- Kolom apa yang digunakan permintaan?
POST /v1/batches·openai/gpt-4.1:batch:endpoint,model,requests,completion_window,provider- Batasan apa yang berlaku?
POST /v1/batches·openai/gpt-4.1:batch:requests.min_items:1