О чём урок
API Claude поддерживает параметр tool_choice, который позволяет вам указать, как вы хотите, чтобы Claude вызывал инструменты. В этом блокноте мы рассмотрим, как он работает и когда его использовать.
При работе с параметром tool_choice у нас есть три возможных варианта:
- auto позволяет Claude решать, вызывать ли какие-либо предоставленные инструменты или нет.
- any указывает Claude, что он должен использовать один из предоставленных инструментов, но не принуждает к использованию конкретного инструмента.
- tool позволяет нам принудительно использовать конкретный инструмент.
Эта диаграмма иллюстрирует, как работает каждый вариант:
Давайте рассмотрим каждый вариант подробно. Начнем с импорта Anthropic SDK:
Установка tool_choice в значение auto позволяет модели автоматически решать, использовать инструменты или нет. Это поведение по умолчанию при работе с инструментами, если вы вообще не используете параметр tool_choice.
Чтобы продемонстрировать это, мы предоставим Claude фиктивный инструмент веб-поиска. Мы будем задавать Claude вопросы, некоторые из которых потребуют вызова инструмента веб-поиска, а на другие Claude сможет ответить самостоятельно.
Начнем с определения инструмента под названием web_search. Обратите внимание, чтобы упростить эту демонстрацию, мы на самом деле не ищем в интернете.
Далее мы напишем функцию, которая принимает user_query и передает его Claude вместе с web_search_tool.
Мы также устанавливаем tool_choice в значение auto:
Вот полная функция:
Начнем с вопроса, на который Claude должен быть в состоянии ответить без использования инструмента:
Когда мы спрашиваем "Какого цвета небо?", Claude не использует инструмент. Давайте попробуем спросить что-то, на что Claude должен использовать инструмент веб-поиска для ответа:
Когда мы спрашиваем "Кто выиграл Гран-при Майами 2024 года?", Claude использует инструмент веб-поиска!
Давайте рассмотрим еще несколько примеров:
При работе с tool_choice, установленным на auto, важно уделить время написанию подробного prompt. Часто Claude может быть слишком усерден в вызове инструментов. Написание подробного prompt помогает Claude определить, когда вызывать инструмент, а когда нет.
Мы можем принудительно использовать конкретный инструмент с помощью…
План урока
- Выбор инструмента
- Авто
- Ваш prompt имеет значение!
- Принудительное использование конкретного инструмента
- Любой
Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.