Разработка с Claude API

Запросы, потоковые ответы, tool use, структурированный вывод и стоимость.

92 уроков, первые 3 бесплатно. Полный доступ: 1490 руб.

Уроки курса

  1. Welcome to the course
  2. Overview of Claude models
  3. Accessing the API
  4. Getting an API key
  5. Making a request
  6. Multi-Turn conversations
  7. Chat exercise
  8. System prompts
  9. System prompts exercise
  10. Temperature
  11. Course satisfaction survey
  12. Response streaming
  13. Structured data
  14. Structured data exercise
  15. Quiz on accessing Claude with the API
  16. Prompt evaluation
  17. A typical eval workflow
  18. Generating test datasets
  19. Running the eval
  20. Model based grading
  21. Code based grading
  22. Exercise on prompt evals
  23. Quiz on prompt evaluation
  24. Prompt engineering
  25. Being clear and direct
  26. Being specific
  27. Structure with XML tags
  28. Providing examples
  29. Exercise on prompting
  30. Quiz on prompt engineering techniques
  31. Introducing tool use
  32. Project overview
  33. Tool functions
  34. Tool schemas
  35. Handling message blocks
  36. Sending tool results
  37. Multi-turn conversations with tools
  38. Implementing multiple turns
  39. Using multiple tools
  40. Fine grained tool calling
  41. The text edit tool
  42. The web search tool
  43. Quiz on tool use with Claude
  44. Introducing Retrieval Augmented Generation
  45. Text chunking strategies
  46. Text embeddings
  47. The full RAG flow
  48. Implementing the RAG flow
  49. BM25 lexical search
  50. A Multi-Index RAG pipeline
  51. Extended thinking
  52. Image support
  53. PDF support
  54. Citations
  55. Prompt caching
  56. Rules of prompt caching
  57. Prompt caching in action
  58. Code execution and the Files API
  59. Quiz on features of Claude
  60. Introducing MCP
  61. MCP clients
  62. Project setup
  63. Defining tools with MCP
  64. The server inspector
  65. Implementing a client
  66. Defining resources
  67. Accessing resources
  68. Defining prompts
  69. Prompts in the client
  70. MCP review
  71. Quiz on Model Context Protocol
  72. Anthropic apps
  73. Claude Code setup
  74. Claude Code in action
  75. Enhancements with MCP servers
  76. Agents and workflows
  77. Parallelization workflows
  78. Chaining workflows
  79. Routing workflows
  80. Agents and tools
  81. Environment inspection
  82. Workflows vs agents
  83. Quiz on Agents and Workflows
  84. Final Assessment
  85. Course Wrap Up
  86. What You'll Learn
  87. What You'll Learn
  88. What You'll Learn
  89. What You'll Learn
  90. What You'll Learn
  91. What You'll Learn
  92. What You'll Learn

Что такое кэширование промптов в Claude?

В мире больших языковых моделей (LLM), таких как Claude, каждое взаимодействие, каждый запрос (или "промпт") требует значительных вычислительных ресурсов. Это может быть дорого и занимать время, особенно если вы отправляете похожие или идентичные запросы снова и снова. Именно здесь на помощь приходит кэширование промптов (prompt caching).

Кэширование промптов в Claude — это механизм, который сохраняет результаты вычислительной работы, выполненной над вашими сообщениями. Представьте, что Claude "запоминает" часть своей работы. Когда вы отправляете последующие запросы, Claude может использовать эти "запоминания" вместо того, чтобы выполнять ту же работу с нуля. Это делает последующие запросы не только быстрее, но и дешевле в исполнении.

Однако важно понимать ключевое условие: кэш будет использоваться только в том случае, если вы повторно отправляете идентичный контент. Если вы измените даже один символ, Claude будет вынужден пересчитать все заново. Срок жизни кэша составляет один час. Это означает, что функция кэширования наиболее полезна, если вы многократно отправляете один и тот же контент в течение этого временного интервала.

Управление кэшированием: Точки кэширования (Cache Breakpoints)

Кэширование не включается автоматически. Чтобы использовать эту мощную функцию, вам необходимо вручную указать, какие части вашего запроса должны быть кэшированы. Для этого используются так называемые точки кэширования (cache breakpoints).

Точка кэширования — это маркер, который вы добавляете в определенный блок вашего сообщения. Работа, выполненная над всем контентом до и включая эту точку, будет кэширована. Это означает, что если в последующих запросах контент до этой точки останется абсолютно идентичным, Claude сможет использовать сохраненные вычисления.

Для добавления точки кэширования вам потребуется использовать расширенный (longhand) формат для написания текстовых блоков вместо сокращенного (shorthand). Сокращенный формат не предоставляет возможности для добавления поля управления кэшем, поэтому необходимо использовать полный формат с соответствующим полем для указания точки кэширования.

Как работают точки кэширования?

Когда вы размещаете точку кэширования в сообщении, Claude кэширует всю вычислительную работу, выполненную до этой точки включительно. Контент, расположенный после точки кэширования, обрабатывается обычным образом, без кэширования. Это дает вам точный контроль над тем, какие части вашего промпта остаются статичными и могут быть кэшированы, а какие являются динамическими и должны пересчитываться при каждом запросе.

Для того чтобы кэш был полезен в последующих запросах, контент должен быть абсолютно идентичен до точки кэширования. Даже малейшие изменения, например, добавление слова "пожалуйста" или изменение знака препинания, сделают кэш недействительным. В таком случае Claude будет вынужден заново обработать весь контент, что нивелирует преимущества кэширования.

Кэширование между сообщениями (Cross-Message Caching)

Гибкость точек кэширования позволяет им охватывать не только отдельные текстовые блоки, но и несколько сообщений и даже различные типы сообщений. Если вы размещаете точку кэширования в более позднем сообщении в диалоге, все предыдущие сообщения (от пользователя, от ассистента и т.д.) будут включены в кэшируемый контент.

Эта функция особенно полезна для длительных диалогов или интерактивных сессий, где вы хотите кэшировать весь контекст беседы до определенного момента. Например, если у вас есть длинная предыстория диалога, которая не меняется, вы можете кэшировать ее, а затем добавлять новые, динамические сообщения, которые будут обрабатываться без кэша.

Особые случаи: Системные промпты и Инструменты (System Prompts and Tools)

Возможности кэширования не ограничиваются только текстовыми блоками сообщений. Точки кэширования могут быть добавлены к следующим элементам:

Системные промпты и определения инструментов являются отличными кандидатами для кэширования, поскольку они редко меняются между запросами. Часто именно здесь вы получите наибольшую выгоду от кэширования промптов, значительно сокращая время ответа и затраты на обработку статических, но объемных инструкций или описаний инструментов.

Важно понимать, что Claude обрабатывает компоненты вашего запроса в определенном порядке: сначала инструменты, затем системный промпт, а затем сообщения. Понимание этого порядка помогает эффективно размещать точки кэширования. Вы можете добавить до четырех точек кэширования в общей сложности. Например, вы можете кэшировать свои инструменты, затем добавить еще одну точку кэширования где-то в середине истории вашей беседы. Это дает вам большую гибкость в определении того, что кэшируется, когда различные части вашего запроса изменяются.

Минимальная длина контента для кэширования

Существует минимальный порог для кэширования: контент должен быть длиной не менее 1024 токенов, чтобы быть кэшированным. Важно отметить, что это сумма всех сообщений и блоков, которые вы пытаетесь кэшировать, а не длина отдельных блоков.

Например, простое сообщение "Привет!" (Hi there!) не достигнет этого порога. Однако, если вы продублируете этот контент 500 раз (или у вас действительно длинный и содержательный промпт), он превысит 1024 токена и будет пригоден для кэширования. Этот порог гарантирует, что кэширование используется для достаточно объемных запросов, где выгода от него будет наиболее ощутима, а не для микроскопических фрагментов, которые не принесут значительной экономии.

Стратегия эффективного кэширования

Ключ к эффективному кэшированию промптов заключается в выявлении тех частей ваших запросов, которые остаются неизменными при многократных вызовах Claude. После этого необходимо стратегически размещать точки кэширования, чтобы максимально использовать повторное использование вычислений и минимизировать недействительность кэша.

Тщательно продуманное кэширование промптов может значительно улучшить производительность ваших приложений, использующих Claude API, и существенно сократить операционные расходы, особенно в сценариях с высокой частотой повторяющихся запросов или длинными, статичными контекстами.