Урок из полного доступа, первые уроки курса бесплатно Официальный курс Anthropic Academy на русском
Урок 36 · Видео · 10 мин

Возвращаем Claude результат инструмента

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

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

О чём урок

Взаимодействие с большими языковыми моделями (LLM), такими как Claude, часто выходит за рамки простого обмена сообщениями. Чтобы Claude мог выполнять сложные задачи, требующие доступа к актуальной информации или внешним системам, мы используем механизм инструментов (tools). Это позволяет Claude "вызывать" функции, которые вы определяете, будь то поиск информации в базе данных, отправка электронного письма или получение текущего времени. Однако сам по себе вызов инструмента — это лишь половина дела. После того как Claude запрашивает использование инструмента, ваша задача — выполнить соответствующую функцию и, что самое главное, отправить результаты обратно. Только так Claude получит необходимую информацию и сможет завершить рабочий процесс, предоставив пользователю осмысленный ответ.

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

Для доступа к параметрам, которые Claude хочет передать вашей функции, вы обычно обращаетесь к свойству input внутри блока ToolUse. Например, если ответ Claude находится в переменной response, параметры могут быть доступны через response.content[1].input. Это свойство возвращает словарь, содержащий аргументы, которые Claude хочет передать вашей функции.

Предположим, у вас есть функция Python, которая ожидает именованные аргументы, например, get_current_datetime(timezone="UTC"). Поскольку Claude передает параметры в виде словаря, вы можете использовать синтаксис распаковки словаря Python (**) для удобной передачи этих аргументов вашей функции. Например:

get_current_datetime(**response.content[1].input)

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

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

Блок tool_result имеет несколько важных свойств, которые обеспечивают правильное сопоставление…

План урока

  1. Отправка результатов использования инструментов Claude
  2. Выполнение функции инструмента
  3. Формирование блока результатов инструмента
  4. Обработка нескольких вызовов инструментов
  5. Построение последующего запроса к Claude
  6. Отправка окончательного запроса и завершение цикла

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

Откройте полный доступ

Вы прошли бесплатные уроки. Выберите тариф, чтобы продолжить обучение.

Курсы Anthropic 1 490 ₽ Разовый платёж, навсегда
  • Все курсы от Anthropic (34 шт.)
  • Именной сертификат по каждому пройденному курсу
Оплатить
Полный доступ 4 900 ₽ Разовый платёж, навсегда
  • Все 77 курсов от 11 AI-провайдеров
  • Библиотека промптов и новые курсы
Оплатить

Безопасная оплата через Robokassa: СБП, карты, электронные кошельки. Доступ откроется в этом браузере и придёт письмом. Уже оплатили? Восстановить доступ

Урок входит в темы

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