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

Модели

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

Открыть как Markdown

Что такое каталог

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

curl https://api.kumorouter.com/v1/models

Ответ — список в форме OpenAI: object: "list" и массив data, в котором каждый элемент — object: "model". Читать его можно без ключа.

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

canonical_nameКаноническое имя модели — то, чем её называют в запросе.
aliasesПсевдонимы, которые ведут к этой же модели.
vendorКто выпустил модель: код, отображаемые имена, фирменный цвет.
context_window_tokensСколько токенов модель принимает в одном запросе. Отсутствует, если каталог не публикует эту цифру.
max_output_tokensСколько токенов модель может выдать в ответ. Не выводится из окна контекста и объявляется отдельно.
released_onДень, когда модель выпустил её создатель, `yyyy-mm-dd`. Не день, когда её завели здесь.
supplier_countСколько поставщиков сейчас несут эту модель. Величина вычисляемая: она меняется, когда канал убирают.
protocol_codesПротоколы, по которым модель доступна.
modality_codesВид работы: генерация текста, эмбеддинги, генерация изображений.
capabilitiesВозможности по каждой паре «протокол и модальность» — см. ниже.
catalog_revisionПоле самого списка, а не модели: номер ревизии каталога, который растёт при каждом изменении.
{
  "object": "model",
  "canonical_name": "<model>",
  "aliases": ["<alias>"],
  "vendor": { "code": "<vendor>" },
  "protocol_codes": ["chat_completions"],
  "modality_codes": ["text_generation"],
  "capabilities": [
    {
      "protocol_code": "chat_completions",
      "modality_code": "text_generation",
      "streaming_status": "proven",
      "tools_status": "unproven",
      "structured_output_mode": "json_schema"
    }
  ]
}

Каталог

Все модели площадки — одной таблицей, строка на модель. Строка целиком открывает страницу модели; единственное исключение — чип у идентификатора, он кладёт имя в буфер обмена и никуда не ведёт.

МодельНазвание, под ним каноническое имя — ровно та строка, которую вы поставите в поле `model`. Рядом производитель.
ТипЧто модель делает: текст, эмбеддинги, изображения.
ПротоколыПо каким протоколам её можно звать.
КонтекстСколько токенов помещается в один запрос вместе с ответом.
Макс. выводПотолок ответа в токенах.
ВходЦена миллиона входных токенов.
ВыходЦена миллиона выходных токенов.
ВыпущенаДень, которым площадка датировала релиз модели.

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

Заголовок столбца сортирует таблицу: первое нажатие — по возрастанию, второе — по убыванию. Модель, для которой площадка ничего не опубликовала в этом столбце, уходит вниз в обе стороны: прочерк — это «не опубликовано», а не «ноль».

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

Каталог моделей

Это живой список: модели приходят из каталога платформы, цены — из опубликованного прайса. Строка целиком открывает страницу модели, заголовок столбца сортирует таблицу.

Каталог загружается

Как назвать модель

В запросе модель называют строкой в поле model. Подходит и каноническое имя, и любой псевдоним, который ведёт к той же модели.

  • Каноническое имя у модели одно, и оно принадлежит только ей.
  • Псевдоним — второе имя той же модели. В любой момент времени псевдоним ведёт ровно к одной модели; со временем его могут перенаправить, и это и есть его смысл: код, названный псевдонимом, переезжает вместе с ним.
  • Имена канонические и имена-псевдонимы живут в одном пространстве: одна и та же строка не может быть и тем и другим и не может принадлежать двум моделям.

Имя, которому не отвечает ни одна живая модель, отвергается сразу — платформа честно говорит, что такой модели у неё нет, вместо того чтобы гадать.

Заметка

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

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

Как читать возможности

У модели возможности объявлены не «вообще», а на каждую пару из протокола и модальности. Одна и та же модель может уметь по одному протоколу больше, чем по другому.

Протоколы

chat_completionsДиалоговая операция в форме OpenAI: сообщения на входе, `choices` на выходе.
responsesВторая операция той же экосистемы, с собственной формой запроса и ответа.
anthropic_messagesНативная форма Anthropic: её понимают клиенты и SDK, написанные под тот API.
embeddingsВекторы для текста.
imagesГенерация изображений.

Модальности

Модальность — это вид работы, а не форма запроса: text_generation, embeddings, image_generation. Протокол говорит, как вы обращаетесь; модальность — что вы получаете. Область ключа ограничивает именно модальности, поэтому пара из них решает, доступен ли вызов.

Три состояния

Каждая возможность — стриминг, инструменты, структурированный вывод, строгие семантики, стриминг структурированного вывода — стоит в одном из трёх состояний.

СостояниеЧто это значитЧто делает шлюз
ПодтвержденоПлатформа проверила это на настоящем канале поставщика.Вызов уходит к поставщику.
Не подтвержденоПлатформа этого не проверяла. Не «не работает», а «мы не доказали».Запрос, которому эта возможность нужна, отклоняется до обращения к поставщику.
Не поддерживаетсяВозможности здесь нет.Запрос, которому она нужна, отклоняется так же.

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

У структурированного вывода есть ещё и режим: json_object (ответ обязан быть объектом JSON) или json_schema (ответ обязан соответствовать вашей схеме); none означает, что режима нет вовсе.

Как задаётся схема ответа → Инструменты →

Страница модели

У каждой модели каталога есть своя страница по адресу /models/<каноническое имя>. На ней собрано то, что обычно приходится складывать из нескольких источников:

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

Таблица каталога выше ведёт на эти страницы, и поиск по документации их индексирует.

Как выбрать модель

Каталог отвечает на вопрос «что доступно», а выбирать приходится вам. Порядок, который экономит время:

  1. Отсеките по протоколуОставьте те модели, которые говорят на протоколе вашего клиента. Менять клиент дороже, чем менять модель.
  2. Проверьте возможностиЕсли вам нужны инструменты, стриминг или строгая схема ответа, возможность должна быть подтверждена, а не просто упомянута.
  3. Сравните объёмыОкно контекста решает, сколько вы можете подать, потолок вывода — сколько получить. Это две независимые цифры.
  4. Посчитайте ценуСтавки публикуются за миллион токенов отдельно на вход и на выход; сравнивать модели по одному числу нельзя.
  5. Проверьте измеренную производительностьВ карточке модели показаны задержка запроса, скорость генерации и доступность за последние 24 часа. Отсутствие измерений не означает нулевую задержку или идеальную доступность.
  6. Учтите дату выпускаЭто день, когда модель выпустил её создатель, и он говорит о поколении модели, а не о том, когда её завели здесь.

Не выбирайте по одному запросу. Возьмите десяток своих настоящих задач, прогоните две-три модели-кандидата и сравните ответы и расход — каталог даёт короткий список, а решает ваш прогон.

Первый вызов → Лимиты →