О чём урок
При создании чат-приложений с Claude возникает серьёзная проблема с пользовательским опытом: генерация ответов может занимать 10-30 секунд, оставляя пользователей смотреть на индикатор загрузки. Решение — потоковая передача ответов, которая позволяет пользователям видеть текст, появляющийся по частям по мере его генерации Claude, создавая гораздо более отзывчивое ощущение. В типичной настройке чата ваш сервер отправляет сообщение пользователя Claude и ждёт полного ответа, прежде чем отправить что-либо обратно клиенту. Это создаёт неудобную задержку, при которой пользователи не получают обратной связи о том, что что-то происходит. При включённой потоковой передаче Claude немедленно отправляет первоначальный ответ, указывающий на то, что он получил ваш запрос и начинает генерировать текст. Затем вы получаете серию событий, каждое из которых содержит небольшую часть общего ответа. Ваш сервер может пересылать эти текстовые фрагменты вашему клиентскому приложению по мере их поступления, позволяя пользователям видеть, как ответ формируется слово за словом. Все эти события являются частью одного запроса к Claude. Когда вы включаете потоковую передачу, Claude отправляет несколько типов событий: message_start — отправляется новое сообщение content_block_start — начало нового блока, содержащего текст, использование инструментов или другой контент content_block_delta — фрагменты фактически сгенерированного текста content_block_stop — текущий блок контента завершён message_stop — текущее сообщение завершено message_delta — конец информации о текущем сообщении События content_block_delta содержат фактически сгенерированный текст, который вы захотите отобразить пользователям. Чтобы включить потоковую передачу, добавьте stream=True в ваш вызов messages.create: Вместо ручного анализа событий вы можете использовать упрощённый интерфейс потоковой передачи SDK, который извлекает только текстовое содержимое: Этот подход автоматически отфильтровывает всё, кроме фактического текстового содержимого, что обычно и требуется для отображения ответов пользователям. Хотя потоковая передача отдельных фрагментов отлично подходит для пользовательского опыта, вам часто требуется полное сообщение для хранения или дальнейшей обработки.
План урока
- Потоковая передача ответов
- Проблема со стандартными ответами
- Как работает потоковая передача
- Понимание событий потока
- Базовая реализация потоковой передачи
- Упрощённая потоковая передача текста
- Получение полного сообщения
- Структурированные данные
Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.