Потоковые ответы
Тема дорожной карты · Claude от Anthropic
Потоковые ответы — это возможность получения данных по мере их генерации, что особенно полезно для создания интерактивных чат-систем. Установка параметра "stream": true в вызове messages.create или использование метода client.messages.stream в SDK позволяет получить данные в формате text/event-stream, содержащие события message_start, content_block_start, content_block_delta, message_delta, message_stop. Стриминг уменьшает время до первого токена, что позволяет пользователю видеть прогресс ответа и быстро отображать блоки использования инструментов.
Как это работает
Потоковые ответы используют Messages API, который основан на REST/JSON. Обязательные параметры включают model, max_tokens и массив messages, состоящий из чередующихся сообщений пользователя и ассистента. Опциональные параметры включают system (системный промпт), tools (определения функций), temperature (уровень детерминизма, где 0 соответствует полностью детерминированному поведению, а 1 — более креативному), top_p и stop_sequences. Потоковые данные передаются через параметр stream: true с использованием стандартного протокола text/event-stream. Для аутентификации используется заголовок Authorization: Bearer <API_KEY> и заголовок anthropic-version. SDK доступны на Python, TypeScript, Java и Go, предоставляя удобные инструменты для работы с потоковыми данными.
Когда применять
SDK предпочтительнее использования сырого HTTP, так как они автоматически обрабатывают повторные попытки, ограничения скорости, потоковые данные и ошибки. Всегда укажите явный max_tokens, не полагайтесь на дефолтные значения. Потоковые ответы полезны для пользователей, которые хотят видеть прогресс генерации, а серверная сторона может собирать полный выход для логов. При получении ошибок 429 или 5xx следует использовать экспоненциальное замедление для повторных попыток. Кеширование промптов, которые не изменяются между запросами (например, системный промпт и несколько примеров), может значительно снизить стоимость запросов.
Типичные ошибки
Типичные ошибки при использовании потоковых ответов включают неправильную обработку ошибок 429 (ограничение скорости), утечку API-ключа при использовании клиентской стороны JavaScript (всегда следует проксировать запросы через серверную сторону), игнорирование поля usage в ответе (что приводит к невидимым затратам на запросы) и использование слишком больших значений max_tokens (что может привести к замедлению и увеличению стоимости запросов).