Перейти к содержимому
OmniRoute source

Free Provider Rankings (Arena ELO) (Русский)

В OmniRoute зарегистрировано 329 провайдеров, включая 155 записей каталога, помеченных как бесплатные/без авторизации (без авторизации, OAuth с бесплатным тарифом или API-ключ с бесплатным тарифом — см. Руководство по бесплатным тарифам и полный каталог бесплатных тарифов). Но есть нюанс: качество моделей у бесплатных провайдеров сильно различается. Провайдер без авторизации, предоставляющий передовую модель, гораздо полезнее провайдера, предлагающего небольшую устаревшую модель.

Рейтинг бесплатных провайдеров отвечает на вопрос «какой бесплатный провайдер предлагает мне лучшую модель?», сопоставляя каталог каждого бесплатного провайдера с коллективными оценками качества из рейтинга Arena AI (ELO на основе пользовательских предпочтений — тот же принцип, что используется в арене чат-ботов LMArena). Затем провайдеры ранжируются по уровню их лучшей бесплатной модели.

Рейтинг рассчитывается на основе трёх реальных источников:

  1. Списки бесплатных провайдеров — NOAUTH_PROVIDERS, а также записи OAUTH_PROVIDERS / APIKEY_PROVIDERS с флагом hasFree (src/shared/constants/providers.ts).
  2. Каталог моделей каждого провайдера из реестра провайдеров (open-sse/config/providerRegistry.ts).
  3. Производные от ELO оценки соответствия задачам, сохраняемые в таблице БД model_intelligence механизмом синхронизации Arena ELO (src/lib/arenaEloSync.ts).

Логика сопоставления находится в src/lib/freeProviderRankings.ts.


Откройте панель управления и перейдите в раздел Затраты → Рейтинг бесплатных провайдеров или откройте напрямую:

/dashboard/free-provider-rankings

На странице (src/app/(dashboard)/dashboard/free-provider-rankings/page.tsx) отображаются:

  • Пьедестал трёх лидеров (🥇 🥈 🥉) среди бесплатных провайдеров с наивысшим рейтингом.
  • Полная таблица рейтинга со столбцами: Место, Провайдер, Лучшая модель, Оценка, Средняя оценка, Модели, Тип.
  • Кнопки фильтрации по категориям: Все категории, По умолчанию, Написание кода, Проверка, Документация, Отладка.

Значок Тип каждого провайдера показывает, каким образом предоставляется бесплатный доступ:

Значок Значение
NOAUTH Всегда бесплатно, учётные данные не требуются
OAUTH OAuth-провайдер с бесплатным тарифом (hasFree)
APIKEY Провайдер с API-ключом и бесплатным тарифом (hasFree)

Оценки отображаются в виде понятных обозначений (например, Элитный, Отличный, Очень хороший, Хороший, Средний), а не чисел, поскольку базовое значение отражает относительное качество в рейтинге, а не процент.

Страница использует общедоступную конечную точку для чтения (src/app/api/free-provider-rankings/route.ts):

GET /api/free-provider-rankings
GET /api/free-provider-rankings?category=coding
GET /api/free-provider-rankings?category=coding&limit=20

Параметры запроса (проверяются с помощью Zod):

Параметр Тип По умолчанию Примечания
category string (не задано) Одно из значений: default, coding, review, documentation, debugging. Не указывайте для общего рейтинга.
limit number 50 Ограничивается диапазоном 1–100.

Структура ответа:

{
"rankings": [
{
"id": "<provider-id>",
"name": "<provider name>",
"icon": "<icon>",
"color": "<hex color>",
"textIcon": "<short label>",
"category": "noauth | oauth | apikey",
"topModel": {
"modelId": "<registry model id>",
"modelName": "<model display name>",
"score": 0.0,
"eloRaw": 0,
"confidence": "high | medium | low",
"category": "&lt;task category&gt;"
},
"averageScore": 0.0,
"modelCount": 0
}
]
}

eloRaw — исходное значение Arena ELO; score — нормализованная оценка соответствия задаче (см. ниже). Провайдеры без моделей с оценками не включаются в ответ.


Механизм синхронизации ELO Arena (src/lib/arenaEloSync.ts) получает два рейтинга — text и code — через API рейтинга Arena AI (https://api.wulong.dev/arena-ai-leaderboards/v1/leaderboard). Каждая запись рейтинга содержит название модели, поставщика, ELO-оценку score, доверительный интервал и количество голосов.

Категории рейтинга сопоставляются с категориями задач OmniRoute:

Рейтинг Arena Категории задач OmniRoute
text default, review, documentation, debugging
code coding

Нормализация (оценка соответствия задаче)

Заголовок раздела «Нормализация (оценка соответствия задаче)»

Исходные ELO-оценки нормализуются отдельно для каждого рейтинга в значение соответствия задаче в диапазоне [0.4, 0.98]:

taskFit = 0.4 + 0.58 * ((elo - minElo) / (maxElo - minElo))

Оценка никогда не достигает 0 или 1, оставляя запас для пользовательских переопределений. Это поле score, которое отображается в ответе API, и значение, показываемое на панели мониторинга.

Каждой записи назначается уровень доверия на основе количества голосов в Arena:

Уровень доверия Голоса
high ≥ 5 000
medium ≥ 1 000
low < 1 000

Нормализованные записи сохраняются в таблицу БД model_intelligence с source = "arena_elo" (src/lib/db/modelIntelligence.ts). Срок действия записей истекает через 7 дней, поэтому поставщик, прекративший синхронизацию, со временем исчезает из рейтинга, а не продолжает предоставлять устаревшие данные.

Синхронизация включена по умолчанию:

  • Она выполняется один раз при запуске сервера, а затем периодически по таймеру (src/lib/arenaEloSync.ts, подключение выполняется из src/instrumentation-node.ts).
  • Она не блокирует работу и никогда не приводит к критической ошибке — если получение данных из внешнего источника завершается неудачей, OmniRoute продолжает работать, а в рейтингах просто отображаются последние успешно полученные данные (или пустое состояние).

Синхронизация управляется двумя переменными окружения (описанными в docs/reference/ENVIRONMENT.md):

Переменная Значение по умолчанию Назначение
ARENA_ELO_SYNC_ENABLED true Установите false, чтобы отключить исходящую синхронизацию.
ARENA_ELO_SYNC_INTERVAL 86400 (24 ч) Интервал синхронизации в секундах.

Для операторов аутентифицированная конечная точка управления предоставляет возможности ручного управления (src/app/api/intelligence/sync/route.ts — требуется аутентификация управления):

GET /api/intelligence/sync # текущий статус синхронизации (enabled, lastSync, nextSync, intervalMs)
POST /api/intelligence/sync # запустить ручную синхронизацию; тело: { "dryRun": true } для предварительного просмотра без записи
DELETE /api/intelligence/sync # удалить все синхронизированные записи аналитических данных arena_elo

Если страница рейтинга пуста, ручной запрос POST /api/intelligence/sync (или обычный перезапуск сервера) заполнит её заново.

Идентификаторы моделей в реестре и названия моделей в Arena не всегда совпадают в точности. При построении рейтинга используется гибкое сопоставление (findMatchingIntelligence в src/lib/freeProviderRankings.ts):

  1. Точное совпадение нормализованного идентификатора модели.
  2. Совпадение после удаления суффикса версии в конце (например, kimi-k2.6 → kimi-k2).
  3. Совпадение по префиксу (название модели в рейтинге является префиксом идентификатора в реестре).

На стороне синхронизации известные префиксы поставщиков (anthropic/, openai/, google/, …) удаляются, а небольшая карта псевдонимов преобразует канонические названия в варианты, которые OmniRoute использует внутри системы, благодаря чему модели можно найти по любому названию.

Для каждого бесплатного поставщика механизм оценивает каждую модель в его каталоге, после чего:

  • Лучшая модель = модель поставщика с самой высокой оценкой.
  • Средняя оценка = среднее значение оценок всех оценённых моделей этого поставщика.
  • Модели = количество моделей поставщика, для которых была доступна оценка Arena.

Поставщики сортируются сначала по оценке лучшей модели, а затем по средней оценке. Таким образом, преимущество получает поставщик, предлагающий хотя бы одну сильную бесплатную модель.


Использование для выбора бесплатных провайдеров

Заголовок раздела «Использование для выбора бесплатных провайдеров»
  1. Выберите подходящую категорию. Используйте фильтр Coding для агентных задач и задач, связанных с кодом, либо оставьте All Categories / Default для обычного чата. Один и тот же провайдер может занимать разные позиции в разных категориях, поскольку его лучшая модель различается в зависимости от рейтинга.
  2. Для простой настройки выбирайте лидеров. Если вы хотите подключить только одного или двух бесплатных провайдеров, начните с занимающих самые высокие позиции в вашей категории.
  3. Проверьте метку Type. Провайдеры NOAUTH подключаются быстрее всего (учётные данные не требуются). Бесплатные тарифы OAUTH / APIKEY требуют быстрой регистрации, но часто предоставляют доступ к более мощным моделям. Инструкции по подключению см. в руководстве по бесплатным тарифам.
  4. Подключите несколько провайдеров и позвольте Auto-Combo выбрать. Те же данные Arena ELO, на которых основана эта страница, также используются для расчёта коэффициента соответствия задаче механизмом оценки Auto-Combo (open-sse/services/autoCombo/taskFitness.ts, порядок разрешения: user_override → arena_elo → models_dev_tier → static table). Поэтому после подключения ведущих бесплатных провайдеров маршрутизация с model: "auto" (например, auto/coding) будет автоматически отдавать предпочтение более качественным бесплатным моделям для каждого запроса. Полное описание оценки по 16 факторам см. в разделе Auto-Combo.


Исходный код OmniRoute (a58000c7685f)

HagiCode

HagiCode — агентная среда разработки со структурированными процессами, параллельным выполнением несколькими агентами и интерфейсами Hero Dungeon.

Превращайте идеи в полезное ПО с более умным, быстрым и увлекательным агентным рабочим процессом.

Главный экран HagiCode в светлой теме
  • SmartСтруктурированные процессы превращают намерение в исполнимый путь от идеи до готового изменения.
  • EfficientМультиагентные процессы параллельно продвигают исследование, реализацию и проверку.
  • FunHero Dungeon делает длительную совместную разработку наглядной и увлекательной.
Перейти на HagiCode