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, предоставление точного и актуального контекста является ключом к получению высококачественных ответов. Часто моделям требуется доступ к внешней информации — отчетов, документов, баз знаний или конфигурационных файлов. Традиционно это достигается с помощью "инструментов" (tools), которые позволяют модели вызывать внешние функции для получения данных. Однако существует более эффективный способ для определенных типов информации: ресурсы.

В рамках платформы MCP (Model Control Plane), ресурсы позволяют вашему серверу предоставлять данные, которые могут быть непосредственно включены в промпты, без необходимости вызова инструментов для доступа к информации. Это создает значительно более эффективный способ предоставления контекста моделям AI, таким как Claude, особенно когда речь идет о статическом или полустатическом контенте.

Что такое ресурсы и зачем они нужны?

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

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

Основные преимущества использования ресурсов:

Как происходит доступ к ресурсам: Общий поток

Когда пользователь или ваше приложение хочет получить доступ к содержимому ресурса, поток данных работает следующим образом:

  1. Запрос пользователя: Пользователь запрашивает информацию о ресурсе, например, введя специальный синтаксис, такой как @report.pdf, в интерфейсе чата.
  2. Идентификация запроса: Вашему коду необходимо распознать этот запрос и, возможно, предложить список доступных ресурсов для автозавершения.
  3. Запрос к MCP Server: MCP Client вашего приложения отправляет запрос на чтение ресурса (ReadResourceRequest) на MCP Server, указывая URI (Uniform Resource Identifier) запрашиваемого ресурса.
  4. Получение данных: Сервер отвечает результатом чтения ресурса (ReadResourceResult), который содержит запрошенные данные ресурса.
  5. Включение в промпт: Ваш код затем может напрямую вставить эти данные в промпт, который будет отправлен Claude.

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

Реализация чтения ресурсов

Для чтения ресурсов из вашего MCP клиента вам потребуется реализовать соответствующую логику в вашем коде. Основная функция будет выполнять запрос к вашей сессии MCP и обрабатывать полученный ответ.

Концептуально, это выглядит так:

Ваша функция принимает URI ресурса (например, "report.pdf"). Она использует метод session().read_resource() для асинхронного запроса данных. После получения ответа, функция извлекает содержимое ресурса из поля contents результата.

Пример псевдокода для понимания:

async def read_resource(self, uri: str) -> Any:
    # Выполняем асинхронный запрос на чтение ресурса
    result = await self.session().read_resource(AnyUrl(uri))
    # Извлекаем содержимое ресурса из ответа
    resource = result.contents[0]
    # ... дальнейшая обработка содержимого ...

Обработка различных типов ресурсов

Ресурсы могут возвращать различные типы контента, поэтому вам необходимо проверять MIME type и соответствующим образом парсить данные. Это гарантирует, что вы правильно интерпретируете полученную информацию.

Например, если ресурс содержит текстовые данные, вы можете проверить его MIME type:

if isinstance(resource, types.TextResourceContents):
    if resource.mimeType == "application/json":
        # Если это JSON, парсим его
        return json.loads(resource.text)
    # В противном случае возвращаем как обычный текст
    return resource.text

Этот подход позволяет обрабатывать два основных сценария:

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

Ресурсы против инструментов: Когда что использовать?

Понимание различий между ресурсами и инструментами (tools) критически важно для проектирования эффективных систем на базе AI. Хотя оба механизма предоставляют Claude доступ к внешней информации, они предназначены для разных сценариев.

Когда использовать ресурсы:

Ресурсы особенно полезны, когда:

Примеры: PDF-отчеты, текстовые документы, JSON-файлы с конфигурацией, статьи из базы знаний, которые не меняются часто.

Когда использовать инструменты (Tools):

Инструменты, напротив, лучше подходят для:

Примеры: API для поиска товаров, API для бронирования билетов, функции для выполнения математических расчетов, доступ к CRM-системе.

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

Преимущества использования ресурсов

Использование ресурсов в вашей архитектуре с Claude через Google Vertex AI приносит значительные выгоды:

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