Claude в Google Vertex AI

Подключение Claude через Google Cloud — авторизация, регионы, биллинг.

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

Уроки курса

  1. Welcome to the course
  2. Overview of Claude models
  3. Accessing the API
  4. Vertex AI Setup
  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. Controlling model output
  14. Structured data
  15. Structured data exercise
  16. Quiz on accessing Claude with the API
  17. Prompt evaluation
  18. A typical eval workflow
  19. Generating test datasets
  20. Running the eval
  21. Model based grading
  22. Code based grading
  23. Exercise on prompt evals
  24. Quiz on prompt evaluation
  25. Prompt engineering
  26. Being clear and direct
  27. Being specific
  28. Structure with XML tags
  29. Providing examples
  30. Exercise on prompting
  31. Quiz on prompt engineering techniques
  32. Introducing tool use
  33. Project overview
  34. Tool functions
  35. Tool schemas
  36. Handling message blocks
  37. Sending tool results
  38. Multi-turn conversations with tools
  39. Implementing multiple turns
  40. Using multiple tools
  41. The batch tool
  42. Tools for structured data
  43. The text edit tool
  44. The web search tool
  45. Quiz on tool use with Claude
  46. Introducing Retrieval Augmented Generation
  47. Text chunking strategies
  48. Text embeddings
  49. The full RAG flow
  50. Implementing the RAG flow
  51. BM25 lexical search
  52. A Multi-index RAG pipeline
  53. Reranking results
  54. Contextual retrieval
  55. Quiz on Retrieval Augmented Generation
  56. Extended thinking
  57. Image support
  58. PDF support
  59. Citations
  60. Prompt caching
  61. Rules of prompt caching
  62. Prompt caching in action
  63. Quiz on features of Claude
  64. Introducing MCP
  65. MCP clients
  66. Project setup
  67. Defining tools with MCP
  68. The server inspector
  69. Implementing a client
  70. Defining resources
  71. Accessing resources
  72. Defining prompts
  73. Prompts in the client
  74. MCP review
  75. Quiz on Model Context Protocol
  76. Anthropic apps
  77. Claude Code setup
  78. Claude Code in action
  79. Enhancements with MCP servers
  80. Parallelizing Claude Code
  81. Automated debugging
  82. Computer use
  83. How computer use works
  84. Agents and workflows
  85. Parallelization workflows
  86. Chaining workflows
  87. Routing workflows
  88. Agents and tools
  89. Environment inspection
  90. Workflows vs agents
  91. Quiz on agents and workflows
  92. Final assessment quiz
  93. Course Wrap Up
  94. Course Description
  95. Course Description
  96. Course Description
  97. Course Description
  98. Course Description
  99. Course Description
  100. Course Description

Введение в кэширование промптов Claude

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

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

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

Механизм работы: Точки кэширования (Cache Breakpoints)

В отличие от автоматического кэширования, работа над сообщениями в Claude не кэшируется по умолчанию. Для активации этой функции необходимо вручную добавить так называемую «точку кэширования» (cache breakpoint) в определенный блок вашего запроса. Все, что находится до этой точки кэширования и включает ее саму, будет сохранено в кэше. Однако для того чтобы последующий запрос мог воспользоваться кэшем, контент до и включая точку кэширования должен быть абсолютно идентичным предыдущему.

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

Сокращенная форма (Shorthand) — без точек кэширования:

При использовании сокращенной формы вы не можете указать параметры кэширования:

user_message = {
    "role": "user",
    "content": "Привет!"
}

Полная форма (Longhand) — обязательна для точек кэширования:

Полная форма позволяет более детально структурировать контент и добавлять метаданные, включая управление кэшем. Для добавления точки кэширования используется поле "cache_control" с типом "ephemeral":

user_message = {
    "role": "user",
    "content": [
        {
            "type": "text",
            "text": "Это сообщение будет кэшировано, если оно достаточно длинное и содержит точку кэширования.",
            "cache_control": {
                "type": "ephemeral"
            }
        }
    ]
}

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

Стратегическое размещение точек кэширования

Точки кэширования не ограничиваются только текстовыми блоками сообщений. Вы можете добавлять их в системные промпты (system prompts) и определения инструментов (tool definitions). Это, как правило, наиболее распространенные и эффективные возможности для кэширования, поскольку системные промпты и определения инструментов часто остаются неизменными между запросами.

Пример точки кэширования в определении инструмента:

Если ваше приложение использует набор инструментов, которые редко меняются, вы можете кэшировать их определения:

tools = [
    add_duration_to_datetime_schema, // Схема первого инструмента
    get_current_datetime_schema,     // Схема второго инструмента
    {
        "name": "set_reminder",
        "description": "Устанавливает напоминание на определенную дату и время.",
        "input_schema": { /* ... детали схемы ввода ... */ },
        "cache_control": {"type": "ephemeral"} // Точка кэширования для этого инструмента
    }
]

Пример точки кэширования в системном промпте:

Системный промпт, который определяет роль и поведение Claude, также является отличным кандидатом для кэширования, поскольку он часто остается постоянным на протяжении всей сессии или для определенного типа взаимодействия:

system = [
    {
        "type": "text",
        "text": "Вы — опытный инженер-программист, специализирующийся на разработке высоконагруженных систем. Ваша задача — предоставлять точные и лаконичные технические консультации.",
        "cache_control": {"type": "ephemeral"} // Точка кэширования для системного промпта
    }
]

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

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

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

Важные нюансы и лучшие практики

Для эффективного использования кэширования промптов необходимо учитывать несколько ключевых аспектов:

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