Alltokens

Доказательство маршрута в ответах

API, быстрый старт и гайды. Совместимо с OpenAI chat completions и streaming.

Route proof in responses

Для не-streaming запросов к chat/completions (и при использовании маршрутизатора) API добавляет в ответ заголовки и поле в теле с фактическими данными о выбранной модели и провайдере.

Заголовки ответа

ЗаголовокОписание
x-alltokens-request-idID генерации (тот же, что в теле ответа)
x-alltokens-route-modeРежим: model, provider или fixed
x-alltokens-chosen-modelФактическая модель (например mistralai/mistral-nemo)
x-alltokens-chosen-providerПровайдер, обработавший запрос (например DeepInfra)
x-alltokens-failover-countКоличество переключений при сбоях (пока 0)
x-alltokens-total-latency-msОбщая латентность запроса (мс)
x-alltokens-ttft-msОценка time-to-first-token (мс), если доступно

Данные берутся из метаданных выполнения запроса.

Поле в теле: alltokens_route

В корень JSON ответа completions добавляется объект:

json
"alltokens_route": {
  "trace_id": "<request-id>",
  "candidates": { "count": 0 },
  "decision_reason": "router_selected"
}
ПолеОписание
trace_idВнутренний ID запроса
candidates.countЗарезервировано
decision_reasonКраткая причина выбора (идентификатор режима/роутера)

Типичные значения decision_reason: идентификатор роутера (например router_auto), cheapest_under_budget, fastest_available, balanced_best_match, fixed_model, provider_fallback.

Когда заголовки и alltokens_route есть

  • Запрос к chat/completions (или completions) с stream: false.
  • В ответе есть поле id (generation id), и метаданные генерации успешно получены (при небольшой задержке записи метаданных они подставляются после повторных попыток).

При stream: true заголовки и alltokens_route в поток не добавляются. Чтобы получить те же данные после стрима, используйте Generation или Route explain по полю id из chunk'ов.