anoman
MasukDapatkan API Key
Beranda Dokumentasi

Batch routing

Kirim pekerjaan yang tidak dibutuhkan seketika melalui batch API asli provider — sekitar 50% lebih murah, dengan SLA yang dijamin gateway.

Pekerjaan non-interaktif, ~50% lebih murah

Batch routing menjalankan request Anda melalui batch API asli provider, yang sekitar 50% lebih murah daripada real-time. Komprominya adalah latensi — hasil tiba dalam jendela SLA (menit), bukan seketika. Gunakan untuk apa pun yang tidak ditunggu manusia.

Cocok untuk batch

  • Analisis & ekstraksi dokumen
  • Tugas agen di latar belakang
  • Pipeline pengayaan data
  • Laporan semalam & proses evaluasi

Jangan di-batch

  • Chat interaktif (manusia menunggu)
  • Request streaming (stream: true)
  • Trafik Enterprise & PAYG — keduanya hanya real-time (SLA)

Minta batch, dapat 202

Kirim request /v1/chat/completions biasa dengan metadata.prefer_batch=true (atau atur default_routing=batch pada kunci agar semua trafik di-batch). Saat overflow rate-limit, trafik juga otomatis di-batch. Gateway mengembalikan 202 Accepted dengan job_id dan poll_url, bukan completion.

cURL

# Send a normal completion, but ask for batch routing via metadata.
curl https://api.anoman.io/v1/chat/completions \
  -H "Authorization: Bearer anm-sk-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [{"role": "user", "content": "Extract line items from this invoice ..."}],
    "metadata": {"prefer_batch": true}
  }'
 
# → 202 Accepted
# {
#   "id": "job_a8f3c2b1d9",
#   "object": "batch_job",
#   "status": "queued",
#   "sla_minutes": 5,
#   "poll_url": "/anoman/v1/batch/job_a8f3c2b1d9",
#   "reason": "customer_preference"
# }

Python

from openai import OpenAI
 
client = OpenAI(base_url="https://api.anoman.io/v1", api_key="anm-sk-...")
 
resp = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "Extract line items ..."}],
    extra_body={"metadata": {"prefer_batch": True}},
)
# The raw HTTP response is 202 with a job_id + poll_url.
# Or set the key's default_routing = "batch" so every request batches.

202 saat memproses, 200 saat selesai

Poll GET /anoman/v1/batch/{job_id} — mengembalikan 202 dengan sla_remaining_minutes selama job berjalan, lalu 200 dengan chat completion plus field savings_usd yang menunjukkan penghematan versus real-time. Anda juga bisa mendaftar semua job atau membatalkan yang masih antre.

Poll / ambil

# Poll until the job completes. 202 while processing, 200 when done.
curl https://api.anoman.io/anoman/v1/batch/job_a8f3c2b1d9 \
  -H "Authorization: Bearer anm-sk-..."
 
# → 202 (still processing)
# { "id": "job_a8f3c2b1d9", "status": "processing",
#   "sla_remaining_minutes": 8, "poll_again_in_seconds": 30 }
 
# → 200 (complete)
# {
#   "id": "chatcmpl-job_a8f3c2b1d9",
#   "object": "chat.completion",
#   "choices": [{"message": {"role": "assistant", "content": "..."}}],
#   "usage": {"prompt_tokens": 1024, "completion_tokens": 256},
#   "batch_job_id": "job_a8f3c2b1d9",
#   "routing_mode": "batch",
#   "savings_usd": 0.0042
# }

Daftar / batal

# List all batch jobs for the key
curl https://api.anoman.io/anoman/v1/batch \
  -H "Authorization: Bearer anm-sk-..."
 
# Cancel a job that is still queued (not yet submitted)
curl -X DELETE https://api.anoman.io/anoman/v1/batch/job_a8f3c2b1d9 \
  -H "Authorization: Bearer anm-sk-..."

Referensi field lengkap: endpoint batch jobs.

SLA per tier, dengan eskalasi

Setiap tier punya waktu tunggu maksimum untuk hasil batch. Jika job mendekati jendela SLA-nya tanpa selesai, worker otomatis mempromosikannya ke real-time API dengan biaya penuh — sehingga pelanggan tidak pernah melihat pelanggaran.

TierSLA batch
Starter30 min
Pro5 min
PAYGN/A — hanya real-time
EnterpriseN/A — hanya real-time

Eskalasi SLA: Job yang menghabiskan sebagian besar jendela SLA-nya tanpa selesai otomatis dikirim ulang lewat real-time API dengan harga penuh. Anda mendapat hasil tepat waktu; tidak pernah melihat tenggat terlewat.

Guardrail jalan sebelum batching

Setiap request melewati seluruh pipeline guardrail sebelum keputusan routing. Request yang gagal guardrail langsung mengembalikan 403 dan tidak pernah masuk antrean — di-batch atau tidak, tidak ada yang melewati kebijakan Anda.

Terkait: Caching (bertumpuk dengan batch untuk penghematan lebih) dan Usage & biaya (ekonomi batch tersedia di usage API).

Pantau antrean batch secara langsung

Status antrean batch dan completion mengalir ke Live Feed secara real-time.

On this page