cache_control:
cache_control. Ini memungkinkan penggunaan ulang teks besar ini di berbagai panggilan API tanpa memproses ulang setiap kali. Mengubah hanya pesan pengguna memungkinkan Anda untuk mengajukan berbagai pertanyaan tentang buku sambil memanfaatkan konten yang disimpan dalam cache, yang menghasilkan respons lebih cepat dan efisiensi yang ditingkatkan.
Cara kerja penyimpanan cache prompt
Ketika Anda mengirim permintaan dengan penyimpanan cache prompt diaktifkan:- Sistem memeriksa apakah awalan prompt, hingga titik henti cache yang ditentukan, sudah disimpan dalam cache dari kueri baru-baru ini.
- Jika ditemukan, sistem menggunakan versi yang disimpan dalam cache, mengurangi waktu pemrosesan dan biaya.
- Jika tidak, sistem memproses prompt lengkap dan menyimpan awalan dalam cache setelah respons dimulai.
- Prompt dengan banyak contoh
- Jumlah besar konteks atau informasi latar belakang
- Tugas berulang dengan instruksi yang konsisten
- Percakapan multi-putaran yang panjang
tools, system, dan messages (dalam urutan itu) hingga dan termasuk blok yang ditunjuk dengan cache_control.Harga
Penyimpanan cache prompt memperkenalkan struktur harga baru. Tabel di bawah menunjukkan harga per juta token untuk setiap model yang didukung:| Model | Base Input Tokens | 5m Cache Writes | 1h Cache Writes | Cache Hits & Refreshes | Output Tokens |
|---|---|---|---|---|---|
| Claude Opus 4.1 | $15 / MTok | $18.75 / MTok | $30 / MTok | $1.50 / MTok | $75 / MTok |
| Claude Opus 4 | $15 / MTok | $18.75 / MTok | $30 / MTok | $1.50 / MTok | $75 / MTok |
| Claude Sonnet 4.5 | $3 / MTok | $3.75 / MTok | $6 / MTok | $0.30 / MTok | $15 / MTok |
| Claude Sonnet 4 | $3 / MTok | $3.75 / MTok | $6 / MTok | $0.30 / MTok | $15 / MTok |
| Claude Sonnet 3.7 (deprecated) | $3 / MTok | $3.75 / MTok | $6 / MTok | $0.30 / MTok | $15 / MTok |
| Claude Haiku 4.5 | $1 / MTok | $1.25 / MTok | $2 / MTok | $0.10 / MTok | $5 / MTok |
| Claude Haiku 3.5 | $0.80 / MTok | $1 / MTok | $1.6 / MTok | $0.08 / MTok | $4 / MTok |
| Claude Opus 3 (deprecated) | $15 / MTok | $18.75 / MTok | $30 / MTok | $1.50 / MTok | $75 / MTok |
| Claude Haiku 3 | $0.25 / MTok | $0.30 / MTok | $0.50 / MTok | $0.03 / MTok | $1.25 / MTok |
- Token penulisan cache 5 menit adalah 1,25 kali harga token input dasar
- Token penulisan cache 1 jam adalah 2 kali harga token input dasar
- Token pembacaan cache adalah 0,1 kali harga token input dasar
Cara mengimplementasikan penyimpanan cache prompt
Model yang didukung
Penyimpanan cache prompt saat ini didukung pada:- Claude Opus 4.1
- Claude Opus 4
- Claude Sonnet 4.5
- Claude Sonnet 4
- Claude Sonnet 3.7
- Claude Haiku 4.5
- Claude Haiku 3.5
- Claude Haiku 3
- Claude Opus 3 (deprecated)
Menyusun prompt Anda
Tempatkan konten statis (definisi alat, instruksi sistem, konteks, contoh) di awal prompt Anda. Tandai akhir konten yang dapat digunakan kembali untuk penyimpanan cache menggunakan parametercache_control.
Awalan cache dibuat dalam urutan berikut: tools, system, kemudian messages. Urutan ini membentuk hierarki di mana setiap level dibangun di atas yang sebelumnya.
Cara kerja pemeriksaan awalan otomatis
Anda dapat menggunakan hanya satu titik henti cache di akhir konten statis Anda, dan sistem akan secara otomatis menemukan awalan yang cocok paling lama. Memahami cara kerjanya membantu Anda mengoptimalkan strategi penyimpanan cache Anda. Tiga prinsip inti:-
Kunci cache bersifat kumulatif: Ketika Anda secara eksplisit menyimpan blok dalam cache dengan
cache_control, kunci hash cache dihasilkan dengan melakukan hash semua blok sebelumnya dalam percakapan secara berurutan. Ini berarti cache untuk setiap blok bergantung pada semua konten yang datang sebelumnya. - Pemeriksaan berurutan mundur: Sistem memeriksa cache hit dengan bekerja mundur dari titik henti eksplisit Anda, memeriksa setiap blok sebelumnya dalam urutan terbalik. Ini memastikan Anda mendapatkan cache hit terpanjang yang mungkin.
-
Jendela lookback 20 blok: Sistem hanya memeriksa hingga 20 blok sebelum setiap titik henti
cache_controleksplisit. Setelah memeriksa 20 blok tanpa kecocokan, sistem berhenti memeriksa dan beralih ke titik henti eksplisit berikutnya (jika ada).
cache_control hanya pada blok 30:
- Jika Anda mengirim blok 31 tanpa perubahan pada blok sebelumnya: Sistem memeriksa blok 30 (cocok!). Anda mendapatkan cache hit pada blok 30, dan hanya blok 31 yang perlu diproses.
- Jika Anda memodifikasi blok 25 dan mengirim blok 31: Sistem memeriksa mundur dari blok 30 → 29 → 28… → 25 (tidak cocok) → 24 (cocok!). Karena blok 24 belum berubah, Anda mendapatkan cache hit pada blok 24, dan hanya blok 25-30 yang perlu diproses ulang.
-
Jika Anda memodifikasi blok 5 dan mengirim blok 31: Sistem memeriksa mundur dari blok 30 → 29 → 28… → 11 (pemeriksaan #20). Setelah 20 pemeriksaan tanpa menemukan kecocokan, sistem berhenti mencari. Karena blok 5 berada di luar jendela 20 blok, tidak ada cache hit dan semua blok perlu diproses ulang. Namun, jika Anda telah menetapkan titik henti
cache_controleksplisit pada blok 5, sistem akan terus memeriksa dari titik henti itu: blok 5 (tidak cocok) → blok 4 (cocok!). Ini memungkinkan cache hit pada blok 4, menunjukkan mengapa Anda harus menempatkan titik henti sebelum konten yang dapat diedit.
Kapan menggunakan beberapa titik henti
Anda dapat menentukan hingga 4 titik henti cache jika Anda ingin:- Menyimpan bagian berbeda yang berubah pada frekuensi berbeda dalam cache (misalnya, alat jarang berubah, tetapi konteks diperbarui setiap hari)
- Memiliki kontrol lebih besar atas apa yang disimpan dalam cache
- Memastikan penyimpanan cache untuk konten lebih dari 20 blok sebelum titik henti cache Anda
- Menempatkan titik henti sebelum konten yang dapat diedit untuk menjamin cache hit bahkan ketika perubahan terjadi di luar jendela 20 blok
Batasan cache
Panjang prompt yang dapat disimpan dalam cache minimum adalah:- 1024 token untuk Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4.5, Claude Sonnet 4, Claude Sonnet 3.7 (deprecated), dan Claude Opus 3 (deprecated)
- 4096 token untuk Claude Haiku 4.5
- 2048 token untuk Claude Haiku 3.5 dan Claude Haiku 3
cache_control. Permintaan apa pun untuk menyimpan lebih sedikit dari jumlah token ini dalam cache akan diproses tanpa penyimpanan cache. Untuk melihat apakah prompt disimpan dalam cache, lihat field penggunaan respons.
Untuk permintaan bersamaan, perhatikan bahwa entri cache hanya tersedia setelah respons pertama dimulai. Jika Anda memerlukan cache hit untuk permintaan paralel, tunggu respons pertama sebelum mengirim permintaan berikutnya.
Saat ini, “ephemeral” adalah satu-satunya jenis cache yang didukung, yang secara default memiliki masa pakai 5 menit.
Memahami biaya titik henti cache
Titik henti cache itu sendiri tidak menambah biaya apa pun. Anda hanya dikenakan biaya untuk:- Penulisan cache: Ketika konten baru ditulis ke cache (25% lebih banyak dari token input dasar untuk TTL 5 menit)
- Pembacaan cache: Ketika konten yang disimpan dalam cache digunakan (10% dari harga token input dasar)
- Token input reguler: Untuk konten apa pun yang tidak disimpan dalam cache
cache_control tidak meningkatkan biaya Anda - Anda masih membayar jumlah yang sama berdasarkan konten apa yang benar-benar disimpan dalam cache dan dibaca. Titik henti hanya memberi Anda kontrol atas bagian mana yang dapat disimpan dalam cache secara independen.
Apa yang dapat disimpan dalam cache
Sebagian besar blok dalam permintaan dapat ditunjuk untuk penyimpanan cache dengancache_control. Ini termasuk:
- Alat: Definisi alat dalam array
tools - Pesan sistem: Blok konten dalam array
system - Pesan teks: Blok konten dalam array
messages.content, untuk putaran pengguna dan asisten - Gambar & Dokumen: Blok konten dalam array
messages.content, dalam putaran pengguna - Penggunaan alat dan hasil alat: Blok konten dalam array
messages.content, dalam putaran pengguna dan asisten
cache_control untuk mengaktifkan penyimpanan cache untuk bagian permintaan itu.
Apa yang tidak dapat disimpan dalam cache
Meskipun sebagian besar blok permintaan dapat disimpan dalam cache, ada beberapa pengecualian:-
Blok pemikiran tidak dapat disimpan dalam cache secara langsung dengan
cache_control. Namun, blok pemikiran DAPAT disimpan dalam cache bersama konten lain ketika muncul dalam putaran asisten sebelumnya. Ketika disimpan dengan cara ini, mereka MENGHITUNG sebagai token input ketika dibaca dari cache. - Blok sub-konten (seperti citations) itu sendiri tidak dapat disimpan dalam cache secara langsung. Sebagai gantinya, simpan blok tingkat atas dalam cache. Dalam kasus kutipan, blok konten dokumen tingkat atas yang berfungsi sebagai materi sumber untuk kutipan dapat disimpan dalam cache. Ini memungkinkan Anda menggunakan penyimpanan cache prompt dengan kutipan secara efektif dengan menyimpan dokumen yang akan direferensikan oleh kutipan dalam cache.
- Blok teks kosong tidak dapat disimpan dalam cache.
Apa yang membatalkan cache
Modifikasi konten yang disimpan dalam cache dapat membatalkan sebagian atau seluruh cache. Seperti dijelaskan dalam Menyusun prompt Anda, cache mengikuti hierarki:tools → system → messages. Perubahan di setiap level membatalkan level itu dan semua level berikutnya.
Tabel berikut menunjukkan bagian cache mana yang dibatalkan oleh berbagai jenis perubahan. ✘ menunjukkan bahwa cache dibatalkan, sementara ✓ menunjukkan bahwa cache tetap valid.
| Apa yang berubah | Cache alat | Cache sistem | Cache pesan | Dampak |
|---|---|---|---|---|
| Definisi alat | ✘ | ✘ | ✘ | Memodifikasi definisi alat (nama, deskripsi, parameter) membatalkan seluruh cache |
| Tombol pencarian web | ✓ | ✘ | ✘ | Mengaktifkan/menonaktifkan pencarian web memodifikasi prompt sistem |
| Tombol kutipan | ✓ | ✘ | ✘ | Mengaktifkan/menonaktifkan kutipan memodifikasi prompt sistem |
| Pilihan alat | ✓ | ✓ | ✘ | Perubahan pada parameter tool_choice hanya mempengaruhi blok pesan |
| Gambar | ✓ | ✓ | ✘ | Menambahkan/menghapus gambar di mana pun dalam prompt mempengaruhi blok pesan |
| Parameter pemikiran | ✓ | ✓ | ✘ | Perubahan pada pengaturan pemikiran yang diperluas (aktifkan/nonaktifkan, anggaran) mempengaruhi blok pesan |
| Hasil non-alat yang diteruskan ke permintaan pemikiran yang diperluas | ✓ | ✓ | ✘ | Ketika hasil non-alat diteruskan dalam permintaan saat pemikiran yang diperluas diaktifkan, semua blok pemikiran yang sebelumnya disimpan dalam cache dihapus dari konteks, dan pesan apa pun dalam konteks yang mengikuti blok pemikiran tersebut dihapus dari cache. Untuk detail lebih lanjut, lihat Penyimpanan cache dengan blok pemikiran. |
Melacak kinerja cache
Pantau kinerja cache menggunakan field respons API ini, dalamusage dalam respons (atau event message_start jika streaming):
cache_creation_input_tokens: Jumlah token yang ditulis ke cache saat membuat entri baru.cache_read_input_tokens: Jumlah token yang diambil dari cache untuk permintaan ini.input_tokens: Jumlah token input yang tidak dibaca dari atau digunakan untuk membuat cache.
Praktik terbaik untuk penyimpanan cache yang efektif
Untuk mengoptimalkan kinerja penyimpanan cache prompt:- Simpan konten stabil dan dapat digunakan kembali seperti instruksi sistem, informasi latar belakang, konteks besar, atau definisi alat yang sering digunakan dalam cache.
- Tempatkan konten yang disimpan dalam cache di awal prompt untuk kinerja terbaik.
- Gunakan titik henti cache secara strategis untuk memisahkan bagian awalan yang berbeda yang dapat disimpan dalam cache.
- Tetapkan titik henti cache di akhir percakapan dan tepat sebelum konten yang dapat diedit untuk memaksimalkan tingkat cache hit, terutama saat bekerja dengan prompt yang memiliki lebih dari 20 blok konten.
- Secara teratur analisis tingkat cache hit dan sesuaikan strategi Anda sesuai kebutuhan.
Mengoptimalkan untuk kasus penggunaan yang berbeda
Sesuaikan strategi penyimpanan cache prompt Anda dengan skenario Anda:- Agen percakapan: Kurangi biaya dan latensi untuk percakapan yang diperpanjang, terutama yang memiliki instruksi panjang atau dokumen yang diunggah.
- Asisten pengkodean: Tingkatkan pelengkapan otomatis dan Q&A basis kode dengan menyimpan bagian yang relevan atau versi ringkasan basis kode dalam prompt.
- Pemrosesan dokumen besar: Gabungkan materi bentuk panjang lengkap termasuk gambar dalam prompt Anda tanpa meningkatkan latensi respons.
- Set instruksi terperinci: Bagikan daftar instruksi, prosedur, dan contoh yang luas untuk menyempurnakan respons Claude. Pengembang sering menyertakan satu atau dua contoh dalam prompt, tetapi dengan penyimpanan cache prompt Anda dapat mencapai kinerja yang lebih baik dengan menyertakan 20+ contoh beragam jawaban berkualitas tinggi.
- Penggunaan alat agentic: Tingkatkan kinerja untuk skenario yang melibatkan beberapa panggilan alat dan perubahan kode berulang, di mana setiap langkah biasanya memerlukan panggilan API baru.
- Berbicara dengan buku, makalah, dokumentasi, transkrip podcast, dan konten bentuk panjang lainnya: Hidupkan basis pengetahuan apa pun dengan menyematkan seluruh dokumen ke dalam prompt, dan biarkan pengguna mengajukan pertanyaan kepadanya.
Pemecahan masalah masalah umum
Jika mengalami perilaku yang tidak terduga:- Pastikan bagian yang disimpan dalam cache identik dan ditandai dengan cache_control di lokasi yang sama di seluruh panggilan
- Periksa bahwa panggilan dilakukan dalam masa pakai cache (5 menit secara default)
- Verifikasi bahwa
tool_choicedan penggunaan gambar tetap konsisten di antara panggilan - Validasi bahwa Anda menyimpan setidaknya jumlah token minimum dalam cache
- Sistem secara otomatis memeriksa cache hit pada batas blok konten sebelumnya (hingga ~20 blok sebelum titik henti Anda). Untuk prompt dengan lebih dari 20 blok konten, Anda mungkin memerlukan parameter
cache_controltambahan lebih awal dalam prompt untuk memastikan semua konten dapat disimpan dalam cache - Verifikasi bahwa kunci dalam blok konten
tool_useAnda memiliki urutan yang stabil karena beberapa bahasa (misalnya Swift, Go) mengacak urutan kunci selama konversi JSON, memecahkan cache
tool_choice atau kehadiran/ketiadaan gambar di mana pun dalam prompt akan membatalkan cache, memerlukan entri cache baru untuk dibuat. Untuk detail lebih lanjut tentang pembatalan cache, lihat Apa yang membatalkan cache.Penyimpanan cache dengan blok pemikiran
Ketika menggunakan pemikiran yang diperluas dengan penyimpanan cache prompt, blok pemikiran memiliki perilaku khusus: Penyimpanan cache otomatis bersama konten lain: Meskipun blok pemikiran tidak dapat secara eksplisit ditandai dengancache_control, mereka disimpan dalam cache sebagai bagian dari konten permintaan ketika Anda membuat panggilan API berikutnya dengan hasil alat. Ini biasanya terjadi selama penggunaan alat ketika Anda meneruskan blok pemikiran kembali untuk melanjutkan percakapan.
Penghitungan token input: Ketika blok pemikiran dibaca dari cache, mereka menghitung sebagai token input dalam metrik penggunaan Anda. Ini penting untuk perhitungan biaya dan anggaran token.
Pola pembatalan cache:
- Cache tetap valid ketika hanya hasil alat yang disediakan sebagai pesan pengguna
- Cache dibatalkan ketika konten pengguna non-hasil-alat ditambahkan, menyebabkan semua blok pemikiran sebelumnya dihapus
- Perilaku penyimpanan cache ini terjadi bahkan tanpa penanda
cache_controleksplisit
Penyimpanan cache dan berbagi
- Isolasi Organisasi: Cache terisolasi antara organisasi. Organisasi yang berbeda tidak pernah berbagi cache, bahkan jika mereka menggunakan prompt yang identik.
- Pencocokan Tepat: Cache hit memerlukan segmen prompt yang 100% identik, termasuk semua teks dan gambar hingga dan termasuk blok yang ditandai dengan kontrol cache.
- Pembuatan Token Output: Penyimpanan cache prompt tidak memiliki efek pada pembuatan token output. Respons yang Anda terima akan identik dengan apa yang Anda dapatkan jika penyimpanan cache prompt tidak digunakan.
Durasi cache 1 jam
Jika Anda menemukan bahwa 5 menit terlalu singkat, Anthropic juga menawarkan durasi cache 1 jam dengan biaya tambahan. Untuk menggunakan cache yang diperluas, sertakanttl dalam definisi cache_control seperti ini:
cache_creation_input_tokens saat ini sama dengan jumlah nilai dalam objek cache_creation.
Kapan menggunakan cache 1 jam
Jika Anda memiliki prompt yang digunakan pada ritme reguler (yaitu, prompt sistem yang digunakan lebih sering dari setiap 5 menit), terus gunakan cache 5 menit, karena ini akan terus disegarkan tanpa biaya tambahan. Cache 1 jam paling baik digunakan dalam skenario berikut:- Ketika Anda memiliki prompt yang kemungkinan digunakan kurang sering dari 5 menit, tetapi lebih sering dari setiap jam. Misalnya, ketika agen samping agentic akan memakan waktu lebih dari 5 menit, atau ketika menyimpan percakapan obrolan panjang dengan pengguna dan Anda umumnya mengharapkan pengguna itu mungkin tidak merespons dalam 5 menit berikutnya.
- Ketika latensi penting dan prompt tindak lanjut Anda mungkin dikirim di luar 5 menit.
- Ketika Anda ingin meningkatkan pemanfaatan batas laju Anda, karena cache hit tidak dikurangkan dari batas laju Anda.
Mencampur TTL yang berbeda
Anda dapat menggunakan kontrol cache 1 jam dan 5 menit dalam permintaan yang sama, tetapi dengan batasan penting: Entri cache dengan TTL lebih lama harus muncul sebelum TTL lebih pendek (yaitu, entri cache 1 jam harus muncul sebelum entri cache 5 menit apa pun). Ketika mencampur TTL, kami menentukan tiga lokasi penagihan dalam prompt Anda:- Posisi
A: Jumlah token pada cache hit tertinggi (atau 0 jika tidak ada hit). - Posisi
B: Jumlah token pada blokcache_control1 jam tertinggi setelahA(atau sama denganAjika tidak ada). - Posisi
C: Jumlah token pada blokcache_controlterakhir.
B dan/atau C lebih besar dari A, mereka harus berupa cache miss, karena A adalah cache hit tertinggi.- Token pembacaan cache untuk
A. - Token penulisan cache 1 jam untuk
(B - A). - Token penulisan cache 5 menit untuk
(C - B).
Contoh penyimpanan cache prompt
Untuk membantu Anda memulai dengan penyimpanan cache prompt, kami telah menyiapkan buku resep penyimpanan cache prompt dengan contoh terperinci dan praktik terbaik. Di bawah ini, kami telah menyertakan beberapa cuplikan kode yang menampilkan berbagai pola penyimpanan cache prompt. Contoh-contoh ini menunjukkan cara mengimplementasikan penyimpanan cache dalam skenario berbeda, membantu Anda memahami aplikasi praktis dari fitur ini:Contoh penyimpanan cache konteks besar
Contoh penyimpanan cache konteks besar
input_tokens: Jumlah token dalam pesan pengguna sajacache_creation_input_tokens: Jumlah token dalam seluruh pesan sistem, termasuk dokumen hukumcache_read_input_tokens: 0 (tidak ada cache hit pada permintaan pertama)
input_tokens: Jumlah token dalam pesan pengguna sajacache_creation_input_tokens: 0 (tidak ada pembuatan cache baru)cache_read_input_tokens: Jumlah token dalam seluruh pesan sistem yang disimpan dalam cache
Penyimpanan cache definisi alat
Penyimpanan cache definisi alat
cache_control ditempatkan pada alat terakhir (get_time) untuk menunjuk semua alat sebagai bagian dari awalan statis.Ini berarti semua definisi alat, termasuk get_weather dan alat lain apa pun yang ditentukan sebelum get_time, akan disimpan dalam cache sebagai satu awalan.Pendekatan ini berguna ketika Anda memiliki set alat yang konsisten yang ingin Anda gunakan kembali di berbagai permintaan tanpa memproses ulang setiap kali.Untuk permintaan pertama:input_tokens: Jumlah token dalam pesan penggunacache_creation_input_tokens: Jumlah token dalam semua definisi alat dan prompt sistemcache_read_input_tokens: 0 (tidak ada cache hit pada permintaan pertama)
input_tokens: Jumlah token dalam pesan penggunacache_creation_input_tokens: 0 (tidak ada pembuatan cache baru)cache_read_input_tokens: Jumlah token dalam semua definisi alat dan prompt sistem yang disimpan dalam cache
Melanjutkan percakapan multi-putaran
Melanjutkan percakapan multi-putaran
cache_control sehingga percakapan dapat disimpan dalam cache secara bertahap. Sistem akan secara otomatis mencari dan menggunakan awalan yang sebelumnya disimpan dalam cache paling lama untuk pesan tindak lanjut. Artinya, blok yang sebelumnya ditandai dengan blok cache_control kemudian tidak ditandai dengan ini, tetapi mereka masih akan dianggap sebagai cache hit (dan juga penyegaran cache!) jika mereka terkena dalam 5 menit.Selain itu, perhatikan bahwa parameter cache_control ditempatkan pada pesan sistem. Ini untuk memastikan bahwa jika ini dikeluarkan dari cache (setelah tidak digunakan selama lebih dari 5 menit), itu akan ditambahkan kembali ke cache pada permintaan berikutnya.Pendekatan ini berguna untuk mempertahankan konteks dalam percakapan yang sedang berlangsung tanpa berulang kali memproses informasi yang sama.Ketika ini diatur dengan benar, Anda harus melihat yang berikut dalam respons penggunaan setiap permintaan:input_tokens: Jumlah token dalam pesan pengguna baru (akan minimal)cache_creation_input_tokens: Jumlah token dalam putaran asisten dan pengguna barucache_read_input_tokens: Jumlah token dalam percakapan hingga putaran sebelumnya
Menyatukannya semua: Beberapa titik henti cache
Menyatukannya semua: Beberapa titik henti cache
-
Cache alat (titik henti cache 1): Parameter
cache_controlpada definisi alat terakhir menyimpan semua definisi alat dalam cache. - Cache instruksi yang dapat digunakan kembali (titik henti cache 2): Instruksi statis dalam prompt sistem disimpan dalam cache secara terpisah. Instruksi ini jarang berubah di antara permintaan.
- Cache konteks RAG (titik henti cache 3): Dokumen basis pengetahuan disimpan dalam cache secara independen, memungkinkan Anda memperbarui dokumen RAG tanpa membatalkan cache alat atau instruksi.
-
Cache riwayat percakapan (titik henti cache 4): Respons asisten ditandai dengan
cache_controluntuk mengaktifkan penyimpanan cache bertahap percakapan saat berkembang.
- Jika Anda hanya memperbarui pesan pengguna terakhir, keempat segmen cache digunakan kembali
- Jika Anda memperbarui dokumen RAG tetapi menyimpan alat dan instruksi yang sama, dua segmen cache pertama digunakan kembali
- Jika Anda mengubah percakapan tetapi menyimpan alat, instruksi, dan dokumen yang sama, tiga segmen pertama digunakan kembali
- Setiap titik henti cache dapat dibatalkan secara independen berdasarkan apa yang berubah dalam aplikasi Anda
input_tokens: Token dalam pesan pengguna terakhircache_creation_input_tokens: Token dalam semua segmen yang disimpan dalam cache (alat + instruksi + dokumen RAG + riwayat percakapan)cache_read_input_tokens: 0 (tidak ada cache hit)
input_tokens: Token dalam pesan pengguna baru sajacache_creation_input_tokens: Token baru apa pun yang ditambahkan ke riwayat percakapancache_read_input_tokens: Semua token yang sebelumnya disimpan dalam cache (alat + instruksi + dokumen RAG + percakapan sebelumnya)
- Aplikasi RAG dengan konteks dokumen besar
- Sistem agen yang menggunakan beberapa alat
- Percakapan yang berjalan lama yang perlu mempertahankan konteks
- Aplikasi yang perlu mengoptimalkan bagian berbeda dari prompt secara independen
FAQ
Apakah saya memerlukan beberapa titik henti cache atau satu di akhir sudah cukup?
Apakah saya memerlukan beberapa titik henti cache atau satu di akhir sudah cukup?
- Anda memiliki lebih dari 20 blok konten sebelum titik cache yang diinginkan
- Anda ingin menyimpan bagian yang diperbarui pada frekuensi berbeda dalam cache secara independen
- Anda memerlukan kontrol eksplisit atas apa yang disimpan dalam cache untuk optimasi biaya
Apakah titik henti cache menambah biaya ekstra?
Apakah titik henti cache menambah biaya ekstra?
- Menulis konten ke cache (25% lebih banyak dari token input dasar untuk TTL 5 menit)
- Membaca dari cache (10% dari harga token input dasar)
- Token input reguler untuk konten yang tidak disimpan dalam cache
Berapa lama masa pakai cache?
Berapa lama masa pakai cache?
Berapa banyak titik henti cache yang dapat saya gunakan?
Berapa banyak titik henti cache yang dapat saya gunakan?
cache_control) dalam prompt Anda.Apakah penyimpanan cache prompt tersedia untuk semua model?
Apakah penyimpanan cache prompt tersedia untuk semua model?
Bagaimana cara kerja penyimpanan cache prompt dengan pemikiran yang diperluas?
Bagaimana cara kerja penyimpanan cache prompt dengan pemikiran yang diperluas?
Bagaimana cara mengaktifkan penyimpanan cache prompt?
Bagaimana cara mengaktifkan penyimpanan cache prompt?
cache_control dalam permintaan API Anda.Bisakah saya menggunakan penyimpanan cache prompt dengan fitur API lainnya?
Bisakah saya menggunakan penyimpanan cache prompt dengan fitur API lainnya?
Bagaimana penyimpanan cache prompt mempengaruhi harga?
Bagaimana penyimpanan cache prompt mempengaruhi harga?
Bisakah saya menghapus cache secara manual?
Bisakah saya menghapus cache secara manual?
Bagaimana cara melacak efektivitas strategi penyimpanan cache saya?
Bagaimana cara melacak efektivitas strategi penyimpanan cache saya?
cache_creation_input_tokens dan cache_read_input_tokens dalam respons API.Apa yang dapat memecahkan cache?
Apa yang dapat memecahkan cache?
Bagaimana penyimpanan cache prompt menangani privasi dan pemisahan data?
Bagaimana penyimpanan cache prompt menangani privasi dan pemisahan data?
- Kunci cache dihasilkan menggunakan hash kriptografi prompt hingga titik kontrol cache. Ini berarti hanya permintaan dengan prompt identik yang dapat mengakses cache tertentu.
- Cache bersifat spesifik organisasi. Pengguna dalam organisasi yang sama dapat mengakses cache yang sama jika mereka menggunakan prompt identik, tetapi cache tidak dibagikan di seluruh organisasi yang berbeda, bahkan untuk prompt identik.
- Mekanisme penyimpanan cache dirancang untuk mempertahankan integritas dan privasi setiap percakapan atau konteks unik.
-
Aman untuk menggunakan
cache_controldi mana pun dalam prompt Anda. Untuk efisiensi biaya, lebih baik mengecualikan bagian yang sangat variabel (misalnya, input arbitrer pengguna) dari penyimpanan cache.
Bisakah saya menggunakan penyimpanan cache prompt dengan Batches API?
Bisakah saya menggunakan penyimpanan cache prompt dengan Batches API?
- Kumpulkan set permintaan pesan yang memiliki awalan bersama.
- Kirim permintaan batch dengan hanya satu permintaan yang memiliki awalan bersama ini dan blok cache 1 jam. Ini akan ditulis ke cache 1 jam.
- Segera setelah selesai, kirimkan permintaan lainnya. Anda harus memantau pekerjaan untuk mengetahui kapan selesai.
Mengapa saya melihat kesalahan `AttributeError: 'Beta' object has no attribute 'prompt_caching'` di Python?
Mengapa saya melihat kesalahan `AttributeError: 'Beta' object has no attribute 'prompt_caching'` di Python?
Mengapa saya melihat 'TypeError: Cannot read properties of undefined (reading 'messages')'?
Mengapa saya melihat 'TypeError: Cannot read properties of undefined (reading 'messages')'?