Диалог с инструментами в несколько шагов

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

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

О чём урок

При разработке приложений, использующих возможности больших языковых моделей (LLM), таких как Claude, часто возникает необходимость в интеграции различных внешних инструментов. Эти инструменты позволяют Claude выполнять действия, выходящие за рамки его собственных знаний, например, получать актуальные данные, выполнять вычисления или взаимодействовать с другими системами. Однако иногда для ответа на один, казалось бы, простой вопрос пользователя Claude может потребоваться последовательный вызов нескольких инструментов. Представьте сценарий: пользователь спрашивает: "Какой день будет через 103 дня от сегодняшней даты?". Чтобы ответить на этот вопрос, Claude не может просто "знать" текущую дату или выполнить сложное календарное вычисление. Ему потребуется выполнить два отдельных шага: Сначала получить текущую дату, используя один инструмент (например, get_current_datetime). Затем, имея текущую дату, добавить к ней 103 дня, используя другой инструмент (например, add_duration_to_datetime). Такой подход создает шаблон многоходового диалога, где Claude делает несколько запросов к инструментам, прежде чем предоставить окончательный ответ. Ваше приложение должно быть спроектировано таким образом, чтобы автоматически обрабатывать эту последовательность действий, обеспечивая бесшовное взаимодействие для конечного пользователя. Чтобы лучше понять, как это работает, давайте рассмотрим пошаговую последовательность событий, когда Claude нуждается в нескольких инструментах для выполнения задачи: Пользователь задает вопрос: "Какой день будет через 103 дня от сегодняшней даты?" Claude анализирует запрос: Модель понимает, что ей нужна текущая дата. Она генерирует блок использования инструмента, запрашивая вызов функции get_current_datetime. Ваш сервер обрабатывает запрос: Ваше приложение перехватывает этот запрос инструмента, вызывает соответствующую функцию на вашей стороне (например, обращается к системным часам) и возвращает результат (например, "2023-10-26"). Claude продолжает обработку: Получив текущую дату, Claude осознает, что теперь ему нужно выполнить второе действие — добавить 103 дня. Он генерирует новый блок использования инструмента, запрашивая вызов функции add_duration_to_datetime с параметрами "2023-10-26" и "103 дня". Ваш сервер обрабатывает второй запрос: Ваше приложение снова перехватывает запрос, вызывает функцию add_duration_to_datetime и возвращает результат (например, "2024-02-06").

План урока

  1. Многоходовый шаблон использования инструментов
  2. Создание цикла диалога
  3. Рефакторинг вспомогательных функций
  4. Обновление обработчиков сообщений
  5. Обновление функции чата
  6. Извлечение текста из сообщений
  7. Почему эти изменения важны

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

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