Skip to main content
Server-Sent Events (SSE): Потоковая передача использует формат SSE с типом контента text/event-stream.

Как работает потоковая передача

1

Включение потоковой передачи

Установите stream: true в вашем запросе для получения инкрементных ответов.
2

Получение фрагментов

Получайте токены ответа по мере их генерации, не дожидаясь завершения.
3

Обработка событий

Обрабатывайте события data: содержащие JSON-фрагменты до сигнала [DONE].

Примеры реализации

С асинхронной поддержкой

Формат событий потока

События Delta

Каждый фрагмент потока следует этому формату:

Жизненный цикл потока

  1. Начальный фрагмент - Содержит роль, но не контент:
  1. Фрагменты контента - Инкрементный текст:
  1. Финальный фрагмент - Включает finish_reason:
  1. Сигнал окончания потока:

Расширенные возможности потоковой передачи

Вызов функций в потоках

Потоковая передача вызовов функций по мере их генерации:

Отслеживание прогресса

Обработка ошибок в потоках

Потоковые соединения могут прерываться в середине потока. Всегда реализуйте правильную обработку ошибок.

Оптимизация производительности

Стратегия буферизации

Сценарии использования

Интерфейс живого чата

Перевод в реальном времени

Лучшие практики

  1. Обрабатывайте прерывания соединений - Реализуйте логику повторных попыток с экспоненциальной задержкой
  2. Буферизация для обновлений UI - Не обновляйте DOM для каждого фрагмента, чтобы избежать проблем с производительностью
  3. Показывайте индикаторы загрузки - Отображайте индикаторы печати или прогресс-бары
  4. Реализуйте таймауты - Установите разумные таймауты для потоковых соединений
  5. Очищайте ресурсы - Всегда правильно закрывайте потоки, чтобы избежать утечек памяти

Следующие шаги