Penyimpanan cache prompt adalah fitur canggih yang mengoptimalkan penggunaan API Anda dengan memungkinkan melanjutkan dari awalan tertentu dalam prompt Anda. Pendekatan ini secara signifikan mengurangi waktu pemrosesan dan biaya untuk tugas berulang atau prompt dengan elemen yang konsisten.
Berikut adalah contoh cara mengimplementasikan penyimpanan cache prompt dengan Messages API menggunakan blok cache_control:
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 1024,
"system": [
{
"type": "text",
"text": "You are an AI assistant tasked with analyzing literary works. Your goal is to provide insightful commentary on themes, characters, and writing style.\n"
},
{
"type": "text",
"text": "<the entire contents of Pride and Prejudice>",
"cache_control": {"type": "ephemeral"}
}
],
"messages": [
{
"role": "user",
"content": "Analyze the major themes in Pride and Prejudice."
}
]
}'
# Call the model again with the same inputs up to the cache checkpoint
curl https://api.anthropic.com/v1/messages # rest of input{"cache_creation_input_tokens":188086,"cache_read_input_tokens":0,"input_tokens":21,"output_tokens":393}
{"cache_creation_input_tokens":0,"cache_read_input_tokens":188086,"input_tokens":21,"output_tokens":393}Dalam contoh ini, seluruh teks "Pride and Prejudice" disimpan dalam cache menggunakan parameter cache_control. Ini memungkinkan penggunaan kembali teks besar ini di berbagai panggilan API tanpa memproses ulang setiap kali. Mengubah hanya pesan pengguna memungkinkan Anda mengajukan berbagai pertanyaan tentang buku sambil memanfaatkan konten yang disimpan dalam cache, menghasilkan respons yang lebih cepat dan efisiensi yang ditingkatkan.
Ketika Anda mengirim permintaan dengan penyimpanan cache prompt diaktifkan:
Ini sangat berguna untuk:
Secara default, cache memiliki masa pakai 5 menit. Cache disegarkan tanpa biaya tambahan setiap kali konten yang disimpan dalam cache digunakan.
Jika Anda menemukan bahwa 5 menit terlalu singkat, Anthropic juga menawarkan durasi cache 1 jam dengan biaya tambahan.
Untuk informasi lebih lanjut, lihat durasi cache 1 jam.
Penyimpanan cache prompt menyimpan awalan lengkap dalam cache
Penyimpanan cache prompt mereferensikan seluruh prompt - tools, system, dan messages (dalam urutan itu) hingga dan termasuk blok yang ditunjuk dengan cache_control.
Penyimpanan cache prompt memperkenalkan struktur penetapan 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.5 | $5 / MTok | $6.25 / MTok | $10 / MTok | $0.50 / MTok | $25 / MTok |
| 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 |
Tabel di atas mencerminkan pengganda penetapan harga berikut untuk penyimpanan cache prompt:
Penyimpanan cache prompt adalah fitur canggih yang mengoptimalkan penggunaan API Anda dengan memungkinkan melanjutkan dari awalan tertentu dalam prompt Anda. Pendekatan ini secara signifikan mengurangi waktu pemrosesan dan biaya untuk tugas berulang atau prompt dengan elemen yang konsisten.
Berikut adalah contoh cara mengimplementasikan penyimpanan cache prompt dengan Messages API menggunakan blok cache_control:
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 1024,
"system": [
{
"type": "text",
"text": "You are an AI assistant tasked with analyzing literary works. Your goal is to provide insightful commentary on themes, characters, and writing style.\n"
},
{
"type": "text",
"text": "<the entire contents of Pride and Prejudice>",
"cache_control": {"type": "ephemeral"}
}
],
"messages": [
{
"role": "user",
"content": "Analyze the major themes in Pride and Prejudice."
}
]
}'
# Call the model again with the same inputs up to the cache checkpoint
curl https://api.anthropic.com/v1/messages # rest of input{"cache_creation_input_tokens":188086,"cache_read_input_tokens":0,"input_tokens":21,"output_tokens":393}
{"cache_creation_input_tokens":0,"cache_read_input_tokens":188086,"input_tokens":21,"output_tokens":393}Dalam contoh ini, seluruh teks "Pride and Prejudice" disimpan dalam cache menggunakan parameter cache_control. Ini memungkinkan penggunaan kembali teks besar ini di berbagai panggilan API tanpa memproses ulang setiap kali. Mengubah hanya pesan pengguna memungkinkan Anda mengajukan berbagai pertanyaan tentang buku sambil memanfaatkan konten yang disimpan dalam cache, menghasilkan respons yang lebih cepat dan efisiensi yang ditingkatkan.
Ketika Anda mengirim permintaan dengan penyimpanan cache prompt diaktifkan:
Ini sangat berguna untuk:
Secara default, cache memiliki masa pakai 5 menit. Cache disegarkan tanpa biaya tambahan setiap kali konten yang disimpan dalam cache digunakan.
Jika Anda menemukan bahwa 5 menit terlalu singkat, Anthropic juga menawarkan durasi cache 1 jam dengan biaya tambahan.
Untuk informasi lebih lanjut, lihat durasi cache 1 jam.
Penyimpanan cache prompt menyimpan awalan lengkap dalam cache
Penyimpanan cache prompt mereferensikan seluruh prompt - tools, system, dan messages (dalam urutan itu) hingga dan termasuk blok yang ditunjuk dengan cache_control.
Penyimpanan cache prompt memperkenalkan struktur penetapan 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.5 | $5 / MTok | $6.25 / MTok | $10 / MTok | $0.50 / MTok | $25 / MTok |
| 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 |
Tabel di atas mencerminkan pengganda penetapan harga berikut untuk penyimpanan cache prompt:
Penyimpanan cache prompt saat ini didukung pada:
Prompt caching adalah fitur yang kuat yang mengoptimalkan penggunaan API Anda dengan memungkinkan melanjutkan dari prefiks tertentu dalam prompt Anda. Pendekatan ini secara signifikan mengurangi waktu pemrosesan dan biaya untuk tugas berulang atau prompt dengan elemen yang konsisten.
Berikut adalah contoh cara mengimplementasikan prompt caching dengan Messages API menggunakan blok cache_control:
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 1024,
"system": [
{
"type": "text",
"text": "You are an AI assistant tasked with analyzing literary works. Your goal is to provide insightful commentary on themes, characters, and writing style.\n"
},
{
"type": "text",
"text": "<the entire contents of Pride and Prejudice>",
"cache_control": {"type": "ephemeral"}
}
],
"messages": [
{
"role": "user",
"content": "Analyze the major themes in Pride and Prejudice."
}
]
}'
# Call the model again with the same inputs up to the cache checkpoint
curl https://api.anthropic.com/v1/messages # rest of input{"cache_creation_input_tokens":188086,"cache_read_input_tokens":0,"input_tokens":21,"output_tokens":393}
{"cache_creation_input_tokens":0,"cache_read_input_tokens":188086,"input_tokens":21,"output_tokens":393}Dalam contoh ini, seluruh teks "Pride and Prejudice" di-cache menggunakan parameter cache_control. Ini memungkinkan penggunaan kembali 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 di-cache, yang menghasilkan respons lebih cepat dan efisiensi yang ditingkatkan.
Ketika Anda mengirim permintaan dengan prompt caching diaktifkan:
Ini sangat berguna untuk:
Secara default, cache memiliki masa pakai 5 menit. Cache disegarkan tanpa biaya tambahan setiap kali konten yang di-cache digunakan.
Jika Anda merasa bahwa 5 menit terlalu singkat, Anthropic juga menawarkan durasi cache 1 jam dengan biaya tambahan.
Untuk informasi lebih lanjut, lihat durasi cache 1 jam.
Prompt caching men-cache prefiks lengkap
Prompt caching mereferensikan seluruh prompt - tools, system, dan messages (dalam urutan itu) hingga dan termasuk blok yang ditunjuk dengan cache_control.
Prompt caching 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.5 | $5 / MTok | $6.25 / MTok | $10 / MTok | $0.50 / MTok | $25 / MTok |
| 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 |
Tabel di atas mencerminkan pengganda harga berikut untuk prompt caching:
Prompt caching saat ini didukung pada:
Tempatkan konten statis (definisi alat, instruksi sistem, konteks, contoh) di awal prompt Anda. Tandai akhir konten yang dapat digunakan kembali untuk caching menggunakan parameter cache_control.
Prefiks cache dibuat dalam urutan berikut: tools, system, kemudian messages. Urutan ini membentuk hierarki di mana setiap level dibangun di atas yang sebelumnya.
Anda dapat menggunakan hanya satu titik henti cache di akhir konten statis Anda, dan sistem akan secara otomatis menemukan urutan blok yang di-cache paling panjang yang cocok. Memahami cara kerjanya membantu Anda mengoptimalkan strategi caching Anda.
Tiga prinsip inti:
Kunci cache bersifat kumulatif: Ketika Anda secara eksplisit men-cache blok 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 hits 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_control eksplisit. Setelah memeriksa 20 blok tanpa kecocokan, sistem berhenti memeriksa dan beralih ke titik henti eksplisit berikutnya (jika ada).
Contoh: Memahami jendela lookback
Pertimbangkan percakapan dengan 30 blok konten di mana Anda menetapkan 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 di 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 di 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 yang terjadi dan semua blok perlu diproses ulang. Namun, jika Anda telah menetapkan titik henti cache_control eksplisit pada blok 5, sistem akan terus memeriksa dari titik henti itu: blok 5 (tidak cocok) → blok 4 (cocok!). Ini memungkinkan cache hit di blok 4, menunjukkan mengapa Anda harus menempatkan titik henti sebelum blok konten yang dapat diedit.
Kesimpulan utama: Selalu tetapkan titik henti cache eksplisit di akhir percakapan Anda untuk memaksimalkan peluang cache hits. Selain itu, tetapkan titik henti tepat sebelum blok konten yang mungkin dapat diedit untuk memastikan bagian-bagian tersebut dapat di-cache secara independen.
Anda dapat menentukan hingga 4 titik henti cache jika Anda ingin:
Batasan penting: Jika prompt Anda memiliki lebih dari 20 blok konten sebelum titik henti cache Anda, dan Anda memodifikasi konten lebih awal dari 20 blok tersebut, Anda tidak akan mendapatkan cache hit kecuali Anda menambahkan titik henti eksplisit tambahan lebih dekat ke konten itu.
Panjang prompt yang dapat di-cache minimum adalah:
Prompt yang lebih pendek tidak dapat di-cache, bahkan jika ditandai dengan cache_control. Permintaan apa pun untuk men-cache lebih sedikit dari jumlah token ini akan diproses tanpa caching. Untuk melihat apakah prompt di-cache, lihat field penggunaan respons.
Untuk permintaan bersamaan, perhatikan bahwa entri cache hanya tersedia setelah respons pertama dimulai. Jika Anda memerlukan cache hits 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.
Panjang prompt yang dapat di-cache minimum adalah:
Prompt yang lebih pendek tidak dapat di-cache, bahkan jika ditandai dengan cache_control. Permintaan apa pun untuk men-cache lebih sedikit dari jumlah token ini akan diproses tanpa caching. Untuk melihat apakah prompt di-cache, lihat field penggunaan respons.
Untuk permintaan bersamaan, perhatikan bahwa entri cache hanya tersedia setelah respons pertama dimulai. Jika Anda memerlukan cache hits 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.
Titik henti cache itu sendiri tidak menambah biaya apa pun. Anda hanya dikenakan biaya untuk:
Menambahkan lebih banyak titik henti cache_control tidak meningkatkan biaya Anda - Anda masih membayar jumlah yang sama berdasarkan konten apa yang sebenarnya di-cache dan dibaca. Titik henti hanya memberi Anda kontrol atas bagian mana yang dapat di-cache secara independen.
Panjang prompt yang dapat di-cache minimum adalah:
Prompt yang lebih pendek tidak dapat di-cache, bahkan jika ditandai dengan cache_control. Permintaan apa pun untuk men-cache lebih sedikit dari jumlah token ini akan diproses tanpa caching. Untuk melihat apakah prompt di-cache, lihat field penggunaan respons.
Untuk permintaan bersamaan, perhatikan bahwa entri cache hanya tersedia setelah respons pertama dimulai. Jika Anda memerlukan cache hits 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.
Titik henti cache itu sendiri tidak menambah biaya apa pun. Anda hanya dikenakan biaya untuk:
Menambahkan lebih banyak titik henti cache_control tidak meningkatkan biaya Anda - Anda masih membayar jumlah yang sama berdasarkan konten apa yang sebenarnya di-cache dan dibaca. Titik henti hanya memberi Anda kontrol atas bagian mana yang dapat di-cache secara independen.
Sebagian besar blok dalam permintaan dapat ditunjuk untuk caching dengan cache_control. Ini termasuk:
toolssystemmessages.content, untuk putaran pengguna dan asistenmessages.content, dalam putaran penggunamessages.content, dalam putaran pengguna dan asistenSetiap elemen ini dapat ditandai dengan cache_control untuk mengaktifkan caching untuk bagian permintaan itu.
Panjang prompt yang dapat di-cache minimum adalah:
Prompt yang lebih pendek tidak dapat di-cache, bahkan jika ditandai dengan cache_control. Permintaan apa pun untuk men-cache lebih sedikit dari jumlah token ini akan diproses tanpa caching. Untuk melihat apakah prompt di-cache, lihat field penggunaan respons.
Untuk permintaan bersamaan, perhatikan bahwa entri cache hanya tersedia setelah respons pertama dimulai. Jika Anda memerlukan cache hits 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.
Titik henti cache itu sendiri tidak menambah biaya apa pun. Anda hanya dikenakan biaya untuk:
Menambahkan lebih banyak titik henti cache_control tidak meningkatkan biaya Anda - Anda masih membayar jumlah yang sama berdasarkan konten apa yang sebenarnya di-cache dan dibaca. Titik henti hanya memberi Anda kontrol atas bagian mana yang dapat di-cache secara independen.
Sebagian besar blok dalam permintaan dapat ditunjuk untuk caching dengan cache_control. Ini termasuk:
toolssystemmessages.content, untuk putaran pengguna dan asistenmessages.content, dalam putaran penggunamessages.content, dalam putaran pengguna dan asistenSetiap elemen ini dapat ditandai dengan cache_control untuk mengaktifkan caching untuk bagian permintaan itu.
Meskipun sebagian besar blok permintaan dapat di-cache, ada beberapa pengecualian:
Blok pemikiran tidak dapat di-cache secara langsung dengan cache_control. Namun, blok pemikiran DAPAT di-cache bersama konten lain ketika muncul dalam putaran asisten sebelumnya. Ketika di-cache dengan cara ini, mereka MENGHITUNG sebagai token input ketika dibaca dari cache.
Blok sub-konten (seperti citations) itu sendiri tidak dapat di-cache secara langsung. Sebagai gantinya, cache blok tingkat atas.
Dalam kasus kutipan, blok konten dokumen tingkat atas yang berfungsi sebagai materi sumber untuk kutipan dapat di-cache. Ini memungkinkan Anda menggunakan prompt caching dengan kutipan secara efektif dengan men-cache dokumen yang akan direferensikan oleh kutipan.
Blok teks kosong tidak dapat di-cache.
Panjang prompt yang dapat di-cache minimum adalah:
Prompt yang lebih pendek tidak dapat di-cache, bahkan jika ditandai dengan cache_control. Permintaan apa pun untuk men-cache lebih sedikit dari jumlah token ini akan diproses tanpa caching. Untuk melihat apakah prompt di-cache, lihat field penggunaan respons.
Untuk permintaan bersamaan, perhatikan bahwa entri cache hanya tersedia setelah respons pertama dimulai. Jika Anda memerlukan cache hits 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.
Titik henti cache itu sendiri tidak menambah biaya apa pun. Anda hanya dikenakan biaya untuk:
Menambahkan lebih banyak titik henti cache_control tidak meningkatkan biaya Anda - Anda masih membayar jumlah yang sama berdasarkan konten apa yang sebenarnya di-cache dan dibaca. Titik henti hanya memberi Anda kontrol atas bagian mana yang dapat di-cache secara independen.
Sebagian besar blok dalam permintaan dapat ditunjuk untuk caching dengan cache_control. Ini termasuk:
toolssystemmessages.content, untuk putaran pengguna dan asistenmessages.content, dalam putaran penggunamessages.content, dalam putaran pengguna dan asistenSetiap elemen ini dapat ditandai dengan cache_control untuk mengaktifkan caching untuk bagian permintaan itu.
Meskipun sebagian besar blok permintaan dapat di-cache, ada beberapa pengecualian:
Blok pemikiran tidak dapat di-cache secara langsung dengan cache_control. Namun, blok pemikiran DAPAT di-cache bersama konten lain ketika muncul dalam putaran asisten sebelumnya. Ketika di-cache dengan cara ini, mereka MENGHITUNG sebagai token input ketika dibaca dari cache.
Blok sub-konten (seperti citations) itu sendiri tidak dapat di-cache secara langsung. Sebagai gantinya, cache blok tingkat atas.
Dalam kasus kutipan, blok konten dokumen tingkat atas yang berfungsi sebagai materi sumber untuk kutipan dapat di-cache. Ini memungkinkan Anda menggunakan prompt caching dengan kutipan secara efektif dengan men-cache dokumen yang akan direferensikan oleh kutipan.
Blok teks kosong tidak dapat di-cache.
Modifikasi pada konten yang di-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 mana dari cache yang dibatalkan oleh berbagai jenis perubahan. ✘ menunjukkan bahwa cache dibatalkan, sementara ✓ menunjukkan bahwa cache tetap valid.
| Apa yang berubah | Cache Tools | Cache System | Cache Messages | Dampak |
|---|---|---|---|---|
| Definisi alat | ✘ | ✘ | ✘ | Memodifikasi definisi alat (nama, deskripsi, parameter) membatalkan seluruh cache |
| Toggle pencarian web | ✓ | ✘ | ✘ | Mengaktifkan/menonaktifkan pencarian web memodifikasi prompt sistem |
| Toggle 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 diperpanjang (aktifkan/nonaktifkan, anggaran) mempengaruhi blok pesan |
| Hasil non-alat yang dilewatkan ke permintaan pemikiran diperpanjang | ✓ | ✓ | ✘ | Ketika hasil non-alat dilewatkan dalam permintaan saat pemikiran diperpanjang diaktifkan, semua blok pemikiran yang sebelumnya di-cache dilepas dari konteks, dan pesan apa pun dalam konteks yang mengikuti blok pemikiran itu dihapus dari cache. Untuk detail lebih lanjut, lihat Caching dengan blok pemikiran. |
Panjang prompt yang dapat di-cache minimum adalah:
Prompt yang lebih pendek tidak dapat di-cache, bahkan jika ditandai dengan cache_control. Permintaan apa pun untuk men-cache lebih sedikit dari jumlah token ini akan diproses tanpa caching. Untuk melihat apakah prompt di-cache, lihat field penggunaan respons.
Untuk permintaan bersamaan, perhatikan bahwa entri cache hanya tersedia setelah respons pertama dimulai. Jika Anda memerlukan cache hits 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.
Titik henti cache itu sendiri tidak menambah biaya apa pun. Anda hanya dikenakan biaya untuk:
Menambahkan lebih banyak titik henti cache_control tidak meningkatkan biaya Anda - Anda masih membayar jumlah yang sama berdasarkan konten apa yang sebenarnya di-cache dan dibaca. Titik henti hanya memberi Anda kontrol atas bagian mana yang dapat di-cache secara independen.
Sebagian besar blok dalam permintaan dapat ditunjuk untuk caching dengan cache_control. Ini termasuk:
toolssystemmessages.content, untuk putaran pengguna dan asistenmessages.content, dalam putaran penggunamessages.content, dalam putaran pengguna dan asistenSetiap elemen ini dapat ditandai dengan cache_control untuk mengaktifkan caching untuk bagian permintaan itu.
Meskipun sebagian besar blok permintaan dapat di-cache, ada beberapa pengecualian:
Blok pemikiran tidak dapat di-cache secara langsung dengan cache_control. Namun, blok pemikiran DAPAT di-cache bersama konten lain ketika muncul dalam putaran asisten sebelumnya. Ketika di-cache dengan cara ini, mereka MENGHITUNG sebagai token input ketika dibaca dari cache.
Blok sub-konten (seperti citations) itu sendiri tidak dapat di-cache secara langsung. Sebagai gantinya, cache blok tingkat atas.
Dalam kasus kutipan, blok konten dokumen tingkat atas yang berfungsi sebagai materi sumber untuk kutipan dapat di-cache. Ini memungkinkan Anda menggunakan prompt caching dengan kutipan secara efektif dengan men-cache dokumen yang akan direferensikan oleh kutipan.
Blok teks kosong tidak dapat di-cache.
Pantau kinerja cache menggunakan field respons API ini, dalam usage 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 (yaitu, token setelah titik henti cache terakhir).Memahami rincian token
Field input_tokens mewakili hanya token yang datang setelah titik henti cache terakhir dalam permintaan Anda - bukan semua token input yang Anda kirim.
Untuk menghitung total token input:
total_input_tokens = cache_read_input_tokens + cache_creation_input_tokens + input_tokensPenjelasan spasial:
cache_read_input_tokens = token sebelum titik henti sudah di-cache (pembacaan)cache_creation_input_tokens = token sebelum titik henti sedang di-cache sekarang (penulisan)input_tokens = token setelah titik henti cache terakhir Anda (tidak memenuhi syarat untuk cache)Contoh: Jika Anda memiliki permintaan dengan 100.000 token konten yang di-cache (dibaca dari cache), 0 token konten baru yang sedang di-cache, dan 50 token dalam pesan pengguna Anda (setelah titik henti cache):
cache_read_input_tokens: 100.000cache_creation_input_tokens: 0input_tokens: 50Ini penting untuk memahami biaya dan batas laju, karena input_tokens biasanya akan jauh lebih kecil dari total input Anda saat menggunakan caching secara efektif.
Panjang prompt yang dapat di-cache minimum adalah:
Prompt yang lebih pendek tidak dapat di-cache, bahkan jika ditandai dengan cache_control. Permintaan apa pun untuk cache kurang dari jumlah token ini akan diproses tanpa cache. Untuk melihat apakah prompt telah di-cache, lihat fields 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.
Breakpoint cache itu sendiri tidak menambah biaya apa pun. Anda hanya dikenakan biaya untuk:
Menambahkan lebih banyak breakpoint cache_control tidak meningkatkan biaya Anda - Anda masih membayar jumlah yang sama berdasarkan konten apa yang sebenarnya di-cache dan dibaca. Breakpoint hanya memberi Anda kontrol atas bagian mana yang dapat di-cache secara independen.
Sebagian besar blok dalam permintaan dapat ditunjuk untuk cache dengan cache_control. Ini termasuk:
toolssystemmessages.content, untuk giliran pengguna dan asistenmessages.content, dalam giliran penggunamessages.content, dalam giliran pengguna dan asistenSetiap elemen ini dapat ditandai dengan cache_control untuk mengaktifkan cache untuk bagian permintaan tersebut.
Meskipun sebagian besar blok permintaan dapat di-cache, ada beberapa pengecualian:
Thinking blocks tidak dapat di-cache secara langsung dengan cache_control. Namun, thinking blocks DAPAT di-cache bersama konten lain ketika muncul dalam giliran asisten sebelumnya. Ketika di-cache dengan cara ini, mereka MENGHITUNG sebagai token input ketika dibaca dari cache.
Sub-content blocks (seperti citations) itu sendiri tidak dapat di-cache secara langsung. Sebagai gantinya, cache blok tingkat atas.
Dalam kasus citations, blok konten dokumen tingkat atas yang berfungsi sebagai materi sumber untuk citations dapat di-cache. Ini memungkinkan Anda menggunakan prompt caching dengan citations secara efektif dengan cache dokumen yang akan direferensikan oleh citations.
Empty text blocks tidak dapat di-cache.
Modifikasi konten cache dapat membatalkan sebagian atau seluruh cache.
Seperti dijelaskan dalam Structuring your prompt, cache mengikuti hierarki: tools → system → messages. Perubahan di setiap level membatalkan level tersebut 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 | Tools cache | System cache | Messages cache | Dampak |
|---|---|---|---|---|
| Tool definitions | ✘ | ✘ | ✘ | Memodifikasi definisi tool (nama, deskripsi, parameter) membatalkan seluruh cache |
| Web search toggle | ✓ | ✘ | ✘ | Mengaktifkan/menonaktifkan web search memodifikasi system prompt |
| Citations toggle | ✓ | ✘ | ✘ | Mengaktifkan/menonaktifkan citations memodifikasi system prompt |
| Tool choice | ✓ | ✓ | ✘ | Perubahan parameter tool_choice hanya mempengaruhi blok pesan |
| Images | ✓ | ✓ | ✘ | Menambahkan/menghapus gambar di mana pun dalam prompt mempengaruhi blok pesan |
| Thinking parameters | ✓ | ✓ | ✘ | Perubahan pengaturan extended thinking (aktifkan/nonaktifkan, budget) mempengaruhi blok pesan |
| Non-tool results passed to extended thinking requests | ✓ | ✓ | ✘ | Ketika non-tool results dilewatkan dalam permintaan saat extended thinking diaktifkan, semua thinking blocks yang sebelumnya di-cache dilepas dari konteks, dan pesan apa pun dalam konteks yang mengikuti thinking blocks tersebut dihapus dari cache. Untuk detail lebih lanjut, lihat Caching with thinking blocks. |
Pantau kinerja cache menggunakan field respons API ini, dalam usage 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 (yaitu, token setelah breakpoint cache terakhir).Memahami breakdown token
Field input_tokens hanya mewakili token yang datang setelah breakpoint cache terakhir dalam permintaan Anda - bukan semua token input yang Anda kirim.
Untuk menghitung total token input:
total_input_tokens = cache_read_input_tokens + cache_creation_input_tokens + input_tokensPenjelasan spasial:
cache_read_input_tokens = token sebelum breakpoint sudah di-cache (reads)cache_creation_input_tokens = token sebelum breakpoint sedang di-cache sekarang (writes)input_tokens = token setelah breakpoint terakhir Anda (tidak memenuhi syarat untuk cache)Contoh: Jika Anda memiliki permintaan dengan 100.000 token konten cache (dibaca dari cache), 0 token konten baru yang sedang di-cache, dan 50 token dalam pesan pengguna Anda (setelah breakpoint cache):
cache_read_input_tokens: 100.000cache_creation_input_tokens: 0input_tokens: 50Ini penting untuk memahami biaya dan batas laju, karena input_tokens biasanya akan jauh lebih kecil dari total input Anda saat menggunakan cache secara efektif.
Untuk mengoptimalkan kinerja prompt caching:
Sesuaikan strategi prompt caching Anda dengan skenario Anda:
Sesuaikan strategi prompt caching Anda dengan skenario Anda:
Jika mengalami perilaku yang tidak terduga:
tool_choice dan penggunaan gambar tetap konsisten antar panggilancache_control tambahan lebih awal dalam prompt untuk memastikan semua konten dapat di-cachetool_use Anda memiliki urutan yang stabil karena beberapa bahasa (misalnya Swift, Go) mengacak urutan kunci selama konversi JSON, merusak cachePerubahan pada tool_choice atau ada/tidaknya gambar di mana pun dalam prompt akan membatalkan cache, memerlukan entri cache baru untuk dibuat. Untuk detail lebih lanjut tentang cache invalidation, lihat What invalidates the cache.
Saat menggunakan extended thinking dengan prompt caching, thinking blocks memiliki perilaku khusus:
Automatic caching alongside other content: Meskipun thinking blocks tidak dapat secara eksplisit ditandai dengan cache_control, mereka mendapat cache sebagai bagian dari konten permintaan ketika Anda membuat panggilan API berikutnya dengan tool results. Ini biasanya terjadi selama tool use ketika Anda meneruskan thinking blocks kembali untuk melanjutkan percakapan.
Input token counting: Ketika thinking blocks dibaca dari cache, mereka menghitung sebagai token input dalam metrik penggunaan Anda. Ini penting untuk perhitungan biaya dan anggaran token.
Cache invalidation patterns:
cache_control eksplisitUntuk detail lebih lanjut tentang cache invalidation, lihat What invalidates the cache.
Contoh dengan tool use:
Request 1: User: "What's the weather in Paris?"
Response: [thinking_block_1] + [tool_use block 1]
Request 2:
User: ["What's the weather in Paris?"],
Assistant: [thinking_block_1] + [tool_use block 1],
User: [tool_result_1, cache=True]
Response: [thinking_block_2] + [text block 2]
# Request 2 caches its request content (not the response)
# The cache includes: user message, thinking_block_1, tool_use block 1, and tool_result_1
Request 3:
User: ["What's the weather in Paris?"],
Assistant: [thinking_block_1] + [tool_use block 1],
User: [tool_result_1, cache=True],
Assistant: [thinking_block_2] + [text block 2],
User: [Text response, cache=True]
# Non-tool-result user block causes all thinking blocks to be ignored
# This request is processed as if thinking blocks were never presentKetika blok pengguna non-tool-result disertakan, itu menunjuk loop asisten baru dan semua thinking blocks sebelumnya dihapus dari konteks.
Untuk informasi lebih detail, lihat extended thinking documentation.
Organization Isolation: Cache terisolasi antar organisasi. Organisasi yang berbeda tidak pernah berbagi cache, bahkan jika mereka menggunakan prompt yang identik.
Exact Matching: Cache hits memerlukan segmen prompt yang 100% identik, termasuk semua teks dan gambar hingga dan termasuk blok yang ditandai dengan cache control.
Output Token Generation: Prompt caching tidak berpengaruh pada pembuatan token output. Respons yang Anda terima akan identik dengan apa yang Anda dapatkan jika prompt caching tidak digunakan.
Sesuaikan strategi prompt caching Anda dengan skenario Anda:
Jika mengalami perilaku yang tidak terduga:
tool_choice dan penggunaan gambar tetap konsisten antar panggilancache_control tambahan lebih awal dalam prompt untuk memastikan semua konten dapat di-cachetool_use Anda memiliki urutan yang stabil karena beberapa bahasa (misalnya Swift, Go) mengacak urutan kunci selama konversi JSON, merusak cachePerubahan pada tool_choice atau ada/tidaknya gambar di mana pun dalam prompt akan membatalkan cache, memerlukan entri cache baru untuk dibuat. Untuk detail lebih lanjut tentang cache invalidation, lihat What invalidates the cache.
Saat menggunakan extended thinking dengan prompt caching, thinking blocks memiliki perilaku khusus:
Automatic caching alongside other content: Meskipun thinking blocks tidak dapat secara eksplisit ditandai dengan cache_control, mereka mendapat cache sebagai bagian dari konten permintaan ketika Anda membuat panggilan API berikutnya dengan tool results. Ini biasanya terjadi selama tool use ketika Anda meneruskan thinking blocks kembali untuk melanjutkan percakapan.
Input token counting: Ketika thinking blocks dibaca dari cache, mereka menghitung sebagai token input dalam metrik penggunaan Anda. Ini penting untuk perhitungan biaya dan anggaran token.
Cache invalidation patterns:
cache_control eksplisitUntuk detail lebih lanjut tentang cache invalidation, lihat What invalidates the cache.
Contoh dengan tool use:
Request 1: User: "What's the weather in Paris?"
Response: [thinking_block_1] + [tool_use block 1]
Request 2:
User: ["What's the weather in Paris?"],
Assistant: [thinking_block_1] + [tool_use block 1],
User: [tool_result_1, cache=True]
Response: [thinking_block_2] + [text block 2]
# Request 2 caches its request content (not the response)
# The cache includes: user message, thinking_block_1, tool_use block 1, and tool_result_1
Request 3:
User: ["What's the weather in Paris?"],
Assistant: [thinking_block_1] + [tool_use block 1],
User: [tool_result_1, cache=True],
Assistant: [thinking_block_2] + [text block 2],
User: [Text response, cache=True]
# Non-tool-result user block causes all thinking blocks to be ignored
# This request is processed as if thinking blocks were never presentKetika blok pengguna non-tool-result disertakan, itu menunjuk loop asisten baru dan semua thinking blocks sebelumnya dihapus dari konteks.
Untuk informasi lebih detail, lihat extended thinking documentation.
Organization Isolation: Cache terisolasi antar organisasi. Organisasi yang berbeda tidak pernah berbagi cache, bahkan jika mereka menggunakan prompt yang identik.
Exact Matching: Cache hits memerlukan segmen prompt yang 100% identik, termasuk semua teks dan gambar hingga dan termasuk blok yang ditandai dengan cache control.
Output Token Generation: Prompt caching tidak berpengaruh pada pembuatan token output. Respons yang Anda terima akan identik dengan apa yang Anda dapatkan jika prompt caching tidak digunakan.
Jika Anda merasa 5 menit terlalu singkat, Anthropic juga menawarkan durasi cache 1 jam dengan biaya tambahan.
Untuk menggunakan cache yang diperpanjang, sertakan ttl dalam definisi cache_control seperti ini:
"cache_control": {
"type": "ephemeral",
"ttl": "5m" | "1h"
}Respons akan mencakup informasi cache terperinci seperti berikut:
{
"usage": {
"input_tokens": ...,
"cache_read_input_tokens": ...,
"cache_creation_input_tokens": ...,
"output_tokens": ...,
"cache_creation": {
"ephemeral_5m_input_tokens": 456,
"ephemeral_1h_input_tokens": 100,
}
}
}Perhatikan bahwa field cache_creation_input_tokens saat ini sama dengan jumlah nilai dalam objek cache_creation.
Jika Anda memiliki prompt yang digunakan dengan ritme teratur (yaitu, system prompts yang digunakan lebih sering daripada setiap 5 menit), terus gunakan cache 5 menit, karena ini akan terus diperbarui tanpa biaya tambahan.
Cache 1 jam paling baik digunakan dalam skenario berikut:
Cache 5 menit dan 1 jam berperilaku sama sehubungan dengan latensi. Anda umumnya akan melihat waktu-ke-token-pertama yang ditingkatkan untuk dokumen panjang.
Sesuaikan strategi prompt caching Anda dengan skenario Anda:
Jika mengalami perilaku yang tidak terduga:
tool_choice dan penggunaan gambar tetap konsisten antara panggilancache_control tambahan lebih awal dalam prompt untuk memastikan semua konten dapat di-cachetool_use Anda memiliki urutan yang stabil karena beberapa bahasa (misalnya Swift, Go) mengacakkan urutan kunci selama konversi JSON, merusak cachePerubahan pada 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 invalidasi cache, lihat Apa yang membatalkan cache.
Saat menggunakan extended thinking dengan prompt caching, blok pemikiran memiliki perilaku khusus:
Caching otomatis bersama konten lain: Meskipun blok pemikiran tidak dapat secara eksplisit ditandai dengan cache_control, mereka di-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 dihitung sebagai token input dalam metrik penggunaan Anda. Ini penting untuk perhitungan biaya dan anggaran token.
Pola invalidasi cache:
cache_control eksplisitUntuk detail lebih lanjut tentang invalidasi cache, lihat Apa yang membatalkan cache.
Contoh dengan penggunaan alat:
Request 1: User: "What's the weather in Paris?"
Response: [thinking_block_1] + [tool_use block 1]
Request 2:
User: ["What's the weather in Paris?"],
Assistant: [thinking_block_1] + [tool_use block 1],
User: [tool_result_1, cache=True]
Response: [thinking_block_2] + [text block 2]
# Request 2 caches its request content (not the response)
# The cache includes: user message, thinking_block_1, tool_use block 1, and tool_result_1
Request 3:
User: ["What's the weather in Paris?"],
Assistant: [thinking_block_1] + [tool_use block 1],
User: [tool_result_1, cache=True],
Assistant: [thinking_block_2] + [text block 2],
User: [Text response, cache=True]
# Non-tool-result user block causes all thinking blocks to be ignored
# This request is processed as if thinking blocks were never presentKetika blok pengguna non-hasil-alat disertakan, itu menunjuk loop asisten baru dan semua blok pemikiran sebelumnya dihapus dari konteks.
Untuk informasi lebih terperinci, lihat dokumentasi extended thinking.
Isolasi Organisasi: Cache terisolasi antara organisasi. Organisasi yang berbeda tidak pernah berbagi cache, bahkan jika mereka menggunakan prompt yang identik.
Pencocokan Tepat: Cache hits memerlukan segmen prompt yang 100% identik, termasuk semua teks dan gambar hingga dan termasuk blok yang ditandai dengan kontrol cache.
Pembuatan Token Output: Prompt caching tidak berpengaruh pada pembuatan token output. Respons yang Anda terima akan identik dengan apa yang Anda dapatkan jika prompt caching tidak digunakan.
Jika Anda menemukan bahwa 5 menit terlalu singkat, Anthropic juga menawarkan durasi cache 1 jam dengan biaya tambahan.
Untuk menggunakan cache yang diperpanjang, sertakan ttl dalam definisi cache_control seperti ini:
"cache_control": {
"type": "ephemeral",
"ttl": "5m" | "1h"
}Respons akan mencakup informasi cache terperinci seperti berikut:
{
"usage": {
"input_tokens": ...,
"cache_read_input_tokens": ...,
"cache_creation_input_tokens": ...,
"output_tokens": ...,
"cache_creation": {
"ephemeral_5m_input_tokens": 456,
"ephemeral_1h_input_tokens": 100,
}
}
}Perhatikan bahwa bidang cache_creation_input_tokens saat ini sama dengan jumlah nilai dalam objek cache_creation.
Jika Anda memiliki prompt yang digunakan dengan ritme teratur (yaitu, prompt sistem yang digunakan lebih sering daripada 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:
Cache 5 menit dan 1 jam berperilaku sama sehubungan dengan latensi. Anda umumnya akan melihat waktu-ke-token-pertama yang ditingkatkan untuk dokumen panjang.
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).
Saat mencampur TTL, kami menentukan tiga lokasi penagihan dalam prompt Anda:
A: Jumlah token pada cache hit tertinggi (atau 0 jika tidak ada hits).B: Jumlah token pada blok cache_control 1 jam tertinggi setelah A (atau sama dengan A jika tidak ada).C: Jumlah token pada blok cache_control terakhir.Jika B dan/atau C lebih besar dari A, mereka harus menjadi cache misses, karena A adalah cache hit tertinggi.
Anda akan dikenakan biaya untuk:
A.(B - A).(C - B).Berikut adalah 3 contoh. Ini menggambarkan token input dari 3 permintaan, masing-masing memiliki cache hits dan cache misses yang berbeda. Masing-masing memiliki penagihan yang dihitung berbeda, ditampilkan dalam kotak berwarna, sebagai hasilnya.
Untuk membantu Anda memulai dengan prompt caching, kami telah menyiapkan prompt caching cookbook dengan contoh terperinci dan praktik terbaik.
Di bawah ini, kami telah menyertakan beberapa cuplikan kode yang menampilkan berbagai pola prompt caching. Contoh-contoh ini menunjukkan cara mengimplementasikan caching dalam skenario berbeda, membantu Anda memahami aplikasi praktis dari fitur ini: