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

Введение в Ресурсы MCP: Доступ к Данным для Claude AI

В мире больших языковых моделей (LLM), таких как Claude, способность получать актуальную и специфическую информацию из внешних источников критически важна для выполнения сложных задач. Anthropic Academy, в рамках курса "Claude with Google Vertex AI", знакомит нас с концепцией Ресурсов в серверах MCP (Managed Compute Platform). Эти ресурсы представляют собой мощный механизм, позволяющий вашему приложению на базе Claude взаимодействовать с внешними данными, делая его более информированным и функциональным.

По своей сути, ресурсы MCP можно сравнить с обработчиками запросов GET в традиционном HTTP-сервере. Их основное назначение — предоставление данных клиентам, а не выполнение каких-либо действий. Это идеальное решение для сценариев, где Claude или другое клиентское приложение нуждается в получении информации, будь то список документов, содержимое файла или структурированные данные.

Что такое Ресурсы и как они работают?

Представьте ресурсы как точки доступа, предназначенные исключительно для чтения, которые могут возвращать данные любого типа: простые строки, объекты JSON, бинарные файлы и многое другое. При определении ресурса вы указываете его mime_type (например, "application/json" или "text/plain"), что служит подсказкой для клиентского приложения о типе возвращаемых данных. Это помогает клиенту правильно интерпретировать и обрабатывать полученную информацию.

Работа ресурсов основана на использовании URI (Uniform Resource Identifier), который действует как уникальный адрес для каждого фрагмента данных. Когда клиентскому приложению (например, Claude, интегрированному через Google Vertex AI) требуется определенная информация, оно отправляет запрос ReadResourceRequest с указанием конкретного URI. В ответ ваш сервер MCP обрабатывает этот запрос и возвращает ReadResourceResult, содержащий запрошенные данные.

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

Два Основных Типа Ресурсов

В MCP вы можете создавать два основных типа ресурсов, каждый из которых подходит для разных сценариев доступа к данным:

Создание Ресурсов: Практический Подход

Реализация ресурсов в MCP с использованием Python SDK является интуитивно понятной. Вы используете декоратор @mcp.resource, чтобы объявить функцию как ресурс, указав ее URI и mime_type.

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

@mcp.resource(
    "docs://documents",
    mime_type="application/json"
)
def list_docs() -> list[str]:
    # Здесь логика получения списка ключей документов
    return ["doc_a", "doc_b", "doc_c"]

Эта функция, при запросе по URI "docs://documents", вернет список строк в формате JSON.

Для шаблонного ресурса, который извлекает содержимое конкретного документа по его идентификатору, функция будет принимать параметр:

@mcp.resource(
    "docs://documents/{doc_id}",
    mime_type="text/plain"
)
def fetch_doc(doc_id: str) -> str:
    # Здесь логика получения содержимого документа по doc_id
    if doc_id == "doc_a":
        return "Содержимое документа A."
    elif doc_id == "doc_b":
        return "Содержимое документа B."
    else:
        raise ValueError(f"Документ с ID {doc_id} не найден")

В этом примере, если клиент запросит "docs://documents/doc_a", функция fetch_doc будет вызвана с doc_id="doc_a", и вернет соответствующее текстовое содержимое.

Одним из значительных преимуществ MCP Python SDK является автоматическая сериализация возвращаемых данных. Вам не нужно вручную преобразовывать Python-объекты в строки JSON или другие форматы. Просто верните обычные Python-объекты (списки, словари, строки), и SDK самостоятельно позаботится о их корректной сериализации в соответствии с указанным mime_type перед отправкой клиенту.

Тестирование Ресурсов с MCP Inspector

После создания ресурсов крайне важно убедиться в их корректной работе. Для этого Anthropic предоставляет инструмент MCP Inspector. Запустив ваш сервер MCP локально (например, командой uv run mcp dev mcp_server.py), вы можете подключиться к Inspector через веб-браузер.

Инспектор предоставляет удобный интерфейс для просмотра и тестирования ваших ресурсов. Вы увидите два основных раздела:

MCP Inspector является незаменимым инструментом для отладки и проверки, позволяя вам убедиться, что ваши ресурсы правильно отдают данные и соответствуют ожиданиям клиентских приложений.

Практические Сценарии Использования Ресурсов

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

  1. Автодополнение списка документов: Когда пользователь начинает вводить символ "@" для упоминания документа, ваше приложение может использовать прямой ресурс (например, "docs://documents") для получения полного списка всех доступных документов. Этот список затем может быть использован для предоставления пользователю вариантов автодополнения.
  2. Извлечение содержимого документа: Как только пользователь выбирает конкретный документ из списка автодополнения (например, "@МойВажныйДокумент"), ваше приложение может использовать шаблонный ресурс (например, "docs://documents/{doc_id}") для получения полного содержимого этого документа.

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