Перейти к содержанию
Справочник APIKimi · Streaming и usage

Kimi · Streaming и usage

Нативный SSE и два места, где клиент может увидеть одну статистику токенов.

Для SSE передайте stream: true. Kimi кладёт usage внутрь завершающего элемента choices[0] рядом с finish_reason, даже если stream_options.include_usage не запрошен.

Запрос с отдельным итоговым usage-кадром

json
{
  "model": "k3",
  "messages": [{"role": "user", "content": "Привет!"}],
  "max_tokens": 128,
  "stream": true,
  "stream_options": {"include_usage": true}
}

Почему usage выглядит двойным

  1. Завершающий choice-кадр содержит finish_reason и choices[0].usage. Он приходит всегда.
  2. Только при include_usage: true после него приходит отдельный верхнеуровневый кадр с choices: [] и usage.
  3. Это одна и та же статистика. Клиент не должен складывать её дважды.
Почему usage нельзя сложить дважды
Kimi через GUARD API
stream: true
Части ответа
delta.content
Завершающий choice
finish_reason: "stop"choices[0].usage
Приходит всегда
Дополнительный кадр
choices: []usage
include_usage: true
Одна и та же статистика
12 + 8 = 20
Учитывать один раз
Конец потока
data: [DONE]
choices[0].usage приходит в завершающем choice. При include_usage: true дополнительный кадр повторяет ту же статистику. Учитывайте её один раз.
text
data: {"choices":[{"finish_reason":"stop","usage":{"prompt_tokens":12,"completion_tokens":8,"total_tokens":20}}]}

data: {"choices":[],"usage":{"prompt_tokens":12,"completion_tokens":8,"total_tokens":20}}

data: [DONE]

Разделы документации

На этой странице