Как получить от модели строгий JSON

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

Цели урока

  • Понять использование инструментов для принудительного получения структурированного ответа
  • Использовать этот «трюк» для генерации структурированного JSON

О чём урок

Один из наиболее интересных способов использования инструментов — это принуждение Claude отвечать структурированным содержимым, таким как JSON. Существует множество ситуаций, в которых мы можем захотеть получить стандартизированный JSON-ответ от Claude: извлечение сущностей, суммирование данных, анализ настроений и т.д. Один из способов сделать это — просто попросить Claude ответить в формате JSON, но это может потребовать дополнительной работы для фактического извлечения JSON из большой строки, которую мы получаем от Claude, или для обеспечения того, чтобы JSON соответствовал точному формату, который нам нужен. Хорошая новость заключается в том, что всякий раз, когда Claude хочет использовать инструмент, он уже отвечает, используя идеально структурированный формат, который мы указали ему при определении инструмента. В предыдущем уроке мы дали Claude инструмент-калькулятор. Когда он хотел использовать этот инструмент, он отвечал таким содержимым: Это подозрительно похоже на JSON! Если мы хотим, чтобы Claude генерировал структурированный JSON, мы можем использовать это в своих интересах. Все, что нам нужно сделать, это определить инструмент, который описывает конкретную структуру JSON, а затем рассказать о нем Claude. Вот и все. Claude ответит, думая, что он «вызывает инструмент», но на самом деле нас интересует только структурированный ответ, который он нам дает. Чем это отличается от того, что мы делали в предыдущем уроке? Вот диаграмма рабочего процесса из прошлого урока: В прошлом уроке мы предоставили Claude доступ к инструменту, Claude захотел его вызвать, а затем мы фактически вызвали соответствующую функцию инструмента. В этом уроке мы собираемся «обмануть» Claude, рассказав ему о конкретном инструменте, но нам не потребуется фактически вызывать соответствующую функцию инструмента. Мы используем инструмент как способ принудительного получения определенной структуры ответа, как показано на этой диаграмме: Начнем с простого примера. Предположим, мы хотим, чтобы Claude анализировал настроения в тексте и отвечал JSON-объектом, который соответствует следующей форме: Все, что нам нужно сделать, это определить инструмент, который фиксирует эту форму с помощью JSON Schema.

План урока

  1. Принудительное использование JSON с помощью инструментов
  2. Анализ настроений
  3. Принудительное использование инструмента с помощью tool_choice
  4. Пример извлечения сущностей
  5. Пример сводки из Википедии с более сложными данными
  6. Упражнение

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

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