Route explain
GET https://api.alltokens.ru/api/v1/route/explain?generation_id={id}
POST https://api.alltokens.ru/api/v1/route/explain
Content-Type: application/json (для POST)
Объяснение выбора маршрута по ID генерации: модель, провайдер, латентность, стоимость, текстовая причина.
Заголовки
| Заголовок | Обязательный |
|---|---|
| Authorization: Bearer <API_KEY> | Да |
Параметры
| Параметр | Где | Обязательный | Описание |
|---|---|---|---|
| generation_id | Query (GET) или тело (POST) | Да | ID генерации из ответа chat/completions (поле id) или из streaming chunk'ов |
Тело POST: { "generation_id": "gen-..." }.
Пример GET (curl)
bash
curl -X GET "https://api.alltokens.ru/api/v1/route/explain?generation_id=gen-1770207274-TNlae8rCRGY9fD2Orf6h" \
-H "Authorization: Bearer YOUR_API_KEY"Пример POST (curl)
bash
curl -X POST "https://api.alltokens.ru/api/v1/route/explain" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"generation_id": "gen-1770207274-TNlae8rCRGY9fD2Orf6h"}'Ответ (200)
Корневой объект (все поля возвращаются API):
| Поле | Тип | Описание |
|---|---|---|
| generation_id | string | Переданный ID генерации |
| model | string | null | Модель |
| provider_name | string | null | Провайдер |
| latency_ms | number | null | Латентность (мс) |
| generation_time_ms | number | null | Время генерации (мс) |
| router | string | null | Идентификатор роутера (если был авто-выбор) |
| total_cost_usd | number | null | Стоимость (USD) |
| decision_reason | string | Текстовая строка объяснения (например: "Router ... selected model ... from provider ...; latency ... ms." или "Fixed model ... via provider ...; latency ... ms.") |
Когда использовать
После streaming: взять id из chunk'а и вызвать explain, чтобы получить модель, провайдер и причину выбора.
Коды ответов
| Код | Описание |
|---|---|
| 200 | Успех |
| 400 | Не указан generation_id |
| 401 | Не авторизован |
| 404 | Генерация не найдена |
| 500 | Внутренняя ошибка |