Запускаем функции-инструменты

Урок 34 из 89 курса «Claude в Amazon Bedrock»: официальный курс Anthropic Academy (Антропик) на русском языке. Урок входит в платный доступ; первые уроки курса бесплатно.

Кадр из видеоурока

О чём урок

Взаимодействие с большими языковыми моделями (LLM), такими как Claude, часто выходит за рамки простого обмена текстовыми сообщениями. Чтобы Claude мог выполнять сложные задачи, требующие доступа к актуальной информации или внешним системам, используется механизм инструментов (tools). Это позволяет модели вызывать определенные функции, которые вы предоставляете, например, для поиска информации в базе данных, отправки электронных писем или выполнения расчетов. Однако, когда Claude решает использовать инструмент, ваша серверная часть должна фактически выполнить запрошенную функцию и отправить результаты обратно. Этот этап является критически важным для успешного выполнения задач, требующих интеграции с внешним миром. Представьте, что пользователь просит Claude узнать текущую дату и время. Claude, понимая, что у него нет встроенной возможности получить эту информацию в реальном времени, "решает" использовать инструмент. Вот как выглядит типичный цикл взаимодействия: Запрос пользователя: Пользователь отправляет запрос Claude (например, "Какое сейчас время?"). Идентификация инструмента Claude: Claude анализирует запрос и определяет, что для его выполнения требуется вызов одной из доступных ему функций-инструментов (например, get_current_datetime). Claude генерирует ответ, который содержит не только текст, но и специальную часть toolUse с описанием инструмента, который он хочет вызвать, и необходимыми аргументами в формате JSON. Получение запроса на сервере: Ваша серверная часть или приложение получает этот ответ от Claude. Извлечение и выполнение инструмента: Ваш код извлекает информацию о запрошенном инструменте (его имя, аргументы) и вызывает соответствующую функцию на вашей стороне. Форматирование и отправка результатов: После выполнения инструмента ваш сервер форматирует полученные данные в специальную часть toolResult и отправляет ее обратно Claude. Финальный ответ Claude: Claude получает результаты выполнения инструмента, обрабатывает их и формирует окончательный, связный ответ для пользователя. Таким образом, ваша серверная часть выступает в роли "исполнителя", который переводит абстрактные запросы Claude в конкретные действия и возвращает их результаты. Важно понимать, что Claude может быть достаточно "умным", чтобы запросить выполнение нескольких инструментов в одном ответе.

План урока

  1. Выполнение функций инструментов
  2. Рабочий процесс использования инструментов
  3. Обработка множественных запросов инструментов
  4. Извлечение запросов на использование инструментов
  5. Выполнение самих инструментов
  6. Форматирование результатов инструментов
  7. Надежная обработка ошибок
  8. Завершение цикла взаимодействия

Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.

Полезные гиды