Prompt Caching & Optimization untuk Production
Strategi mengoptimasi prompt untuk kecepatan, biaya, dan reliability di production
Tujuan Pembelajaran
- Memahami teknik prompt caching dan cara implementasinya
- Mampu mengoptimasi prompt structure untuk mengurangi token usage
- Mampu menerapkan production best practices: retry, timeout, fallback
Analogi
Prompt Caching = Microwave vs Masak dari Nol:
Tanpa cache:
Setiap request: siapkan bahan → masak → sajikan (mahal, lambat)
Dengan cache:
"Nasi goreng sama seperti yang tadi"
→ Microwave 2 menit → sajikan (murah, cepat)
Prompt cache:
System prompt + context yang sama tidak perlu diproses ulang.
Anthropic Claude punya fitur prompt caching built-in.
Prompt caching seperti microwave — kalau prompt mirip dengan yang sebelumnya, tidak perlu 'masak' dari nol.
Penjelasan Konsep
Prompt caching menyimpan hasil komputasi dari bagian prompt yang tidak berubah (system message, context) sehingga request berikutnya lebih cepat dan murah. Anthropic Claude punya prompt caching built-in — OpenAI akan segera menyusul.
Cara kerja: Tandai bagian prompt sebagai cacheable (system prompt, long context). LLM provider menyimpan hasil komputasi internal (KV cache). Request berikutnya dengan prefix yang sama → skip komputasi prefix → hemat latency & cost.
Optimasi prompt structure: (1) Letakkan bagian yang berubah di AKHIR prompt (user message). (2) Letakkan bagian yang statis di AWAL (system message, context). (3) Jangan selipkan dynamic content di tengah static content — ini merusak cache boundary.
Production best practices: (1) Retry dengan exponential backoff untuk transient errors. (2) Timeout yang reasonable (10-30 detik, tergantung model). (3) Fallback: kalau primary model gagal, switch ke secondary (lebih murah/cepat). (4) Circuit breaker: kalau error rate > threshold, stop sending requests. (5) Rate limiting + queuing untuk traffic spikes.
Inti yang Perlu Dipahami
Bagian ini berfokus pada memahami teknik prompt caching dan cara implementasinya., mampu mengoptimasi prompt structure untuk mengurangi token usage., dan mampu menerapkan production best practices: retry, timeout, fallback. Jangan terburu-buru menghafal istilahnya. Lebih penting untuk memahami peran setiap konsep dan kapan konsep itu muncul dalam pekerjaan web development.
Saat membaca Prompt Caching & Optimization untuk Production, gunakan tujuan belajar sebagai penanda arah. Kalau kamu sudah bisa menjelaskan tujuan itu dengan kata-katamu sendiri, berarti fondasinya mulai terbentuk.
Cara Membayangkannya
Prompt caching seperti microwave — kalau prompt mirip dengan yang sebelumnya, tidak perlu ‘masak’ dari nol. Analogi ini dipakai supaya konsep teknis tidak terasa melayang. Hubungkan setiap istilah dengan perannya: siapa yang meminta, siapa yang memproses, data apa yang berpindah, dan hasil apa yang diharapkan.
Kalau analoginya sudah terasa masuk akal, barulah lihat istilah teknisnya. Cara ini membuat materi lebih mudah dipahami daripada langsung menghafal definisi.
Saat Melihat Contoh Kode
Contoh kode pada chapter ini memakai bahasa typescript. Bacalah contoh kode sebagai ilustrasi alur, bukan sebagai bagian yang harus langsung dihafal. Pattern retry + fallback: coba model utama dengan 3 retry (exponential backoff). Kalau gagal, switch ke model fallback (lebih murah, lebih cepat). Kalau semua gagal, throw error yang di-handle oleh error boundary UI.
Perhatikan nama fungsi, urutan langkah, dan data yang berpindah. Biasanya tiga hal itu sudah cukup untuk memahami hubungan antara teori dan praktik.
Konteks dalam Perjalanan Belajar
Setiap konsep di platform ini dipilih karena dipakai di industri. Fokus pada pemahaman, bukan hafalan.
Kamu sudah di bagian lanjutan. Mulai pikirkan bagaimana konsep ini dipakai di dunia kerja — bukan hanya untuk belajar, tapi untuk membangun produk nyata.
Gunakan pertanyaan reflektif dan prompt AI di akhir chapter sebagai latihan aktif. Membaca saja tidak cukup — kamu perlu menjelaskan ulang dengan kata-katamu sendiri.
Contoh Kode
// Production prompt dengan retry + timeout + fallback
async function generateWithFallback(prompt: string) {
const models = [
{ name: 'claude-sonnet', timeout: 30000, maxRetries: 3 },
{ name: 'gpt-4o-mini', timeout: 15000, maxRetries: 2 }, // fallback
];
for (const model of models) {
for (let attempt = 0; attempt < model.maxRetries; attempt++) {
try {
const controller = new AbortController();
const timer = setTimeout(() => controller.abort(), model.timeout);
const result = await callAI(model.name, prompt, controller.signal);
clearTimeout(timer);
return result;
} catch (err) {
if (attempt === model.maxRetries - 1) break; // try next model
await sleep(Math.pow(2, attempt) * 1000); // exponential backoff
}
}
}
throw new Error('All models failed');
}Penjelasan Kode
Prompt AI
Implementasi production AI service dengan: prompt caching strategy, 3-tier fallback (Claude → GPT-4o-mini → static response), circuit breaker, dan monitoring dashboard sederhana.
Pertanyaan Reflektif
Apa yang terjadi kalau AI API di produkmu down selama 1 jam? Apakah user lihat error? Atau ada fallback yang graceful?