Biaya LLM menumpuk dengan cepat di produksi. Beban kerja yang menghabiskan $50/bulan saat pengembangan menjadi $5,000/bulan ketika Anda menskalakannya 100x. Kabar baiknya, tidak semua trafik membutuhkan respons real-time — dan untuk trafik yang bisa menunggu, batch routing adalah cara paling andal untuk memangkas biaya hingga setengahnya.
Apa itu batch routing?
Batch API dari OpenAI, Anthropic, dan Google menerima job dan mengembalikan hasil secara asinkron, biasanya dalam 15 menit. Sebagai ganti dari penundaan itu, mereka mengenakan biaya 50% dari harga real-time. Model yang sama, kualitas keluaran yang sama — dengan setengah biaya.
Tantangannya: Anda harus mengirim permintaan dalam format yang benar, melakukan polling untuk hasil, menangani kegagalan, menerapkan eskalasi SLA jika job terlalu lama, dan menyatukan kembali hasil ke permintaan aslinya. Kebanyakan tim tidak pernah menerapkan ini karena overhead operasionalnya besar. Anoman menangani semuanya secara transparan.
Beban kerja mana yang cocok untuk batching?
Kandidat yang baik untuk batch routing meliputi:
- Analisis dan ekstraksi dokumen
- Tugas agent latar belakang (tidak berhadapan dengan pelanggan)
- Pipeline pengayaan data
- Proses evaluasi dan pengujian
- Pembuatan laporan semalam
- Beban kerja apa pun di mana pengguna tidak menunggu respons langsung
Tidak cocok untuk batch routing:
- Respons streaming
- Chat interaktif
- Agent real-time dengan tool call sinkron
- Tier enterprise (persyaratan SLA)
Cara kerja batch routing di Anoman
Ketika Anda mengirim permintaan dengan prefer_batch: true di metadata, atau ketika rate limit Anda sementara habis (mode overflow), Anoman memasukkan job ke antrean, mengirimnya ke batch API penyedia pada jendela pengiriman berikutnya, melakukan polling hingga selesai, lalu menyimpan hasilnya. Pemanggil melakukan polling ke endpoint status job.
Jika job mendekati tenggat SLA-nya tanpa selesai, Anoman otomatis mengeskalasikannya ke real-time dengan biaya penuh — pemanggil tidak pernah mengalami SLA yang terlewat.
POST /v1/chat/completions
→ 202 Accepted (batch job enqueued)
{
"id": "job_a8f3c2b1",
"status": "queued",
"sla_minutes": 15,
"poll_url": "/anoman/v1/batch/job_a8f3c2b1"
}GET /anoman/v1/batch/job_a8f3c2b1
→ 200 OK (complete)
{
"choices": [...],
"savings_usd": 0.0042,
"routing_mode": "batch"
}Penghematan dalam praktik
| Beban kerja | Biaya real-time | Biaya batch |
|---|---|---|
| Ringkasan dokumen (gpt-4o, 4K input) | $0.010 | $0.005 |
| Pengayaan data (claude-sonnet, 2K input) | $0.006 | $0.003 |
| Proses evaluasi (1000 panggilan, gpt-4o-mini) | $0.150 | $0.075 |
Mengaktifkan batch routing
Tiga cara untuk mengaktifkan batch routing:
- Per API key (dashboard): Setel
default_routing: batchpada sebuah API key — seluruh trafik yang memenuhi syarat otomatis masuk batch. - Per request: Berikan
metadata: { prefer_batch: true }pada masing-masing permintaan. - Mode overflow: Biarkan batch aktif otomatis saat rate limit real-time tercapai. Tanpa konfigurasi apa pun.
from openai import OpenAI
client = OpenAI(
api_key="anm-sk-...",
base_url="https://api.anoman.io/v1",
)
# Opt this request into batch routing
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Summarize this document: ..."}],
extra_body={"metadata": {"prefer_batch": True}},
)
# If 202, poll for result
if hasattr(response, "id") and response.id.startswith("job_"):
print(f"Batch job queued: {response.id}")
print(f"Poll at: {response.poll_url}")Untuk beban kerja non-interaktif bervolume tinggi, batch routing adalah optimasi biaya dengan daya ungkit tertinggi yang tersedia. Pada skala besar, pengurangan 50% biaya token terakumulasi secara signifikan — beban kerja $10,000/bulan menjadi $5,000/bulan tanpa perubahan apa pun pada kualitas keluaran.