ИнференсВозможности
Потоковая передача
Как получать ответ модели по частям, пока он пишется, а не дожидаться его целиком.
При потоковой передаче ответ приходит по частям, как в чате: первые слова
появляются сразу, а не после того, как модель закончит весь текст. Это удобно,
когда ответ читает человек и ждать его целиком неприятно. Чтобы включить
потоковую передачу, добавьте в запрос "stream": true.
Запрос
curl https://api.yenisei.ru/v1/chat/completions \
-H "Authorization: Bearer $YENISEI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "yenisei-100",
"messages": [{"role": "user", "content": "Расскажи про Енисей"}],
"stream": true
}'
# client — как на странице «Первый запрос»
stream = client.chat.completions.create(
model="yenisei-100",
messages=[{"role": "user", "content": "Расскажи про Енисей"}],
stream=True,
)
for chunk in stream:
part = chunk.choices[0].delta.content
if part:
print(part, end="", flush=True)
Формат потока
Ответ приходит событиями Server-Sent Events: каждая строка data: {…}
содержит очередной кусочек текста в choices[].delta.content, а последняя
строка — data: [DONE].
Обрыв соединения
Пока идёт поток, соединение остаётся открытым. Если оно оборвалось на
середине, уже полученная часть ответа списана с вашего запаса кредитов. Чтобы
продолжить разговор, отправьте новый запрос и добавьте полученный текст в
messages.