Потоковая передача
Потоковая передача 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]