OneMux/Документация/Потоковая передача

Потоковая передача

Потоковая передача Server-Sent Events (SSE) возвращает ответы ИИ посимвольно, как на печатной машинке, улучшая взаимодействие с пользователем. На этой странице описано, как включить потоковую передачу, разбирать блоки данных SSE и обрабатывать потоковое соединение. Подходит для чатов, генерации контента и других сценариев.

Зачем нужна потоковая передача?

  • Ответы больших языковых моделей приходят медленно, поэтому пользователям нужна мгновенная обратная связь
  • Эффект печатной машинки, как в ChatGPT
  • Улучшает взаимодействие с пользователем

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

Укажите в запросе "stream": true

from openai import OpenAI

client = OpenAI(
    api_key="sk-xxx",
    base_url="https://api.onemux.net/v1"
)

response = client.chat.completions.create(
    model="gpt-6.1-sol",
    messages=[{"role": "user", "content": "Напиши стихотворение"}],
    stream=True
)

for chunk in response:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

Формат ответа SSE

Потоковый ответ использует формат Server-Sent Events (SSE). Каждый блок данных начинается с data::

data: {"id":"chatcmpl-xxx","choices":[{"delta":{"content":"Ты"}}]}

data: {"id":"chatcmpl-xxx","choices":[{"delta":{"content":"привет"}}]}

data: {"id":"chatcmpl-xxx","choices":[{"delta":{"content":"!"}}]}

data: [DONE]