anoman
Konsep

Batch routing

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

Kapan memakai batch

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)

Antrean

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.

# 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"
# }

Poll & ambil

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 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
# }

Referensi field lengkap: endpoint batch jobs.

SLA

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.

Keamanan

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.