Кэширование подсказок — это мощная функция, которая оптимизирует использование API, позволяя возобновлять работу с определённых префиксов в ваших подсказках. Этот подход значительно сокращает время обработки и затраты на повторяющиеся задачи или подсказки с согласованными элементами.
Вот пример того, как реализовать кэширование подсказок с помощью Messages API, используя блок 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}В этом примере весь текст «Гордости и предубеждения» кэшируется с помощью параметра cache_control. Это позволяет повторно использовать этот большой текст в нескольких вызовах API без его переобработки каждый раз. Изменение только пользовательского сообщения позволяет вам задавать различные вопросы о книге, используя кэшированное содержимое, что приводит к более быстрым ответам и повышенной эффективности.
Когда вы отправляете запрос с включённым кэшированием подсказок:
Это особенно полезно для:
По умолчанию кэш имеет время жизни 5 минут. Кэш обновляется без дополнительных затрат каждый раз при использовании кэшированного содержимого.
Если вы считаете, что 5 минут — это слишком мало, Anthropic также предлагает кэш на 1 час за дополнительную плату.
Для получения дополнительной информации см. кэш на 1 час.
Кэширование подсказок кэширует полный префикс
Кэширование подсказок ссылается на всю подсказку — tools, system и messages (в таком порядке) вплоть до и включая блок, обозначенный с помощью cache_control.
Кэширование подсказок вводит новую структуру ценообразования. В таблице ниже показана цена за миллион токенов для каждой поддерживаемой модели:
| 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 |
Таблица выше отражает следующие множители ценообразования для кэширования подсказок:
Кэширование подсказок — это мощная функция, которая оптимизирует использование API, позволяя возобновлять работу с определённых префиксов в ваших подсказках. Этот подход значительно снижает время обработки и затраты на повторяющиеся задачи или подсказки с постоянными элементами.
Вот пример того, как реализовать кэширование подсказок с помощью Messages API, используя блок 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}В этом примере весь текст «Гордости и предубеждения» кэшируется с помощью параметра cache_control. Это позволяет повторно использовать этот большой текст в нескольких вызовах API без повторной обработки каждый раз. Изменение только пользовательского сообщения позволяет вам задавать различные вопросы о книге, используя кэшированное содержимое, что приводит к более быстрым ответам и повышенной эффективности.
Когда вы отправляете запрос с включённым кэшированием подсказок:
Это особенно полезно для:
По умолчанию кэш имеет время жизни 5 минут. Кэш обновляется без дополнительных затрат каждый раз при использовании кэшированного содержимого.
Если вы считаете, что 5 минут — это слишком мало, Anthropic также предлагает кэш на 1 час за дополнительную плату.
Для получения дополнительной информации см. кэш на 1 час.
Кэширование подсказок кэширует полный префикс
Кэширование подсказок ссылается на всю подсказку — tools, system и messages (в таком порядке) вплоть до и включая блок, обозначенный с помощью cache_control.
Кэширование подсказок вводит новую структуру ценообразования. В таблице ниже показана цена за миллион токенов для каждой поддерживаемой модели:
| 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 |
Таблица выше отражает следующие множители ценообразования для кэширования подсказок:
Кэширование подсказок в настоящее время поддерживается на:
Кэширование подсказок — это мощная функция, которая оптимизирует использование вашего API, позволяя возобновлять работу с определённых префиксов в ваших подсказках. Этот подход значительно сокращает время обработки и затраты на повторяющиеся задачи или подсказки с согласованными элементами.
Вот пример того, как реализовать кэширование подсказок с помощью Messages API, используя блок 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}В этом примере весь текст «Pride and Prejudice» кэшируется с помощью параметра cache_control. Это позволяет повторно использовать этот большой текст в нескольких вызовах API без его переобработки каждый раз. Изменение только пользовательского сообщения позволяет вам задавать различные вопросы о книге, используя кэшированное содержимое, что приводит к более быстрым ответам и повышенной эффективности.
Когда вы отправляете запрос с включённым кэшированием подсказок:
Это особенно полезно для:
По умолчанию кэш имеет время жизни 5 минут. Кэш обновляется без дополнительных затрат каждый раз при использовании кэшированного содержимого.
Если 5 минут слишком мало, Anthropic также предлагает длительность кэша в 1 час за дополнительную плату.
Для получения дополнительной информации см. Длительность кэша в 1 час.
Кэширование подсказок кэширует полный префикс
Кэширование подсказок ссылается на всю подсказку — tools, system и messages (в этом порядке) вплоть до и включая блок, обозначенный с помощью cache_control.
Кэширование подсказок вводит новую структуру цен. В таблице ниже показана цена за миллион токенов для каждой поддерживаемой модели:
| 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 |
Таблица выше отражает следующие множители цен для кэширования подсказок:
Кэширование подсказок в настоящее время поддерживается на:
Поместите статическое содержимое (определения инструментов, системные инструкции, контекст, примеры) в начало вашей подсказки. Отметьте конец повторно используемого содержимого для кэширования с помощью параметра cache_control.
Префиксы кэша создаются в следующем порядке: tools, system, затем messages. Этот порядок образует иерархию, где каждый уровень строится на предыдущих.
Вы можете использовать только одну точку разрыва кэша в конце вашего статического содержимого, и система автоматически найдёт самую длинную совпадающую последовательность кэшированных блоков. Понимание того, как это работает, помогает оптимизировать вашу стратегию кэширования.
Три основных принципа:
Ключи кэша являются кумулятивными: Когда вы явно кэшируете блок с помощью cache_control, ключ хэша кэша генерируется путём хеширования всех предыдущих блоков в диалоге последовательно. Это означает, что кэш для каждого блока зависит от всего содержимого, которое ему предшествует.
Обратная последовательная проверка: Система проверяет попадания в кэш, работая в обратном направлении от вашей явной точки разрыва, проверяя каждый предыдущий блок в обратном порядке. Это гарантирует, что вы получите самое длинное возможное попадание в кэш.
Окно обратного просмотра в 20 блоков: Система проверяет только до 20 блоков перед каждой явной точкой разрыва cache_control. После проверки 20 блоков без совпадения она прекращает проверку и переходит к следующей явной точке разрыва (если она есть).
Пример: Понимание окна обратного просмотра
Рассмотрим диалог с 30 блоками содержимого, где вы устанавливаете cache_control только на блоке 30:
Если вы отправляете блок 31 без изменений предыдущих блоков: Система проверяет блок 30 (совпадение!). Вы получаете попадание в кэш на блоке 30, и только блок 31 требует обработки.
Если вы изменяете блок 25 и отправляете блок 31: Система проверяет в обратном направлении от блока 30 → 29 → 28... → 25 (нет совпадения) → 24 (совпадение!). Поскольку блок 24 не изменился, вы получаете попадание в кэш на блоке 24, и только блоки 25-30 требуют переобработки.
Если вы изменяете блок 5 и отправляете блок 31: Система проверяет в обратном направлении от блока 30 → 29 → 28... → 11 (проверка #20). После 20 проверок без нахождения совпадения она прекращает поиск. Поскольку блок 5 находится за пределами окна в 20 блоков, попадания в кэш не происходит и все блоки требуют переобработки. Однако, если бы вы установили явную точку разрыва cache_control на блоке 5, система продолжила бы проверку с этой точки разрыва: блок 5 (нет совпадения) → блок 4 (совпадение!). Это позволяет получить попадание в кэш на блоке 4, демонстрируя, почему вы должны размещать точки разрыва перед редактируемым содержимым.
Ключевой вывод: Всегда устанавливайте явную точку разрыва кэша в конце вашего диалога, чтобы максимизировать ваши шансы на попадания в кэш. Кроме того, устанавливайте точки разрыва непосредственно перед блоками содержимого, которые могут быть редактируемыми, чтобы гарантировать, что эти разделы могут быть кэшированы независимо.
Вы можете определить до 4 точек разрыва кэша, если вы хотите:
Важное ограничение: Если ваша подсказка имеет более 20 блоков содержимого перед вашей точкой разрыва кэша, и вы изменяете содержимое ранее, чем эти 20 блоков, вы не получите попадание в кэш, если не добавите дополнительные явные точки разрыва ближе к этому содержимому.
Минимальная длина кэшируемой подсказки составляет:
Более короткие подсказки не могут быть кэшированы, даже если отмечены с помощью cache_control. Любые запросы на кэширование меньшего количества токенов будут обработаны без кэширования. Чтобы узнать, была ли подсказка кэширована, см. поля использования ответа fields.
Для одновременных запросов обратите внимание, что запись в кэш становится доступной только после начала первого ответа. Если вам нужны попадания в кэш для параллельных запросов, дождитесь первого ответа перед отправкой последующих запросов.
В настоящее время «ephemeral» — единственный поддерживаемый тип кэша, который по умолчанию имеет время жизни 5 минут.
Сами точки разрыва кэша не добавляют никаких затрат. Вы платите только за:
Добавление большего количества точек разрыва cache_control не увеличивает ваши затраты — вы по-прежнему платите одинаковую сумму в зависимости от того, какое содержимое фактически кэшируется и читается. Точки разрыва просто дают вам контроль над тем, какие разделы могут быть кэшированы независимо.
Большинство блоков в запросе могут быть обозначены для кэширования с помощью cache_control. Это включает:
toolssystemmessages.content как для пользовательских, так и для ассистентских ходовmessages.content в пользовательских ходахmessages.content как для пользовательских, так и для ассистентских ходовКаждый из этих элементов может быть отмечен с помощью cache_control для включения кэширования для этой части запроса.
Хотя большинство блоков запроса могут быть кэшированы, есть некоторые исключения:
Блоки мышления не могут быть кэшированы напрямую с помощью cache_control. Однако блоки мышления МОГУТ быть кэшированы вместе с другим содержимым, когда они появляются в предыдущих ассистентских ходах. При кэшировании таким образом они СЧИТАЮТСЯ входными токенами при чтении из кэша.
Подблоки содержимого (такие как цитаты) сами по себе не могут быть кэшированы напрямую. Вместо этого кэшируйте блок верхнего уровня.
В случае цитат блоки содержимого документа верхнего уровня, которые служат исходным материалом для цитат, могут быть кэшированы. Это позволяет вам эффективно использовать кэширование подсказок с цитатами, кэшируя документы, на которые будут ссылаться цитаты.
Пустые текстовые блоки не могут быть кэшированы.
Изменения кэшированного содержимого могут сделать недействительным часть или весь кэш.
Как описано в Структурирование вашей подсказки, кэш следует иерархии: tools → system → messages. Изменения на каждом уровне делают недействительным этот уровень и все последующие уровни.
В таблице ниже показано, какие части кэша делаются недействительными различными типами изменений. ✘ указывает, что кэш делается недействительным, а ✓ указывает, что кэш остаётся действительным.
| Что изменяется | Кэш инструментов | Кэш системы | Кэш сообщений | Влияние |
|---|---|---|---|---|
| Определения инструментов | ✘ | ✘ | ✘ | Изменение определений инструментов (имена, описания, параметры) делает недействительным весь кэш |
| Переключатель веб-поиска | ✓ | ✘ | ✘ | Включение/отключение веб-поиска изменяет системную подсказку |
| Переключатель цитат | ✓ | ✘ | ✘ | Включение/отключение цитат изменяет системную подсказку |
| Выбор инструмента | ✓ | ✓ | ✘ | Изменения параметра tool_choice влияют только на блоки сообщений |
| Изображения | ✓ | ✓ | ✘ | Добавление/удаление изображений в любом месте подсказки влияет на блоки сообщений |
| Параметры мышления | ✓ | ✓ | ✘ | Изменения параметров расширенного мышления (включение/отключение, бюджет) влияют на блоки сообщений |
| Результаты, не связанные с инструментами, переданные в запросы расширенного мышления | ✓ | ✓ | ✘ | Когда результаты, не связанные с инструментами, передаются в запросы при включённом расширенном мышлении, все ранее кэшированные блоки мышления удаляются из контекста, и любые сообщения в контексте, которые следуют за этими блоками мышления, удаляются из кэша. Для получения дополнительной информации см. Кэширование с блоками мышления. |
Отслеживайте производительность кэша, используя эти поля ответа API, в usage в ответе (или событие message_start если потоковая передача):
cache_creation_input_tokens: Количество токенов, записанных в кэш при создании новой записи.cache_read_input_tokens: Количество токенов, полученных из кэша для этого запроса.input_tokens: Количество входных токенов, которые не были прочитаны из кэша или использованы для создания кэша (т.е. токены после последней точки разрыва кэша).Понимание разбивки токенов
Поле input_tokens представляет только токены, которые идут после последней точки разрыва кэша в вашем запросе — не все входные токены, которые вы отправили.
Для расчёта общего количества входных токенов:
total_input_tokens = cache_read_input_tokens + cache_creation_input_tokens + input_tokensПространственное объяснение:
cache_read_input_tokens = токены перед точкой разрыва уже кэшированы (чтения)cache_creation_input_tokens = токены перед точкой разрыва кэшируются сейчас (записи)input_tokens = токены после вашей последней точки разрыва (не подходят для кэша)Пример: Если у вас есть запрос с 100 000 токенов кэшированного содержимого (прочитано из кэша), 0 токенов нового содержимого, кэшируемого, и 50 токенов в вашем пользовательском сообщении (после точки разрыва кэша):
cache_read_input_tokens: 100 000cache_creation_input_tokens: 0input_tokens: 50Это важно для понимания как затрат, так и ограничений скорости, поскольку input_tokens обычно будет намного меньше, чем ваш общий ввод при эффективном использовании кэширования.
Для оптимизации производительности кэширования подсказок:
Адаптируйте вашу стратегию кэширования подсказок к вашему сценарию:
Если вы испытываете неожиданное поведение:
tool_choice и использование изображений остаются согласованными между вызовамиcache_control ранее в подсказке, чтобы гарантировать, что всё содержимое может быть кэшированоtool_use имеют стабильный порядок, так как некоторые языки (например Swift, Go) рандомизируют порядок ключей при преобразовании JSON, нарушая кэшиИзменения в tool_choice или наличие/отсутствие изображений в любом месте подсказки сделают кэш недействительным, требуя создания новой записи в кэше. Для получения дополнительной информации об инвалидации кэша см. Что делает кэш недействительным.
При использовании расширенного мышления с кэшированием подсказок блоки мышления имеют специальное поведение:
Автоматическое кэширование вместе с другим содержимым: Хотя блоки мышления не могут быть явно отмечены с помощью cache_control, они кэшируются как часть содержимого запроса при последующих вызовах API с результатами инструментов. Это обычно происходит при использовании инструментов, когда вы передаёте блоки мышления обратно, чтобы продолжить диалог.
Подсчёт входных токенов: Когда блоки мышления читаются из кэша, они считаются входными токенами в ваших метриках использования. Это важно для расчёта затрат и бюджетирования токенов.
Паттерны инвалидации кэша:
cache_controlДля получения дополнительной информации об инвалидации кэша см. Что делает кэш недействительным.
Пример с использованием инструментов:
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 presentКогда включается блок пользовательского сообщения, не связанный с инструментами, он обозначает новый цикл ассистента и все предыдущие блоки мышления удаляются из контекста.
Для получения более подробной информации см. документацию по расширенному мышлению.
Изоляция организации: Кэши изолированы между организациями. Различные организации никогда не делят кэши, даже если они используют идентичные подсказки.
Точное совпадение: Попадания в кэш требуют 100% идентичных сегментов подсказки, включая весь текст и изображения вплоть до и включая блок, отмеченный с помощью управления кэшем.
Генерация выходных токенов: Кэширование подсказок не влияет на генерацию выходных токенов. Ответ, который вы получите, будет идентичен тому, что вы получили бы, если бы кэширование подсказок не использовалось.
Если 5 минут слишком мало, Anthropic также предлагает длительность кэша в 1 час за дополнительную плату.
Чтобы использовать расширенный кэш, включите ttl в определение cache_control следующим образом:
"cache_control": {
"type": "ephemeral",
"ttl": "5m" | "1h"
}Ответ будет включать подробную информацию о кэше, подобную следующей:
{
"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,
}
}
}Обратите внимание, что текущее поле cache_creation_input_tokens равно сумме значений в объекте cache_creation.
Если у вас есть подсказки, которые используются с регулярной периодичностью (т.е. системные подсказки, которые используются чаще, чем каждые 5 минут), продолжайте использовать кэш на 5 минут, так как это будет продолжать обновляться без дополнительных затрат.
Кэш на 1 час лучше всего использовать в следующих сценариях:
Кэш на 5 минут и 1 час ведут себя одинаково в отношении задержки. Вы обычно будете видеть улучшенное время до первого токена для больших документов.
Вы можете использовать как управление кэшем на 1 час, так и на 5 минут в одном запросе, но с важным ограничением: Записи в кэш с более длительным TTL должны появляться перед более короткими TTL (т.е. запись в кэш на 1 час должна появляться перед любыми записями в кэш на 5 минут).
При смешивании TTL мы определяем три места выставления счёта в вашей подсказке:
A: Количество токенов на самом высоком попадании в кэш (или 0, если нет попаданий).B: Количество токенов на самом высоком блоке cache_control на 1 час после A (или равно A, если ничего не существует).C: Количество токенов на последнем блоке cache_control.Если B и/или C больше, чем A, они обязательно будут промахами в кэше, потому что A — это самое высокое попадание в кэш.
Вам будет выставлен счёт за:
A.(B - A).(C - B).Вот 3 примера. Это изображает входные токены 3 запросов, каждый из которых имеет различные попадания в кэш и промахи в кэше. Каждый имеет различный рассчитанный ценообразование, показанный в цветных полях, в результате.
Чтобы помочь вам начать работу с кэшированием подсказок, мы подготовили кулинарную книгу по кэшированию подсказок с подробными примерами и лучшими практиками.
Ниже мы включили несколько фрагментов кода, которые демонстрируют различные паттерны кэширования подсказок. Эти примеры показывают, как реализовать кэширование в различных сценариях, помогая вам понять практическое применение этой функции: