
О чём урок
Когда вы используете инструменты Claude в сочетании со стримингом (потоковой передачей данных), вы получаете обновления в реальном времени по мере того, как AI генерирует аргументы для этих инструментов. Это значительно улучшает пользовательский опыт, делая взаимодействие более отзывчивым. Однако за кулисами этого процесса скрываются важные детали, которые стоит понять, чтобы максимально эффективно использовать возможности Claude API. При включенном стриминге Claude отправляет различные типы событий по мере обработки вашего запроса. Вы, вероятно, уже знакомы с событием ContentBlockDelta, которое используется для обычной генерации текста. Однако для работы с инструментами появляется новый тип событий, который содержит два ключевых свойства: partial_json: фрагмент JSON, представляющий часть аргументов инструмента. snapshot: кумулятивный JSON, собранный из всех полученных фрагментов на данный момент. Эти свойства позволяют вам отслеживать процесс формирования аргументов инструмента в реальном времени. Например, в вашем коде вы можете обрабатывать эти события следующим образом: Именно здесь кроется важная особенность стандартного поведения API. API Anthropic не отправляет каждый фрагмент сразу же, как только Claude его генерирует. Вместо этого он буферизует фрагменты и сначала проверяет их. API ждет, пока будут сформированы полные пары ключ-значение верхнего уровня, прежде чем что-либо отправить. Например, если ваш инструмент ожидает следующую структуру: API будет ждать, пока значение для ключа url не будет полностью сформировано и проверено по вашей схеме. Только после этого будут отправлены все буферизованные фрагменты, относящиеся к этому ключу. Затем процесс повторяется для следующего ключа, например, word_count. Этот процесс валидации объясняет, почему вы можете наблюдать задержки, за которыми следуют всплески текста, даже при включенном стриминге. Фрагменты удерживаются до тех пор, пока не будет готова полная и валидная пара ключ-значение верхнего уровня. Если вам требуется более быстрая и детальная потоковая передача данных – возможно, для того чтобы показывать пользователям немедленные обновления или быстро начинать обработку частичных результатов – вы можете включить функцию, называемую Fine-Grained Tool Calling (детальный вызов инструментов).
План урока
- Детальный вызов инструментов (Fine-Grained Tool Calling)
- Основы потоковой передачи данных при использовании инструментов
- Как работает валидация JSON по умолчанию
- Обработка невалидного JSON
- Когда использовать Fine-Grained Tool Calling?
Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.