http://HOST:11400 или https://HOST в зависимости от вашей установки./v1 в переменную base URL, если клиент сам дописывает пути.Поддерживаются все варианты ниже:
Authorization: Bearer sel_...
Authorization: Basic base64("sel_...:")
Authorization: Basic base64("username:sel_...")
x-selector-api-key: sel_...
selector-api: sel_...
Scope API-ключа: all или local. Для local облачные модели скрываются и недоступны.
Сервисный health: статус прогрева источников, очереди инференса, reachable провайдеры/модели.
curl -sS https://HOST/healthz
Веб-панель мониторинга.
Полная статистика для панели: модели, провайдеры, лимиты, очередь, топы, daily-метрики, local GPU state.
curl -sS -u "sel_...:" https://HOST/info/stats | jq .models_summary
Инструкция и API reference.
Статические ресурсы интерфейса.
Ollama-совместимый список моделей. Всегда содержит спец-модель selector.
В details добавляются selector-поля: selector_model_type, selector_source_provider_type, selector_source_upstream, selector_bad_model.
curl -sS -u "sel_...:" https://HOST/api/tags | jq '.models[0:5]'
OpenAI-compatible список моделей (для клиентов v1).
curl -sS -u "sel_...:" https://HOST/v1/models | jq '.data[0:5]'
Чат в формате Ollama. Поддерживает stream: true/false.
curl -X POST https://HOST/api/chat \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sel_..." \
-d '{
"model":"selector",
"messages":[{"role":"user","content":"Ты кто?"}],
"stream":false
}'
Текстовая генерация в формате Ollama.
curl -X POST https://HOST/api/generate \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sel_..." \
-d '{"model":"selector","prompt":"Сделай краткий план","stream":false}'
provider_key / provider: выбрать конкретный экземпляр провайдера для модели (если их несколько).OpenAI-style chat completions. Поддерживается streaming и passthrough, где возможно.
curl -X POST https://HOST/v1/chat/completions \
-H "Content-Type: application/json" \
-u "sel_...:" \
-d '{
"model":"gpt-oss:20b",
"messages":[{"role":"user","content":"Сколько сейчас времени?"}],
"stream":false
}'
Responses API root-path (совместимость для клиентов, вызывающих /responses).
Responses API в пространстве /v1. Selector конвертирует форматы при необходимости.
curl -X POST https://HOST/v1/responses \
-H "Content-Type: application/json" \
-u "sel_...:" \
-d '{"model":"selector","input":"Привет"}'
Регистрация пользователя. Новый пользователь попадает в статус pending до подтверждения admin.
{"username":"user1","password":"pass12345"}
Логин по username/password. Возвращает session cookie.
{"username":"user1","password":"pass12345"}
Логаут и удаление сессионных cookie.
Информация о текущем пользователе: роль, статус, баланс, scope, dlp_disabled.
Смена собственного пароля (только при auth_via=session).
{"current_password":"old","new_password":"new"}
Вкл/выкл проверки конфиденциальности для текущего пользователя.
{"disabled": true}
Создать API ключ. Поля: name, scope (all или local).
{"name":"codex","scope":"all"}
Список API ключей пользователя (без полного значения ключа).
Отозвать API ключ по id.
{"id": 123}
Список ваших опубликованных ресурсов и их статистики (модели, запросы, токены, заработанные баллы).
Последняя история начислений по вашим ресурсам. Поддерживает query-параметр ?limit=20.
Зарегистрировать свой ollama или lmstudio ресурс.
{"kind":"ollama","base_url":"http://127.0.0.1:11434","label":"home-ollama"}
Периодический heartbeat от утилиты публикации ресурса.
{"id":1,"status":"active","last_models_count":12}
{"id":1,"enabled":false}
{"id":1}
Эти endpoint-ы используются утилитой scripts/share_resource_agent.py. В UI страницы /info для пользователя есть готовые команды запуска для Linux и Windows, а также отдельная история начислений.
Список ожидающих решений маршрутизации (local/cloud) при обнаружении important idea.
Подтверждение решения.
{"decision_id":"dec_...","action":"local"}
Требуется роль admin и session auth.
Список пользователей, роли/статусы, баланс, user activity (IP и модельные счётчики).
Создать пользователя вручную.
{"username":"u2","password":"pass12345","role":"user","status":"active"}
{"username":"u2","role":"admin"}
{"username":"u2","status":"active"}
{"username":"u2","password":"newpass"}
{"username":"u2","credits":1500}
{"username":"u2"}
Запуск проверки автообновления вручную.
Детали конкретного запроса: служебные поля и log entries (без тел запроса/ответа).
Логи ограничены последними 10 запросами на каждого пользователя.
Для части провайдеров Selector использует сквозной passthrough, чтобы поведение максимально совпадало с upstream API.