Перейти к содержимомуKumoДокументация
Разделы
На странице
Начало работы

Быстрый старт

Три минуты между браузером и ответом модели: ключ в консоли, base URL в клиенте, первый вызов. Ниже — то же самое подробно.

Открыть как Markdown

За три минуты

  1. Создайте ключВ консоли, на экране ключей. Секрет показывается один раз; скопируйте его сразу.
  2. Пополните кошелёкНовый кошелёк создаётся пустым; без пополнения первому вызову нечем платить.
  3. Укажите base URLНаправьте любой OpenAI-совместимый клиент на `https://api.kumorouter.com/v1` и отдайте ему ключ.
  4. Сделайте вызовНазовите модель и потолок вывода. Ответ придёт в той же форме, которую клиент уже разбирает.
Заметка

Новый кошелёк пуст, и вызов, которому нечем платить, отвечает 402 — пополните баланс на странице оплаты →.

curl https://api.kumorouter.com/v1/chat/completions \
  -H "Authorization: Bearer $KUMO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model>",
    "max_tokens": 128,
    "messages": [{ "role": "user", "content": "Объясни токены одной строкой." }]
  }'

Выберите модель в списке над примерами — её идентификатор подставится во все примеры на этой странице, и код можно копировать как есть.

Каталог моделей → Как пишется заголовок →

Заведите аккаунт

Всё в этом разделе происходит в консоли. Аккаунт — это адрес почты и пароль; ничего ставить не нужно, и карту никто не спрашивает до того, как ключ окажется у вас в руках.

  1. Откройте консольЭто отдельный хост продукта, и там живут все операции с аккаунтом.
  2. Создайте аккаунтАдрес, пароль не короче **6 символов** (верхняя граница — 256 **байт** UTF-8) и два согласия, которых просит форма. Нижняя граница считает символы, поэтому шесть букв — это шесть букв в любом алфавите.
  3. Вы уже внутриТот же ответ, что создаёт аккаунт, выпускает и сессию: консоль сама ставит себе куку и открывает обзор, входить отдельно не нужно и копировать нечего.

Письмо с подтверждением адреса обычно приходит своим чередом. Его ссылка удостоверяет, что адрес ваш, и сегодня этим всё и исчерпывается: ни ключ, ни первый вызов её не ждут, поэтому отсутствие письма — не тупик. Отправка делается по мере возможности: под нагрузкой её могут пропустить, а ошибку доставки — проглотить, и регистрация в любом случае состоится.

Выпустите ключ

Ключ создаётся на экране ключей в консоли. Секрет показывается один раз, на том экране, который его создаёт, и больше никогда: платформа хранит только его хэш вместе с префиксом и хвостом, которые называют ключ в списке.

  • Скопируйте секрет в своё хранилище, не уходя с экрана создания.
  • Держите его в переменной окружения, а не в исходниках.
  • Потерянный ключ не восстанавливают — вместо него выпускают новый.

Открыть консоль → Что помнит платформа о ключе →

Пополните кошелёк

Кошелёк создаётся вместе с организацией и на старте пуст. Пополнение делается из консоли — картой, СБП или криптовалютой, в зависимости от того, что предложит платёжная система; минимальной суммы нет.

Как пополнить кошелёк →

Сделайте вызов

Направьте любой OpenAI-совместимый клиент на https://api.kumorouter.com/v1 и дайте ему ключ. В этом вся миграция: меняются base URL и ключ, а остальной ваш код — нет.

Модель называется каноническим идентификатором или псевдонимом, который несёт опубликованный каталог. <model> в примерах стоит вместо такого имени — спросите список у шлюза командой curl https://api.kumorouter.com/v1/models, посмотрите его на странице моделей или сверьте ставки в прайс-листе.

Потолок вывода обязателен. max_tokens (или max_completion_tokens — это то же самое) позволяет платформе сделать резерв под вызов до того, как он уйдёт к провайдеру; запрос без него отвергается, а не остаётся неограниченным.

Что приходит в ответ

Ответ принадлежит самому этому протоколу, а не переведён из другого: choices, причина завершения и счётчики токенов приходят в той форме, которую клиент уже разбирает.

{
  "id": "chatcmpl-8f2b7e10c9",
  "object": "chat.completion",
  "model": "<model>",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Токены — это небольшие куски текста, которые модель читает и пишет."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 18,
    "total_tokens": 30
  }
}

Все поля операции → Как выглядит отказ →

Включите поток

Добавьте "stream": true — и тот же вызов ответит как text/event-stream: события chat.completion.chunk в порядке прихода, затем завершающий кадр [DONE]. Попросите счётчики токенов через stream_options — и перед этим кадром придёт чанк с расходом.

Отказ, решённый до первого события, приходит обычной JSON-ошибкой — ровно так же, как в унарном вызове. Сбой после начала потока обрывает его без завершающего кадра: именно так клиент отличает законченный ответ от обрезанного, поэтому поток, остановившийся до [DONE], считайте неудачным вызовом, а не коротким.

curl -N https://api.kumorouter.com/v1/chat/completions \
  -H "Authorization: Bearer $KUMO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model>",
    "max_tokens": 128,
    "stream": true,
    "stream_options": { "include_usage": true },
    "messages": [{ "role": "user", "content": "Напиши хайку про задержку." }]
  }'

Поток целиком, событие за событием →

Убедитесь, что ключ работает

Прежде чем вшивать ключ куда-либо, спросите у платформы, что она о нём думает. Эхо личности — единственная операция, которая отвечает личностью самого предъявленного ключа: его именем, тем, чем он оплачивается, и сроком. Она говорит «да, ключ живой, и вот что ему разрешено» без единой написанной вами строки.

Отказ в предъявлении всегда один и тот же 401. Отсутствующий заголовок, искажённый ключ, неизвестный, отозванный и истёкший отвечаются одинаково, и ответ не говорит, что именно из этого случилось. Какой из ваших ключей жив, знает консоль, а не шлюз.

Проверить ключ →

Что дальше