Batch job.
Routing asinkron untuk beban kerja non-interaktif. ~50% lebih murah dari realtime dengan SLA 5-30 menit tergantung tier.
Kapan memakai batch
Pilih batch ketika…
- Latensi tidak penting — ringkasan semalam, suite eval, pipeline pengayaan data, RAG batch.
- Volume tinggi — ribuan permintaan independen di mana penghematan ~50% terakumulasi.
- Anda bisa poll atau menunggu — alur kode Anda tidak masalah dengan waktu respons 5-30 menit.
Pilih realtime ketika…
- Anda men-streaming output ke UI pengguna.
- Latensi adalah bagian dari produk (chat, autocomplete, agen suara).
- Anda butuh
stream: true— batch tidak mendukung streaming.
SLA per tier
| Tier | SLA Batch | Catatan |
|---|---|---|
| Starter | 30 min | Bawaan; overflow + opt-in |
| Pro | 15 min | Bawaan untuk akun baru |
| Pay-As-You-Go | 15 min | Sama seperti Pro |
| Enterprise | 5 min | Atau SLA kontrak khusus |
Ketika job dalam antrean mencapai 80% batas waktu SLA-nya tanpa selesai, Anoman otomatis mempromosikannya ke realtime dengan biaya penuh. Anda tidak pernah melihat pelanggaran — tetapi Anda juga berhenti berhemat.
Enqueue
Endpoint sama, header opt-in
Batch bersifat opt-in per permintaan via x-anoman-prefer-batch: true (atau setel default_routing: batch pada API key di dashboard untuk set-and-forget). Responsnya 202 dengan poll_url.
# Opt-in via header; existing tools/SDKs work unchanged.
curl https://api.anoman.io/v1/chat/completions \
-H "Authorization: Bearer anm-sk-..." \
-H "Content-Type: application/json" \
-H "x-anoman-prefer-batch: true" \
-d '{
"model": "deepseek-v3",
"messages": [{"role": "user", "content": "Summarize this 50-page doc..."}]
}'Poll
GET /anoman/v1/batch/{job_id}
Akses URL yang dikembalikan pada respons enqueue. Selama diproses, Anda mendapat 202 dengan petunjuk poll_again_in_seconds. Saat selesai, 200 dengan hasil chat completion lengkap plus savings_usd.
curl https://api.anoman.io/anoman/v1/batch/job_abc123def456 \
-H "Authorization: Bearer anm-sk-..."Helper Python
Enqueue + poll dalam satu panggilan
import time
import httpx
API = "https://api.anoman.io"
KEY = "anm-sk-..."
def enqueue(model, messages):
r = httpx.post(
f"{API}/v1/chat/completions",
headers={
"Authorization": f"Bearer {KEY}",
"x-anoman-prefer-batch": "true",
},
json={"model": model, "messages": messages},
)
r.raise_for_status()
return r.json() # 202 with poll_url
def poll(job_id, deadline_minutes=30):
deadline = time.time() + deadline_minutes * 60
while time.time() < deadline:
r = httpx.get(
f"{API}/anoman/v1/batch/{job_id}",
headers={"Authorization": f"Bearer {KEY}"},
)
r.raise_for_status()
if r.status_code == 200:
return r.json() # complete
# 202: still processing — respect poll_again_in_seconds
wait = r.json().get("poll_again_in_seconds", 30)
time.sleep(wait)
raise TimeoutError(f"Job {job_id} exceeded {deadline_minutes}m deadline")
# Usage
job = enqueue("deepseek-v3", [{"role": "user", "content": "..."}])
print(f"Queued: {job['id']}, SLA: {job['sla_minutes']}m")
result = poll(job["id"])
print(result["choices"][0]["message"]["content"])
print(f"Saved: $-{result.get('savings_usd', '0')}")Helper setara tersedia di SDK Anoman resmi sebagai client.poll_batch(job_id).
Cancel
DELETE /anoman/v1/batch/{job_id}
Job dalam antrean dapat dibatalkan dengan satu DELETE. Setelah eksekusi dimulai di upstream, pembatalan mengembalikan 409 (Anda tetap ditagih untuk apa pun yang sudah berjalan).
curl -X DELETE \
https://api.anoman.io/anoman/v1/batch/job_abc123def456 \
-H "Authorization: Bearer anm-sk-..."
# 200 — { "id": "job_abc123def456", "status": "cancelled" }
# 409 — if job already started executingYang tidak didukung batch
Batasan
- Tanpa streaming —
stream:truememaksa realtime terlepas dari header. - Tanpa jaminan realtime — SLA realtime tier Enterprise tidak berlaku.
- Promosi otomatis ke realtime pada 80% SLA — saat SF menurun atau antrean padat, kami mempromosikan daripada melewatkan SLA. Anda berhenti berhemat tetapi job tetap selesai tepat waktu.
- Pipeline guardrail yang sama berjalan sebelum enqueue — permintaan batch yang gagal deteksi injection mengembalikan 403 seketika dan tidak pernah masuk antrean.
Lihat ekonomi batch di dashboard.
Penghematan per bulan dirinci per model + provider.