Kembali ke panduan
Biaya·25 Mei 2026·Diperbarui 30 September 2026·Baca 11 menit

Optimasi biaya AI — panduan lengkap untuk memangkas tagihan LLM sebesar 70–90%

Jika Anda membayar lebih dari $1,000/bulan untuk API LLM, panduan ini akan menghemat setidaknya separuhnya. Setiap teknik diterbitkan dengan penghematan terukur dan kode yang dapat dijalankan. Gabungkan 3–5 teknik dan pengurangan 70% realistis tanpa kompromi kualitas.

Terakhir ditinjau pada .

Lima teknik saling memperkuat. Masing-masing memangkas bagian tagihan yang berbeda — menggabungkan tiga teknik secara realistis membawa pengurangan hingga 70% tanpa kehilangan kualitas; kelimanya mendekati 85–90%. Panduan ini mencakup seluruh menu teknik, dengan penghematan terukur dan kode yang dapat dijalankan untuk setiap teknik. Setiap teknik terhubung ke pendalaman khusus di bagian bawah.

Lima teknik, diurutkan berdasarkan ROI

#TeknikYang dikurangiPenghematan realistis
1caching promptToken input pada prompt berulang60–90% dari input
2Tiering modelTarif per pemanggilan untuk tugas sederhana~10× lebih murah
3Batas outputToken output, biaya dominan pada tugas kreatifOutput 4–5× input
4Paralelisme + batchingWaktu dinding, bukan per tokenMemungkinkan timeout lebih ketat dan lebih sedikit pengulangan
5Kebersihan pengulanganPengeluaran akibat pengulangan tak terkendaliMembatasi ekor, bukan rata-rata

1. Caching prompt — teknik dengan ROI tertinggi sejauh ini

Jika system prompt Anda memiliki lebih dari 1.000 token dan Anda memanggil prompt yang sama lebih dari dua kali dalam jendela 5 menit, caching prompt adalah uang gratis. Anthropic mengenakan biaya input yang di-cache sebesar 10% dari tarif input (2,5% di Claude Fable 5.1, 5% di Claude Opus 5.5); OpenAI menerapkan padanannya secara otomatis sebesar 10%. Hanya satu field yang ditambahkan:

cache_control.py
# Prompt caching: 1 extra field = 10% rate on cached input
resp = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=600,
    system=[{
        "type": "text",
        "text": LONG_SYSTEM_PROMPT,
        "cache_control": {"type": "ephemeral"},   # cache this part
    }],
    messages=[{"role": "user", "content": question}],
)

Penghematan realistis: 60–90% dari biaya input jika system prompt Anda besar dan stabil. Lihat dashboard /app/usage Anda — jika cache_read_input_tokens bernilai 0, Anda memiliki 30 menit pekerjaan yang akan menghasilkan manfaat selamanya. Pendalaman.

2. Tiering model — gunakan model termurah yang sudah cukup baik

Claude Haiku 4.5 berharga sekitar 10% dari Claude Opus 4.7. Untuk klasifikasi, pemformatan, keputusan routing, dan ringkasan sederhana — Haiku lebih dari cukup. Simpan Opus untuk pemanggilan penalaran yang benar-benar sulit.

tiering.py
# Pick the cheapest model that's still good enough for the task.
# Escalate by difficulty: cheap (Haiku 4.5 / GPT-5.6 Terra) -> Sonnet 5 -> Opus 4.7
def pick_model(difficulty: int) -> str:
    if difficulty <= 2: return "claude-haiku-4-5"     # ~10x cheaper than Opus
    if difficulty <= 4: return "gpt-5-6-terra"        # a second family, cheap output
    if difficulty <= 7: return "claude-sonnet-5"
    return "claude-opus-4-7"

Cara membangun keputusan tiering: gunakan classifier kecil terlebih dahulu (Haiku sendiri dapat melakukannya dalam 100 token input), lalu lakukan routing. Ukur kualitas output dengan evaluasi holdout. Jangan biarkan intuisi memilih — lakukan benchmark.

  • Tier 0 (Haiku 4.5): klasifikasi, ekstraksi, terjemahan, peringkasan input <2K — biaya per pemanggilan beberapa sen
  • Tier 1 (GPT-5.6 Terra): peringkasan lebih panjang, penyelesaian kode, penggunaan alat sederhana — juga beberapa sen, tetapi lebih baik dalam konteks panjang
  • Tier 2 (Sonnet 5): penalaran nyata, agen multilangkah, tugas vision — pekerja utama produksi
  • Tier 3 (Opus 4.7): hanya ketika Anda telah memastikan Sonnet tidak mendapatkan hasil yang benar

3. Batas output — batasi yang dihasilkan, bukan hanya yang dibaca

Token output biasanya 4–5× lebih mahal daripada input. Default max_tokens=4096 yang longgar mengundang model untuk bertele-tele. Batasi secara agresif dan gunakan stop sequence untuk berhenti pada penanda yang tepat:

caps.py
# Two-layer caps: per-call max_tokens + per-key wallet cap
client.chat.completions.create(
    model="claude-sonnet-5",
    messages=[...],
    max_tokens=800,             # cap each call
    stop=["</answer>"],         # cut at terminator
)
# /app/keys → set "Spending limit" per key:
#   Production: $50/day · Experiment: $5/day · CI: $1/day

Pasangkan max_tokens per pemanggilan dengan batas pengeluaran wallet per kunci di /app/keys — loop tak terkendali atau bug tidak dapat melampaui batas harian Anda. Dua lapisan, dan keduanya penting.

4. Paralelisme — untuk beban kerja berbentuk batch

Jika Anda memproses 1.000 item independen (mengklasifikasikan umpan balik, menilai prospek, membuat deskripsi), panggilan serial memerlukan waktu satu jam. Async dengan AsyncOpenAI dan batas konkurensi menyelesaikannya dalam kurang dari satu menit — dan batas waktu yang lebih ketat memungkinkan Anda gagal lebih cepat pada upstream yang lambat. Paralelisme tidak mengurangi biaya per token, tetapi memungkinkan pola arsitektur (pemrosesan idempoten, anggaran percobaan ulang yang lebih ketat) yang dapat menguranginya.

5. Penanganan percobaan ulang — jangan membayar percobaan ulang yang tidak terkendali

Kode naif mencoba ulang setiap kesalahan, termasuk 400. Itu berarti membayar kegagalan (permintaan 4xx di Kunavo tidak ditagih, tetapi Anda tetap menghabiskan anggaran rate limit dan waktu yang berlalu). Kebijakan yang benar: coba ulang hanya untuk 408/429/5xx, gunakan exponential backoff dengan jitter, maksimal 5 percobaan dan total waktu tunggu 30 detik. Selain itu, gagal dengan cepat dan tampilkan kesalahannya.

Seperti apa penghematannya dalam praktik

Penghematan realistis yang terukur pada SaaS yang menggunakan Kunavo dengan pengeluaran $5.000/bulan:

  • Caching prompt ditambahkan: $2.000 dihemat (−40%)
  • Tiering Haiku untuk klasifikasi: $800 dihemat (−16%)
  • max_tokens yang lebih ketat: $400 dihemat (−8%)
  • Gabungan: $3.200/bulan dihemat, $1.800 dibelanjakan (−64% total)

Semua ini bersifat kumulatif — setiap teknik berikutnya bekerja pada baseline yang sudah berkurang. Tanpa menerapkan caching terlebih dahulu, teknik lainnya menghemat lebih sedikit. Urutannya penting: mulai dari #1, lalu #2, kemudian #3.

Apa yang tidak bekerja seperti yang diiklankan

  • "Embedding untuk segala hal" — embedding menghemat biaya pencarian teks, bukan generasi. Embedding memang murah, tetapi tidak mengurangi biaya panggilan LLM
  • "Fine-tuning lokal untuk menghemat biaya" — hanya layak jika Anda memproses setidaknya 10 juta token/hari untuk tugas yang sempit. Bagi sebagian besar tim, caching prompt + tiering Haiku lebih unggul daripada kompleksitas operasional self-hosting
  • "Agregator yang lebih murah" — Kunavo sudah menetapkan harga sebagian besar model di bawah tarif resmi penyedia. Agregator yang lebih murah biasanya unggul dengan diam-diam mengganti model yang Anda minta ke model yang lebih murah

Langkah selanjutnya

Terapkan caching terlebih dahulu — ini memberikan ROI tertinggi per jam yang diinvestasikan. Kemudian instrumentasikan rincian dashboard /app/usage Anda berdasarkan model dan tier. Lalu lakukan tiering. Lacak biaya bulanan per pengguna aktif sebagai metrik utama Anda — jika metrik ini tetap atau menurun sementara engagement meningkat, berarti Anda berhasil.

Pertanyaan umum

Seberapa besar caching prompt dapat mengurangi tagihan LLM?

Anthropic menagih input yang di-cache sebesar 10% dari tarif input normal (2,5% di Claude Fable 5.1, 5% di Claude Opus 5.5), dan OpenAI menerapkan padanan otomatis sebesar 10%. Pada beban kerja dengan system prompt besar dan stabil, penghematan tersebut adalah 60–90% pada biaya input. Terapkan terlebih dahulu — setiap teknik berikutnya kemudian bekerja berdasarkan baseline yang sudah berkurang. Lihat pendalaman caching prompt untuk bentuk permintaan yang tepat.

Seberapa lebih murah Claude Haiku dibandingkan Claude Opus?

Claude Haiku 4.5 berharga sekitar 10% dari Claude Opus 4.7 — sekitar 10× lebih murah. Untuk klasifikasi, ekstraksi, terjemahan, dan peringkasan singkat, Haiku sudah memadai; simpan Opus untuk penalaran yang telah Anda pastikan gagal dilakukan Claude Sonnet 5. Tarif per model saat ini tersedia dalam panduan harga Claude API.

Apakah token output lebih mahal daripada token input?

Ya — token output biasanya berharga 4–5× lebih mahal daripada token input. Karena itu, default max_tokens=4096 yang longgar mahal: konfigurasi tersebut mengundang model untuk bertele-tele pada komponen tagihan yang paling mahal. Batasi max_tokens untuk setiap pemanggilan dan gunakan stop sequence untuk berhenti pada penanda yang tepat.

Seberapa besar pengurangan total tagihan LLM yang realistis?

Menggabungkan tiga dari lima teknik secara realistis dapat mencapai pengurangan 70% tanpa kehilangan kualitas, dan kelimanya mendekati 85–90%. Pada beban kerja terukur sebesar $5.000/bulan: caching prompt menghemat $2.000 (−40%), tiering Haiku untuk klasifikasi menghemat $800 (−16%), dan max_tokens yang lebih ketat menghemat $400 (−8%) — total penghematan $3.200, pengeluaran $1.800, atau pengurangan total 64%.

Apa kebijakan pengulangan yang benar untuk pemanggilan API LLM?

Ulangi hanya respons 408, 429, dan 5xx, dengan exponential backoff plus jitter, dibatasi hingga 5 percobaan dan total waktu tunggu 30 detik. Gagal dengan cepat untuk yang lain. Mengulangi 400 tidak pernah berhasil — dan meskipun permintaan 4xx yang gagal tidak ditagihkan di Kunavo, permintaan tersebut tetap menghabiskan anggaran rate limit dan waktu dinding.