Techsy
Kontak
Mulai Sekarang
Kembali ke Blog
guides

Caching Prompt LLM: Pangkas Biaya API hingga 90% (Semua 3 Penyedia)

Ditulis oleh Mert Batur Gürbüz
Mar 25, 2026
15 baca
Daftar Isi
Caching Prompt LLM: Pangkas Biaya API hingga 90% (Semua 3 Penyedia)

Caching Prompt LLM: Pangkas Biaya API hingga 90% (Semua 3 Penyedia)

Caching prompt LLM memungkinkan Anda menggunakan kembali token yang telah diproses sebelumnya di berbagai panggilan API, memotong biaya input hingga 90% dan mengurangi waktu-ke-token-pertama (time-to-first-token) hingga 85%. Jika Anda mengirimkan prompt sistem, definisi alat, atau contoh few-shot yang sama pada setiap permintaan, Anda membayar harga penuh untuk pekerjaan yang sudah dilakukan oleh GPU.

Panduan ini membahas OpenAI, Anthropic, dan Gemini dengan chatbot yang sama diimplementasikan di ketiga SDK tersebut, sesuatu yang tidak dilakukan oleh panduan lain. Kami juga akan membahas pembaruan caching otomatis Anthropic pada Februari 2026, skenario biaya produksi dengan jumlah dolar nyata, serta anti-pola yang secara diam-diam menghancurkan tingkat hit cache Anda.

<!-- IMAGE: Diagram alur penggunaan ulang cache KV yang menunjukkan pencocokan awalan prompt, jalur hit cache (cepat, murah), dan jalur miss cache (pemrosesan standar) -->

Ringkasan Cepat, Ketiga Penyedia Sekilas

Sebelum menyelami detail implementasi, berikut adalah perbandingan lengkapnya. Jika Anda sudah tahu penyedia mana yang Anda gunakan, lompat ke bagian mereka. Jika Anda sedang mengevaluasi, tabel ini memberi tahu Anda semuanya dalam 10 detik.

FiturOpenAIAnthropicGemini
Jenis CachingOtomatisOtomatis + EksplisitImplisit + Eksplisit
Token Minimum1.0241.024 (sebagian besar model)1.024 (Flash) / 4.096 (Pro)
TTL (Waktu Hidup)5-10 menit (hingga 24 jam diperpanjang)5 menit atau 1 jamDapat dikonfigurasi (default 1 jam)
Biaya Tulis Cache1x (tanpa biaya tambahan)1,25x (5-menit) / 2x (1-jam)1x (tanpa biaya tambahan)
Diskon Baca Cached50% dari input90% dari input~90% dari input
Isolasi CacheOrganisasiWorkspaceProyek
Dukungan StreamingYaYaYa
Field Respons Hit Cachecached_tokenscache_read_input_tokenscachedContentTokenCount
Kontrol EksplisitTidakYa (cache_control)Ya (objek cache bernama)
Pembaruan Besar TerbaruOkt 2024Feb 2026 (caching otomatis)2026 (caching implisit)

Poin utama: OpenAI adalah yang paling sederhana (nol konfigurasi, diskon 50%). Anthropic memberikan diskon terdalam (90%) dengan kontrol paling banyak. Gemini menawarkan TTL yang dapat dikonfigurasi dan caching implisit pada model 2.5+ dengan diskon sebanding dengan Anthropic.

Bagaimana Cara Kerja Caching Prompt LLM?

Anda tidak perlu memahami internal transformer untuk menggunakan caching prompt secara efektif. Namun, Anda perlu memahami satu konsep: pencocokan awalan (prefix matching).

Cache KV dalam 60 Detik

Ketika LLM memproses prompt Anda, ia menghitung status perhatian (pasangan kunci-nilai) untuk setiap token. Entri cache KV ini adalah bagian yang mahal; inilah yang memakan memori GPU dan waktu komputasi. Caching prompt menyimpan status yang telah dihitung ini sehingga permintaan berikutnya dengan awalan yang sama sepenuhnya melewatkan penghitungan ulang.

Kata kuncinya adalah awalan. Cache mencocokkan dari awal prompt Anda ke depan. Jika 2.000 token pertama cocok dengan entri yang di-cache tetapi token ke-2.001 berbeda, 2.000 token pertama tersebut dilayani dari cache. Segala sesuatu setelah titik divergensi dihitung ulang dari awal.

Inilah mengapa urutan prompt sangat penting. Strukturkan prompt Anda seperti ini:

  1. Definisi alat (paling statis)
  2. Prompt sistem
  3. Contoh few-shot statis
  4. Konteks yang diambil (semi-dinamis)
  5. Riwayat percakapan (bertambah per giliran)
  6. Kueri pengguna (selalu berbeda)

Konten statis di awal, konten dinamis di akhir. Semakin banyak token yang cocok dengan awalan yang di-cache, semakin besar penghematan Anda.

Caching Prompt vs Caching Semantik vs Caching Respons

Tiga istilah ini sering tertukar. Caching prompt (yang dibahas dalam panduan ini) menggunakan kembali status KV yang dihitung di level GPU untuk awalan token yang identik, tanpa kehilangan akurasi, output sama dengan yang tidak di-cache. Caching semantik menggunakan kesamaan embedding untuk mengembalikan respons yang dihasilkan sebelumnya untuk kueri yang "cukup mirip", lebih cepat tetapi dapat mengembalikan jawaban yang salah. Caching respons menyimpan pasangan input-output yang tepat dan mengembalikan respons yang di-cache secara verbatim, hanya bekerja untuk permintaan yang benar-benar identik.

Caching prompt adalah satu-satunya "optimisasi gratis"; ini mengurangi biaya dan latensi tanpa trade-off akurasi apa pun. Untuk matematika transformer mendalam di balik caching KV, penjelas teknis Hugging Face mengukur peningkatan kecepatan ~5,21x pada GPU T4.

Bagaimana OpenAI Menangani Caching Prompt?

Caching prompt OpenAI sepenuhnya otomatis. Sejak Oktober 2024, setiap panggilan API dengan 1.024+ token input secara otomatis mendapatkan manfaat dari caching. Anda tidak perlu opting-in, tidak perlu menambahkan header, dan tidak perlu mengubah kode Anda.

Cara Kerja Caching Otomatis OpenAI

Saat Anda mengirim permintaan dengan setidaknya 1.024 token, OpenAI memeriksa apakah awalan tersebut cocok dengan permintaan terbaru dari organisasi Anda. Hit cache berharga 50% dari harga token input standar. Setelah ambang batas 1.024 token awal, cache mencocokkan dalam kelipatan 128 token.

Cache bertahan selama 5-10 menit selama penggunaan normal dan dapat bertahan hingga 24 jam dengan retensi diperpanjang selama periode sepi. Cakupan cache per organisasi, sehingga proyek berbeda dalam org yang sama mendapat manfaat dari cache bersama.

Model yang didukung meliputi GPT-4o, GPT-4o-mini, GPT-4.1, o1, o3-mini, dan semua model yang lebih baru.

Contoh SDK Python OpenAI

python
from openai import OpenAI

client = OpenAI()

# This system prompt is ~2,000 tokens -- well above the 1,024 minimum
SYSTEM_PROMPT = """You are a senior Python developer specializing in async programming.
You follow PEP 8, use type hints, and write comprehensive docstrings.
When reviewing code, check for: race conditions, resource leaks, error handling,
and performance bottlenecks. Always suggest specific fixes with code examples.
[... imagine 1,800 more tokens of coding guidelines, examples, and rules ...]"""

def chat(user_message: str) -> str:
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[
            {"role": "system", "content": SYSTEM_PROMPT},
            {"role": "user", "content": user_message},
        ],
    )

    # Check if caching kicked in
    usage = response.usage
    cached = usage.prompt_tokens_details.cached_tokens
    total_input = usage.prompt_tokens
    print(f"Cached: {cached}/{total_input} tokens ({cached/total_input*100:.0f}%)")

    return response.choices[0].message.content

# First call: cache miss (full price)
chat("Review this async function for race conditions...")

# Second call within 5-10 min: cache hit (50% off on cached tokens)
chat("Now optimize the same function for throughput...")

Panggilan pertama memproses semuanya dengan harga penuh dan mengisi cache. Panggilan kedua menggunakan kembali token prompt sistem yang di-cache dengan setengah harga. Anda akan melihat sesuatu seperti Cached: 1920/2048 tokens (94%) dalam output.

Vonis: OpenAI adalah yang termudah untuk memulai, nol konfigurasi, caching terjadi begitu saja. Diskon 50% adalah yang terendah dari ketiga penyedia, tetapi Anda tidak bisa mengalahkan kesederhanaannya.

Bagaimana Anthropic/Claude Menangani Caching Prompt?

Anthropic menawarkan dua mode: caching otomatis (diaktifkan secara default sejak Februari 2026) dan caching eksplisit dengan breakpoint cache_control. Angka utamanya sulit diabaikan, bacaan yang di-cache harganya hanya 10% dari harga input standar, sebuah diskon 90%.

Caching Otomatis vs Eksplisit (Pembaruan 2026)

Per 5 Februari 2026, Anthropic mengaktifkan caching otomatis secara default untuk semua prompt yang memenuhi syarat. Anda tidak memerlukan header beta lama lagi. Sistem menentukan breakpoint cache optimal secara otomatis.

Caching eksplisit masih tersedia ketika Anda menginginkan kontrol yang halus. Anda menempatkan cache_control: {"type": "ephemeral"} pada blok konten tertentu untuk menandai secara tepat di mana batas cache harus berada. Ini berguna ketika prompt Anda memiliki struktur spesifik dan Anda ingin menjamin bagian tertentu di-cache.

Ada dua opsi TTL:

  • Cache 5 menit (default): biaya tulis 1,25x harga input dasar, biaya baca 0,1x. Balik modal setelah 1 hit cache.
  • Cache 1 jam: biaya tulis 2x harga input dasar, biaya baca 0,1x. Balik modal setelah 2 hit cache. Tersedia pada model Claude 4.5+.

Isolasi cache berubah dari tingkat organisasi menjadi tingkat workspace pada 5 Februari 2026. Ini berarti workspace berbeda dalam organisasi yang sama mempertahankan cache terpisah.

Saat bekerja dengan caching Anthropic, membantu untuk menstrukturkan prompt Anda untuk caching optimal, menempatkan konten statis sebelum konten dinamis bahkan lebih penting di sini karena Anda membayar premi tulis.

Contoh SDK Python Anthropic

python
import anthropic

client = anthropic.Anthropic()

SYSTEM_PROMPT = """You are a senior Python developer specializing in async programming.
You follow PEP 8, use type hints, and write comprehensive docstrings.
When reviewing code, check for: race conditions, resource leaks, error handling,
and performance bottlenecks. Always suggest specific fixes with code examples.
[... imagine 1,800 more tokens of coding guidelines, examples, and rules ...]"""

def chat(user_message: str) -> str:
    response = client.messages.create(
        model="claude-sonnet-4-5-20250514",
        max_tokens=1024,
        system=[
            {
                "type": "text",
                "text": SYSTEM_PROMPT,
                "cache_control": {"type": "ephemeral"},  # Explicit breakpoint
            }
        ],
        messages=[
            {"role": "user", "content": user_message},
        ],
    )

    # Read cache metrics from the response
    usage = response.usage
    created = usage.cache_creation_input_tokens
    read = usage.cache_read_input_tokens
    standard = usage.input_tokens
    print(f"Cache write: {created}, Cache read: {read}, Standard: {standard}")

    return response.content[0].text

# First call: cache_creation_input_tokens = ~1920 (write at 1.25x)
chat("Review this async function for race conditions...")

# Second call: cache_read_input_tokens = ~1920 (read at 0.1x -- 90% off!)
chat("Now optimize the same function for throughput...")

Memahami Harga Tulis Cache vs Baca Cache

Di sinilah harga Anthropic menjadi menarik. Menggunakan Claude Sonnet 4.5 ($3/MTok input dasar) sebagai contoh:

  • Input standar: $3,00 per juta token
  • Tulis cache (5-menit): $3,75 per juta token (1,25x), Anda membayar lebih pada kali pertama
  • Baca cache: $0,30 per juta token (0,1x) -- 90% lebih murah pada setiap hit berikutnya

Cache 5 menit balik modal hanya setelah 1 bacaan. Cache 1 jam ($6,00/MTok tulis) balik modal setelah 2 bacaan. Jika Anda membuat lebih dari beberapa permintaan per menit dengan awalan yang sama, matematikanya sangat menguntungkan Anda.

Vonis: Anthropic memberikan diskon terdalam (90%) dan kontrol paling banyak. Terbaik untuk beban kerja bervolume tinggi dan sensitif terhadap biaya.

Bagaimana Google Gemini Menangani Caching Prompt?

Gemini mengambil pendekatan berbeda dengan dua mekanisme caching yang berbeda: caching konteks eksplisit (objek cache bernama yang Anda buat dan referensi) dan caching implisit (otomatis, nol-konfigurasi, ditambahkan pada 2026 untuk model Gemini 2.5+).

Caching Konteks Eksplisit (Cache Bernama)

Tidak seperti OpenAI dan Anthropic di mana caching transparan, caching eksplisit Gemini mengharuskan Anda membuat objek cache bernama terlebih dahulu, lalu mereferensikannya dalam permintaan berikutnya. Ambang batas token minimum adalah 1.024 token untuk model Gemini Flash dan 4.096 token untuk model Pro. TTL dapat dikonfigurasi, defaultnya 1 jam, tetapi Anda dapat mengaturnya sesuai kebutuhan.

Token yang di-cache pada Gemini 2.5 Pro dihargai $0,125/MTok vs harga input standar $1,25/MTok, sebuah diskon 90%. Ada juga biaya penyimpanan sebesar $4,50 per juta token per jam untuk Pro, dan $1,00 untuk Flash.

Caching Implisit di Gemini 2.5 (2026)

Dimulai dengan Gemini 2.5 Pro dan Flash, Google menambahkan caching implisit, caching otomatis yang bekerja seperti pendekatan OpenAI. Tidak diperlukan konfigurasi. Tempatkan konten besar dan umum di awal prompt Anda dan kirim permintaan dengan awalan serupa dalam waktu berdekatan. Sistem secara otomatis mendeteksi konten yang memenuhi syarat untuk cache dan meneruskan penghematan.

Contoh SDK Python Gemini

python
from google import genai
from google.genai import types

client = genai.Client()

SYSTEM_PROMPT = """You are a senior Python developer specializing in async programming.
You follow PEP 8, use type hints, and write comprehensive docstrings.
When reviewing code, check for: race conditions, resource leaks, error handling,
and performance bottlenecks. Always suggest specific fixes with code examples.
[... imagine 1,800 more tokens of coding guidelines, examples, and rules ...]"""

# Step 1: Create a named cache object
cache = client.caches.create(
    model="gemini-2.5-flash",
    config=types.CreateCachedContentConfig(
        display_name="python-review-guidelines",
        system_instruction=SYSTEM_PROMPT,
        ttl="3600s",  # 1 hour
    ),
)

print(f"Cache created: {cache.name}, expires: {cache.expire_time}")

# Step 2: Use the cache in requests
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents="Review this async function for race conditions...",
    config=types.GenerateContentConfig(
        cached_content=cache.name,
    ),
)

# Check cache usage in the response
metadata = response.usage_metadata
print(f"Cached tokens: {metadata.cached_content_token_count}")
print(f"Total input tokens: {metadata.prompt_token_count}")

Pendekatan eksplisit memiliki satu keunggulan besar: Anda mengontrol TTL secara presisi. Jika Anda tahu pekerjaan batch Anda berjalan selama 4 jam, atur TTL 4 jam dan hindari kedaluwarsa cache di tengah pemrosesan.

Vonis: TTL yang dapat dikonfigurasi dan mode caching ganda Gemini (eksplisit + implisit) membuatnya serbaguna. Ambang batas minimum sekarang sebanding dengan penyedia lain, dan diskon 90% pada bacaan yang di-cache menyamai Anthropic.

Perbandingan Kode Side-by-Side, Kasus Penggunaan Sama, Semua 3 Penyedia

Berikut adalah chatbot yang sama dengan prompt sistem yang di-cache, diimplementasikan di ketiga SDK. Bandingkan pengalaman pengembang secara langsung.

python
# --- OpenAI: Zero config, just call the API ---
from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": SYSTEM_PROMPT},  # Cached automatically
        {"role": "user", "content": user_message},
    ],
)
cached = response.usage.prompt_tokens_details.cached_tokens
python
# --- Anthropic: Explicit cache_control breakpoint ---
import anthropic
client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-sonnet-4-5-20250514",
    max_tokens=1024,
    system=[{
        "type": "text",
        "text": SYSTEM_PROMPT,
        "cache_control": {"type": "ephemeral"},  # Mark cache boundary
    }],
    messages=[{"role": "user", "content": user_message}],
)
cached = response.usage.cache_read_input_tokens
python
# --- Gemini: Named cache object ---
from google import genai
from google.genai import types

client = genai.Client()
cache = client.caches.create(
    model="gemini-2.5-flash",
    config=types.CreateCachedContentConfig(
        system_instruction=SYSTEM_PROMPT,
        ttl="3600s",
    ),
)
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=user_message,
    config=types.GenerateContentConfig(cached_content=cache.name),
)
cached = response.usage_metadata.cached_content_token_count
AspekOpenAIAnthropicGemini
Kompleksitas PenyiapanTidak adaTambahkan blok cache_controlBuat objek cache terlebih dahulu
Kontrol CacheHanya otomatisOtomatis atau eksplisitImplisit atau eksplisit
Diskon Baca Cached50%90%~90%
Token Min1.0241.0241.024 (Flash) / 4.096 (Pro)
Vonis DXPaling SederhanaKontrol Paling BanyakTTL Paling Fleksibel

Jika Anda menginginkan penghematan tanpa usaha, pilih OpenAI. Jika Anda menginginkan diskon terdalam dan kontrol halus, pilih Anthropic. Jika Anda membutuhkan masa hidup cache yang dapat dikonfigurasi atau Anda sudah berada di Google Cloud, pilih Gemini.

Kalkulator Biaya Produksi, Penghematan Nyata dalam Skala Besar

Persentase abstrak tidak mendorong keputusan. Jumlah dolarlah yang melakukannya. Berikut adalah tiga skenario produksi dengan estimasi biaya nyata menggunakan Claude Sonnet 4.5 ($3/MTok input), GPT-4o ($2,50/MTok input), dan Gemini 2.5 Pro ($1,25/MTok input).

Harga diverifikasi Maret 2026. Periksa harga Anthropic, harga OpenAI, dan harga Gemini untuk tarif saat ini.

Asumsi: Tingkat hit cache 80% (realistis untuk prompt yang terstruktur dengan baik), token output dikecualikan karena caching hanya mempengaruhi biaya input.

SkenarioTanpa Caching (Bulanan)Dengan Caching OpenAIDengan Caching AnthropicDengan Caching Gemini
Chatbot Hobi: 100 req/hari, 2K prompt sistemOpenAI: $15 / Anthropic: $18 / Gemini: $7,50$12 (hemat $3)$5,40 (hemat $12,60)$2,25 (hemat $5,25)
API Pertumbuhan: 10K req/hari, 8K awalan di-cacheOpenAI: $600 / Anthropic: $720 / Gemini: $300$360 (hemat $240)$144 (hemat $576)$60 (hemat $240)
Pipeline Enterprise: 100K req/hari, 10K awalan di-cacheOpenAI: $7.500 / Anthropic: $9.000 / Gemini: $3.750$4.500 (hemat $3.000)$1.800 (hemat $7.200)$750 (hemat $3.000)

Pada tingkat Pertumbuhan, caching Anthropic menghemat $576/bulan meskipun memiliki harga dasar lebih tinggi daripada OpenAI. Pada skala Enterprise, Anda melihat penghematan $7.200/bulan dengan Anthropic, atau $86.400 per tahun. Itu setara dengan gaji seorang insinyur senior dari sekadar perubahan konfigurasi.

Polanya jelas: semakin tinggi volume permintaan Anda dan semakin panjang awalan statis Anda, semakin besar penghematan dari caching. Diskon 90% Anthropic mendominasi dalam skala besar, tetapi harga dasar Gemini yang lebih rendah membuatnya kompetitif ketika Anda memperhitungkan total biaya.

Anti-Pola Caching Prompt, Kapan TIDAK Melakukan Caching

Caching terlihat sederhana sampai tingkat hit cache Anda secara misterius berada di 0%. Berikut adalah kesalahan yang secara diam-diam merusak caching prompt, dan cara memperbaikinya.

Kesalahan Pemecah Cache (Dengan Solusi)

Timestamp dalam prompt sistem, Kesalahan paling umum. Jika prompt sistem Anda menyertakan datetime.now(), kunci cache berubah setiap detik.

python
# BAD: Cache misses every single request
system_prompt = f"""You are a helpful assistant.
Current time: {datetime.now().isoformat()}
Always be helpful and accurate."""

# GOOD: Move the timestamp to the user message
system_prompt = """You are a helpful assistant.
Always be helpful and accurate."""

user_message = f"[Current time: {datetime.now().isoformat()}]\n{user_query}"

Konten khusus pengguna sebelum konten statis, Jika Anda menempatkan session_id atau preferensi pengguna di awal, setiap pengguna mendapatkan awalan unik.

python
# BAD: Unique prefix per user = zero cache reuse
messages = [
    {"role": "system", "content": f"User ID: {user_id}\nPreferences: {prefs}\n{GUIDELINES}"},
    {"role": "user", "content": query},
]

# GOOD: Static content first, user context at the end
messages = [
    {"role": "system", "content": GUIDELINES},  # Same for all users -> cached
    {"role": "user", "content": f"Context: User {user_id}, prefs: {prefs}\n{query}"},
]
Anti-PolaMengapa Merusak CacheSolusi
Timestamp dalam prompt sistemAwalan berubah setiap detikPindahkan timestamp ke pesan pengguna
ID Sesi/pengguna dalam awalanAwalan unik per penggunaPindahkan konteks pengguna setelah konten statis
Contoh few-shot yang berputarContoh berbeda = awalan berbedaGunakan set contoh tetap
Definisi alat dinamisAlat berubah = ketidakcocokan awalanJaga skema alat tetap statis
Prompt pendek (di bawah minimum)Cache tidak akan terpicuKonsolidasikan konteks untuk melebihi 1.024 token
Personalisasi per-permintaan dalam prompt sistemPrompt sistem berubah setiap panggilanGunakan prompt sistem bersama + pesan pengguna khusus

Kapan Caching Prompt Benar-Benar Tidak Membantu

Beberapa skenario tidak akan mendapat manfaat dari caching bahkan jika Anda menyusun prompt dengan sempurna:

  • Prompt sekali pakai: Jika setiap permintaan memiliki konteks yang benar-benar unik dan tidak ada awalan bersama, tidak ada yang bisa di-cache.
  • Prompt sangat pendek: Di bawah 1.024 token (OpenAI/Anthropic) atau 4.096 token (Gemini Pro), caching tidak aktif.
  • Permintaan jarang: Jika permintaan berjarak berjam-jam, cache kedaluwarsa sebelum permintaan kedua tiba. Jendela 5-10 menit OpenAI dan TTL default 5 menit Anthropic berarti Anda memerlukan lalu lintas yang konsisten.

Apakah Caching Prompt Bekerja Dengan Streaming?

Ya. Caching prompt dan streaming adalah independen, caching beroperasi pada token input, streaming mempengaruhi pengiriman output. Mereka memecahkan masalah berbeda pada tahap berbeda dari siklus hidup permintaan.

Cache menangani fase prefill (memproses prompt input Anda). Streaming menangani fase decode (menghasilkan dan mengirim token output secara bertahap). Anda mendapatkan kedua manfaat secara bersamaan: prefill lebih cepat dari hit cache, plus pengiriman output progresif dari streaming.

Berikut adalah contoh streaming dengan caching diaktifkan:

python
import anthropic

client = anthropic.Anthropic()

with client.messages.stream(
    model="claude-sonnet-4-5-20250514",
    max_tokens=1024,
    system=[{
        "type": "text",
        "text": SYSTEM_PROMPT,
        "cache_control": {"type": "ephemeral"},
    }],
    messages=[{"role": "user", "content": "Explain Python's GIL..."}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

    # After streaming completes, check cache metrics
    usage = stream.get_final_message().usage
    print(f"\nCache read: {usage.cache_read_input_tokens} tokens")

Peningkatan TTFT dari caching sebenarnya paling terlihat dengan streaming. Tanpa caching, Anda menunggu prefill penuh sebelum token pertama mengalir kembali. Dengan caching, prefill hampir instan, sehingga token mulai mengalir hampir segera.

Cara Memantau Tingkat Hit Cache di Produksi

Menyiapkan caching adalah setengah dari pertempuran. Mengetahui apakah itu benar-benar bekerja adalah setengah lainnya. Jika tingkat hit cache Anda turun di bawah 50%, ada sesuatu yang berubah dalam struktur prompt Anda dan Anda membuang uang.

Metrik Cache Spesifik Penyedia

PenyediaField Baca CacheField Tulis CacheField Input Total
OpenAIusage.prompt_tokens_details.cached_tokensN/A (otomatis)usage.prompt_tokens
Anthropicusage.cache_read_input_tokensusage.cache_creation_input_tokensusage.input_tokens
GeminiusageMetadata.cachedContentTokenCountN/A (objek cache eksplisit)usageMetadata.promptTokenCount

Logger Tingkat Hit Cache Sederhana

Berikut adalah fungsi utilitas yang dapat Anda masukkan ke proyek apa pun untuk melacak tingkat hit cache melalui field respons API:

python
import logging

logger = logging.getLogger("cache_monitor")

def log_cache_metrics(provider: str, usage: dict) -> float:
    """Extract and log cache metrics from any provider's response. Returns hit rate."""

    if provider == "openai":
        cached = getattr(usage.prompt_tokens_details, "cached_tokens", 0)
        total = usage.prompt_tokens
    elif provider == "anthropic":
        cached = usage.cache_read_input_tokens
        created = usage.cache_creation_input_tokens
        total = cached + created + usage.input_tokens
    elif provider == "gemini":
        cached = getattr(usage, "cached_content_token_count", 0)
        total = usage.prompt_token_count
    else:
        raise ValueError(f"Unknown provider: {provider}")

    hit_rate = (cached / total * 100) if total > 0 else 0
    logger.info(f"[{provider}] Cache hit rate: {hit_rate:.1f}% ({cached}/{total} tokens)")

    if hit_rate < 50:
        logger.warning(f"[{provider}] Low cache hit rate! Check prompt structure.")

    return hit_rate

Sistem produksi yang sehat harus mempertahankan tingkat hit cache 70-90%. Jika Anda di bawah 50%, tinjau kembali bagian anti-pola. Anda juga dapat mengintegrasikan ini dengan metrik evaluasi otomatis untuk menangkap regresi dalam pipeline prompt Anda.

Caching Prompt dalam Kasus Penggunaan Dunia Nyata

Contoh chatbot di atas mengilustrasikan mekanismenya, tetapi caching prompt benar-benar bersinar dalam pola arsitektur tertentu.

Pipeline RAG

Dalam pengaturan RAG, prompt sistem dan contoh few-shot Anda statis di semua kueri. Dokumen yang diambil berubah setiap kali. Strukturkan prompt Anda untuk memaksimalkan awalan yang di-cache:

  1. Prompt sistem (di-cache)
  2. Contoh few-shot (di-cache)
  3. Dokumen yang diambil (dinamis, letakkan terakhir)
  4. Kueri pengguna (selalu unik)

Dengan prompt sistem 5.000 token dan 3.000 token contoh few-shot, itu adalah 8.000 token yang di-cache pada setiap permintaan. Pada 1.000 permintaan/hari di Anthropic, Anda akan menghemat sekitar $6,50/hari hanya dari awalan yang di-cache saja. Saat Anda mengambil dan memblokir konteks cache, pastikan output pengambilan datang setelah awalan statis.

Chatbot Multi-Turn

Percakapan multi-turn adalah titik manis untuk caching prompt. Setiap giliran menambah riwayat percakapan, tetapi seluruh percakapan sebelumnya sudah di-cache dari giliran sebelumnya. Manfaat cache bertambah; pada giliran ke-10, Anda mungkin memiliki 15.000 token riwayat yang di-cache dengan hanya 200 token segar dari pesan pengguna terbaru.

Sistem Agentic dan Definisi Alat MCP

Jika Anda membangun agen dengan penggunaan alat, definisi alat Anda adalah skema JSON statis yang diulang pada setiap panggilan API. Agen tipikal mungkin memiliki 20+ alat dengan total 3.000-5.000 token definisi. Itu adalah bahan caching utama.

Ini sangat relevan untuk arsitektur berbasis MCP di mana definisi alat server dikirim pada setiap panggilan. Dengan cache_control eksplisit Anthropic, Anda dapat menandai array tools untuk caching dan menjamin token tersebut digunakan kembali.

Penyedia Mana yang Harus Anda Pilih?

Jika Anda Membutuhkan...Pilihan TerbaikMengapa
Nol-konfigurasi, hanya ingin penghematanOpenAICaching otomatis, tidak perlu perubahan kode
Pengurangan biaya maksimum (90%)AnthropicHarga baca cached 0,1x, diskon terdalam
Kontrol cache halusAnthropicBreakpoint eksplisit + TTL yang dapat dikonfigurasi (5-menit atau 1-jam)
Analisis dokumen panjangGeminiTTL yang dapat dikonfigurasi dengan cache bernama eksplisit
Kesederhanaan chat multi-turnOpenAIPencocokan awalan otomatis pada riwayat percakapan yang berkembang
Sistem agentic dengan definisi alatAnthropicCache definisi alat secara eksplisit dengan cache_control
Fleksibilitas multi-penyediaLiteLLMSintaks caching terunifikasi di semua penyedia

Jika Anda sudah menggunakan satu penyedia, mulailah dari sana, caching prompt tidak memerlukan pergantian. LiteLLM bertindak sebagai lapisan proxy yang menormalisasi parameter caching di seluruh penyedia, yang berguna jika Anda merutekan permintaan ke beberapa model.

FAQ, Caching Prompt LLM

Apa itu caching prompt di LLM?

Caching prompt menyimpan status perhatian yang dihitung (cache KV) dari awalan prompt yang telah diproses sebelumnya. Ketika permintaan berikutnya dimulai dengan urutan token yang sama, penyedia menggunakan kembali status yang disimpan tersebut daripada menghitungnya ulang, mengurangi biaya dan latensi tanpa dampak pada kualitas output.

Berapa banyak penghematan biaya API dari caching prompt?

Penghematan berkisar dari 50% hingga 90% tergantung pada penyedia. OpenAI menawarkan diskon 50% pada token input yang di-cache. Anthropic menawarkan hingga 90% diskon (bacaan cached pada 0,1x harga dasar). Gemini menawarkan sekitar 90% diskon pada bacaan cached. Penghematan aktual bergantung pada tingkat hit cache, panjang prompt, dan frekuensi permintaan.

Apakah caching prompt OpenAI terjadi secara otomatis?

Ya, sejak Oktober 2024. Setiap panggilan API dengan 1.024+ token input secara otomatis mendapatkan manfaat dari caching. Tidak perlu opting-in, tidak ada header, tidak ada perubahan kode yang diperlukan. Cache mencocokkan awalan token dari awal prompt.

Apa perbedaan antara caching prompt dan caching semantik?

Caching prompt mencocokkan awalan token yang tepat di level GPU, tidak ada kehilangan akurasi, dan output identik dengan permintaan yang tidak di-cache. Caching semantik menggunakan kesamaan embedding untuk menemukan kueri sebelumnya yang "cukup dekat" dan mengembalikan respons yang di-cache, lebih cepat tetapi dapat mengembalikan jawaban yang salah atau usang. Mereka memecahkan masalah yang fundamentally berbeda.

Berapa lama cache prompt bertahan?

Bervariasi menurut penyedia. OpenAI: 5-10 menit (hingga 24 jam dengan retensi diperpanjang). Anthropic: 5 menit (default) atau 1 jam (tersedia pada model Claude 4.5+, biaya tulis 2x). Gemini: dapat dikonfigurasi, default 1 jam untuk cache eksplisit. TTL caching implisit dikelola oleh Google secara otomatis.

Berapa panjang token minimum untuk caching prompt?

OpenAI: 1.024 token. Anthropic: 1.024 token untuk sebagian besar model saat ini. Gemini: 1.024 token untuk model Flash, 4.096 untuk model Pro. Prompt di bawah ambang batas ini tidak akan mengaktifkan caching, ini adalah jebakan "tidak bekerja" yang paling umum.

Apakah caching prompt bekerja dengan respons streaming?

Ya. Caching dan streaming beroperasi pada fase permintaan yang berbeda. Caching mempercepat fase prefill input; streaming mengirimkan token output secara bertahap. Keduanya bekerja secara simultan, dan Anda sebenarnya akan melihat peningkatan TTFT lebih jelas dengan streaming diaktifkan.

Kapan saya TIDAK BOLEH menggunakan caching prompt?

Hindari mengandalkan caching ketika prompt Anda di bawah ambang batas token minimum, ketika Anda menyertakan timestamp atau ID sesi dalam prompt sistem, ketika Anda memutar contoh few-shot antar panggilan, atau ketika permintaan terlalu jarang untuk mencapai cache sebelum kedaluwarsa (jendela 5-10 menit untuk OpenAI/Anthropic).

Bisakah saya menggunakan caching prompt dengan LangChain atau LiteLLM?

Ya. LangChain meneruskan parameter caching spesifik penyedia melalui wrapper API-nya. LiteLLM menyediakan sintaks caching terunifikasi yang menormalisasi cache_control di seluruh Anthropic, OpenAI, Gemini, Vertex AI, dan Bedrock, sangat berguna untuk pengaturan multi-penyedia.

Apa itu cache hit vs cache miss?

Cache hit berarti penyedia menemukan awalan yang cocok dalam memori dan menggunakan kembali status KV yang disimpan, Anda membayar harga token cached yang didiskon dan mendapatkan TTFT lebih cepat. Cache miss berarti tidak ditemukan kecocokan, sehingga prompt penuh diproses dari awal dengan harga standar. Periksa field cached_tokens (OpenAI), cache_read_input_tokens (Anthropic), atau cachedContentTokenCount (Gemini) dalam respons API untuk melihat mana yang terjadi.

Vonis Akhir

KategoriPemenangAlasan Utama
Penyiapan TermudahOpenAIOtomatis, nol konfigurasi
Diskon TerdalamAnthropic90% diskon pada bacaan cached (0,1x dasar)
Kontrol Paling BanyakAnthropicBreakpoint eksplisit + TTL 5-menit atau 1-jam
Terbaik untuk Dokumen PanjangGeminiTTL yang dapat dikonfigurasi dengan objek cache bernama
Terbaik untuk Chat Multi-TurnOpenAIPencocokan awalan otomatis pada riwayat percakapan
Terbaik untuk Agentic/MCPAnthropicCache definisi alat secara eksplisit

Caching prompt adalah optimisasi dengan usaha terendah dan hasil tertinggi dalam tumpukan API LLM. Anda tidak mengubah model, Anda tidak mengorbankan kualitas, dan implementasinya berkisar dari "tidak melakukan apa-apa" (OpenAI) hingga "menambahkan satu field" (Anthropic) hingga "membuat objek cache" (Gemini).

Mulailah dengan caching otomatis penyedia Anda saat ini. Ukur tingkat hit cache Anda dengan utilitas logging di atas. Jika Anda di bawah 70%, strukturkan ulang prompt Anda (statis dulu, dinamis terakhir) dan hilangkan anti-pola. Sebagian besar tim melihat pengurangan biaya 50-80% dalam sehari setelah menerapkan perubahan ini.

Sumber

  • Dokumentasi Caching Prompt Anthropic
  • Panduan Caching Prompt OpenAI
  • Dokumentasi Caching Konteks Gemini
  • Harga Model Anthropic
  • Harga API Gemini
  • Penjelasan Caching KV, Blog Hugging Face
  • Dokumentasi Caching Prompt LiteLLM

Tag

llm-prompt-cachingprompt-cachingllm-api-costsopenaianthropicgeminikv-cacheai-development

Bagikan artikel ini

Artikel Terkait

Lebih lanjut di guides

guides
Jul 18, 2026

Perbandingan Harga API LLM 2026: Setiap Model Utama, Dihitung

Perbandingan lengkap harga API LLM untuk 2026 — Claude, GPT-5.6, Gemini, DeepSeek, Qwen, GLM, dan Mistral dibandingkan per juta token, langsung dari halaman harga resmi.

12 min read baca
Baca
guides
Apr 12, 2026

Panduan Surfer SEO 2026: Editor Konten, Skor NLP, dan Pencarian AI

Panduan praktis Surfer SEO yang mencakup alur kerja Content Editor, sistem penilaian NLP, AI Tracker untuk optimasi GEO, dan otomatisasi API. Berdasarkan pengujian pada lebih dari 50 artikel.

14 min read baca
Baca
guides
Apr 12, 2026

Panduan Semrush 2026: Setiap Alat Dijelaskan (Dengan Contoh)

Panduan praktis Semrush yang mencakup riset kata kunci, audit situs, analisis kompetitif, pelacakan Visibilitas AI, dan pengaturan server MCP. Termasuk contoh kode dan alur kerja dari pipa SEO nyata.

14 min read baca
Baca
Lihat Semua Postingan
Mulai Proyek Anda

Siap membangun sesuatu lu biasa?

Mari wujudkan visi Anda menjadi kenyataan. Tim kami siap membantu Anda menciptakan software yang benar-benar berdampak.

Jadwalkan panggilan scoping 30 menitLihat Karya Kami

Terbaru dari library

Skill Claude

Lihat semua
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

Otomatisasi AI

Lihat semua
  • Security Auditor

    Weekly SCA + IaC scan with prioritized fix PRs.

  • Cold Email Writer

    Generates first-touch emails grounded in one specific public detail.

  • Lead Research Agent

    Enrich an email into a profile, score fit, alert in Slack.

Terbaru dari library

Skill Claude

Lihat semua
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

Otomatisasi AI

Lihat semua
  • Security Auditor

    Weekly SCA + IaC scan with prioritized fix PRs.

  • Cold Email Writer

    Generates first-touch emails grounded in one specific public detail.

  • Lead Research Agent

    Enrich an email into a profile, score fit, alert in Slack.

Layanan

  • Solusi Enterprise
  • Aplikasi Mobile
  • Aplikasi Web

Solusi

  • Sistem CRM
  • Integrasi AI
  • Solusi ERP
  • Agen Suara
  • Otomasi Proses
  • Keamanan Siber

Perpustakaan

  • Blog
  • Portofolio

Komunitas

  • Otomatisasi AI
  • Skill Claude

Alat

  • Kalkulator Biaya Aplikasi Mobile
  • Kalkulator Biaya API OpenAI / LLM
  • Kalkulator Biaya MVP
  • Kalkulator Biaya Voice AI Agent

Perusahaan

  • Tentang
  • Mitra
  • Kontak

Hukum

  • Kebijakan Privasi
  • Syarat Layanan
  • Kebijakan Kuki

Layanan

  • Solusi Enterprise
  • Aplikasi Mobile
  • Aplikasi Web

Solusi

  • Sistem CRM
  • Integrasi AI
  • Solusi ERP
  • Agen Suara
  • Otomasi Proses
  • Keamanan Siber

Perpustakaan

  • Blog
  • Portofolio

Komunitas

  • Otomatisasi AI
  • Skill Claude

Alat

  • Kalkulator Biaya Aplikasi Mobile
  • Kalkulator Biaya API OpenAI / LLM
  • Kalkulator Biaya MVP
  • Kalkulator Biaya Voice AI Agent

Perusahaan

  • Tentang
  • Mitra
  • Kontak
HukumKebijakan PrivasiSyarat LayananKebijakan Kuki
TECHSY
© 2026 Techsy. Seluruh hak cipta dilindungi.