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 мог эффективно использовать такие "инструменты" (по сути, обычные функции или API-вызовы), ему необходимо четко понимать, что это за инструменты, какие аргументы они принимают и что они делают. Именно здесь на помощь приходят схемы инструментов, основанные на стандарте JSON Schema.

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

Что Такое JSON Schema?

Прежде чем углубляться в схемы инструментов, важно понять, что такое JSON Schema. Это не специфическая для AI или вызова инструментов технология. JSON Schema — это широко используемая спецификация для описания и валидации структуры данных в формате JSON. Она существует уже много лет и применяется в самых разных областях, от валидации конфигурационных файлов до описания API. Сообщество AI приняло ее из-за удобства и стандартизации в описании параметров функций и валидации данных.

Используя JSON Schema, вы можете определить, какие поля должны присутствовать в JSON-объекте, их типы (строка, число, булево значение, массив, объект), форматы, минимальные/максимальные значения и многое другое. Для Claude это означает, что вы можете точно указать, какой тип данных ожидает ваша функция для каждого аргумента, что значительно снижает вероятность ошибок и улучшает надежность взаимодействия.

Анатомия Спецификации Инструмента

Полная спецификация инструмента, которую Claude использует для понимания и вызова вашей функции, состоит из трех основных частей:

Создание Эффективных Описаний

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

Определение Входных Параметров с input_schema

Секция input_schema описывает параметры вашей функции, используя стандартный формат JSON Schema. Она является наиболее технической частью спецификации инструмента. Вот основные элементы, которые вы будете использовать:

{
  "type": "object",
  "properties": {
    "date_format": {
      "type": "string",
      "description": "Строка, указывающая формат возвращаемой даты и времени. Использует коды форматирования strftime Python.",
      "default": "%Y-%m-%d %H:%M:%S"
    }
  },
  "required": []
}

Простой Способ: Позвольте Claude Написать Вашу Схему

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

Вот как это работает:

  1. Скопируйте код вашей функции: Возьмите Python-код функции, для которой вы хотите создать схему.
  2. Обратитесь к Claude: Откройте интерфейс Claude и попросите его написать JSON Schema для вызова инструмента.
  3. Предоставьте контекст: Очень важно включить в ваш запрос документацию Anthropic по использованию инструментов в качестве контекста. Это поможет Claude понять специфические требования к формату схемы для его собственной системы вызова инструментов.
  4. Позвольте Claude сгенерировать схему: Claude сгенерирует правильно отформатированную схему, следуя лучшим практикам.

Пример запроса (prompt) к Claude может выглядеть так:

"Напиши валидную JSON Schema спецификацию для целей вызова инструмента для следующей функции. Следуй лучшим практикам, перечисленным в приложенной документации по использованию инструментов Anthropic.

[Здесь вставьте код вашей функции]"

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

Реализация Схемы в Коде

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

Пример реализации в Python:

get_current_datetime_schema = {
    "name": "get_current_datetime",
    "description": "Возвращает текущую дату и время, отформатированные в соответствии с указанным форматом.",
    "input_schema": {
        "type": "object",
        "properties": {
            "date_format": {
                "type": "string",
                "description": "Строка, указывающая формат возвращаемой даты и времени. Использует коды форматирования strftime Python.",
                "default": "%Y-%m-%d %H:%M:%S"
            }
        },
        "required": []
    }
}

Добавление Типобезопасности (Type Safety)

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

from anthropic.types import ToolParam

get_current_datetime_schema: ToolParam = {
    "name": "get_current_datetime",
    "description": "Возвращает текущую дату и время, отформатированные в соответствии с указанным форматом.",
    "input_schema": {
        "type": "object",
        "properties": {
            "date_format": {
                "type": "string",
                "description": "Строка, указывающая формат возвращаемой даты и времени. Использует коды форматирования strftime Python.",
                "default": "%Y-%m-%d %H:%M:%S"
            }
        },
        "required": []
    }
}

Использование ToolParam позволяет вашей IDE и статическим анализаторам кода проверять, соответствует ли ваша схема ожидаемой структуре, предотвращая ошибки типов еще на этапе разработки.

Заключение

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