Гайд · TNWS AI

Как сделать streaming-ответ YandexGPT и корректно собрать текст

WindowsmacOSLinuxYandexGPT#YandexGPT#streaming#Yandex Cloud
2 мин

Потоковая генерация YandexGPT: stream:true, чтение событий, накопление текста, status, отмена и обработка разрыва соединения.

Установите stream:true в completionOptions и обрабатывайте поток по протоколу официального endpoint. Каждый полученный фрагмент — часть незавершённого ответа. Успех подтверждается финальным статусом, а не тем, что пользователь увидел первые слова.

Рабочий пример

{
 "modelUri":"gpt://<folder_id>/yandexgpt",
 "completionOptions":{
   "stream":true,
   "temperature":0.3,
   "maxTokens":"1000"
 },
 "messages":[{"role":"user","text":"Составь краткую инструкцию из 5 шагов"}]
}

Проверенные факты

  • Поток снижает время до первого видимого фрагмента, но не обязательно полное время.
  • Клиент должен различать промежуточные и финальные данные и не сохранять каждый chunk как отдельное сообщение.
  • При разрыве текст может оказаться оборванным; его маркируют как незавершённый.
  • Кнопка отмены должна закрывать запрос и прекращать отображение, но уже полученные данные могут остаться в интерфейсе.

Порядок действий

  1. Добавьте stream:true и используйте поддерживаемый клиент для чтения потока.
  2. На каждом событии обновляйте черновой буфер, не выполняя содержащиеся в тексте команды.
  3. На финальном status сохраните цельный результат и usage.
  4. На ошибке пометьте ответ как прерванный и предложите явный повтор.
  5. Ограничьте длину, время и число одновременных потоков.

Как проверить результат

Искусственно разорвите соединение после нескольких chunks. UI должен показать незавершённость. Затем сгенерируйте пять шагов и проверьте итог только после финала. Сравните time-to-first-chunk и total time.

Ограничения

Точный формат событий зависит от endpoint и SDK. Поток усложняет модерацию текста до показа. Для короткого JSON backend-задачи обычный ответ часто проще.

Чего не делать

  • Не считать первый chunk готовым ответом.
  • Не запускать команды из незавершённого текста.
  • Не делать автоматический повтор без защиты от дублей.

Частые вопросы

Streaming делает ответ быстрее?

Он раньше показывает начало; полное время может не уменьшиться.

Что сохранять в БД?

Цельный подтверждённый результат и технические метрики.

Что делать при обрыве?

Пометить ответ незавершённым и предложить контролируемый повтор.

Подходит ли для JSON?

Только если клиент корректно собирает весь объект до парсинга.

Официальный источник

Проверено 12 сентября 2026 года: https://yandex.cloud/ru/docs/foundation-models/concepts/yandexgpt/

Читайте также

Комментарии

Пока тихо. Скажите первое слово