Prompt Engineering & LLM Optimization for Developers · Урок

Потоковая передача ответов LLM пользователям

Доставляйте токены пользователям в реальном времени. Узнайте, как работает потоковая передача, почему она уменьшает воспринимаемую задержку и как получать потоковое завершение в коде.

Урок 4 из 413 шагов

«Потоковая передача ответов LLM пользователям» — бесплатный урок Prompt Engineering & LLM Optimization for Developers на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Prompt Engineering & LLM Optimization for Developers, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Prompt Engineering & LLM Optimization for Developers содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Why Stream?

By default an LLM call returns the entire response only after generation finishes. For long answers this feels slow.

Streaming sends tokens as they are produced, so the user sees text appear word-by-word — drastically improving perceived responsiveness.

Time to First Token

Two latency numbers matter:

  • TTFT (time to first token): how long until the first word appears
  • Total time: until the full answer is ready

Streaming barely changes total time but makes TTFT the number your users actually feel.

Server-Sent Events

Most LLM APIs stream over Server-Sent Events (SSE): a long-lived HTTP response where each chunk is a small JSON event prefixed with data:.

The stream ends with a special [DONE] marker.

Enabling Streaming

You opt in by setting a flag on the request. The API then returns an iterable stream instead of a single object.

const stream = await client.chat.completions.create({
  model: "gpt-4o-mini",
  messages: messages,
  stream: true
});

Reading Chunks

Each chunk carries a delta — the new piece of text. You concatenate deltas to rebuild the full message.

let full = "";
for await (const chunk of stream) {
  const piece = chunk.choices[0].delta.content || "";
  full += piece;
  process.stdout.write(piece);
}

Updating the UI

On the frontend you append each delta to the visible message. A simple approach: keep state and re-render on every token.

function onToken(token, setText) {
  setText(prev => prev + token);
}

Handling the Done Signal

When the stream closes, finalize: stop the typing indicator, persist the full message, and re-enable the input box.

stream.on("end", () => {
  saveMessage(full);
  hideTypingIndicator();
});

Errors Mid-Stream

A stream can fail halfway. Always wrap consumption in try/catch and show whatever partial text you already received rather than discarding it.

try {
  for await (const c of stream) { /* ... */ }
} catch (e) {
  showPartial(full);
  reportError(e);
}

Cancellation

Users may want to stop a long answer. Pass an AbortController signal so you can cancel the request and free server resources.

const controller = new AbortController();
client.chat.completions.create({ ...opts, signal: controller.signal });
// later
controller.abort();

Streaming with Tools

When the model is calling a function, tool-call arguments also arrive as deltas. Buffer them until the call is complete before executing the tool.

Cost & Token Counting

Streaming does not change cost — you still pay per token. To count usage, sum the tokens you received, or request a final usage event if the API supports it.

Quick Check

Test your streaming knowledge.

Recap

You learned to stream LLM responses: opt in with a stream flag, read incremental delta chunks over SSE, update the UI per token, handle the done signal, manage errors and cancellation, and remember streaming improves perceived latency without changing cost.

Можно начать бесплатно

Изучай Prompt Engineering & LLM Optimization for Developers с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
12
Уроки
48

Часто задаваемые вопросы

Урок «Потоковая передача ответов LLM пользователям» бесплатный?

Да — полный текст урока «Потоковая передача ответов LLM пользователям» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Prompt Engineering & LLM Optimization for Developers, подпишись на CoddyKit PRO. Курс Prompt Engineering & LLM Optimization for Developers содержит 4 уроков всего.

Чему я научусь в уроке «Потоковая передача ответов LLM пользователям»?

Доставляйте токены пользователям в реальном времени. Узнайте, как работает потоковая передача, почему она уменьшает воспринимаемую задержку и как получать потоковое завершение в коде. Ты практикуешь Prompt Engineering & LLM Optimization for Developers с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Prompt Engineering & LLM Optimization for Developers?

Предыдущий опыт не требуется. Prompt Engineering & LLM Optimization for Developers на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Потоковая передача ответов LLM пользователям»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Prompt Engineering & LLM Optimization for Developers?

Да. Каждый урок Prompt Engineering & LLM Optimization for Developers включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Генерация с дополнением посредством поиска (RAG)
  2. Вызов функций и использование инструментов
  3. Создание простых агентов на основе LLM
  4. Потоковая передача ответов LLM пользователям
← Назад к Prompt Engineering & LLM Optimization for Developers