Небольшой CLI-инструмент для поиска и проверки бесплатных chat-моделей OpenRouter. Сканер получает актуальный каталог моделей, оставляет модели с нулевой стоимостью входных и выходных токенов, отправляет тестовые запросы и сравнивает медианную end-to-end задержку.
- параллельная проверка с настраиваемым числом workers;
- несколько запусков на модель и медианная задержка;
- фильтрация по имени модели;
- детерминированная сортировка результатов;
- отдельные статусы для timeout, rate limit, ошибок авторизации и сервера;
- экспорт полных результатов и отдельных попыток в JSON;
- понятные exit codes для автоматизации.
git clone https://github.com/EngineerZavoda/orr.git
cd orr
python3 -m venv venv
source venv/bin/activate
python -m pip install -r requirements.txtСоздайте .env в корне проекта:
OPENROUTER_API_KEY=your_api_key_here.env исключён из Git. Ключ также можно передать обычной переменной окружения.
Быстрая проверка всех бесплатных моделей:
python request.pyБолее устойчивое сравнение конкретной модели с экспортом результата:
python request.py \
--model :free \
--runs 3 \
--workers 2 \
--timeout 30 \
--sort latency \
--json results.jsonВсе параметры:
--workers N число одновременно проверяемых моделей (по умолчанию 3)
--timeout SECONDS таймаут чтения ответа (15)
--runs N число запросов к каждой модели (1)
--model TEXT фильтр по подстроке id; можно повторять
--sort ORDER latency, name или status
--json PATH сохранить результаты в JSON
--prompt TEXT тестовый запрос
--max-tokens N максимум токенов ответа (5)
Полную встроенную справку показывает python request.py --help.
Model | Params | Status | Runs | Median(s)
-------------------------------------------------------------------------------
provider/example-7b:free | 7B | OK | 3/3 | 0.842
provider/limited:free | N/A | RATE_LIMITED | 0/3 | -
OK означает успех всех попыток, PARTIAL — хотя бы одну успешную попытку.
Победитель выбирается среди моделей с успешными ответами по минимальной медиане.
Задержка зависит не только от модели, но и от выбранного OpenRouter-провайдера,
текущей нагрузки, сетевого маршрута и cold start. Это моментальный практический
замер, а не универсальный рейтинг производительности. Бесплатные модели имеют
лимиты запросов; при массовой проверке уменьшайте --workers или используйте
--model.
Exit codes:
0— получен хотя бы один успешный ответ;1— подходящих или успешно ответивших моделей нет;2— ошибка аргументов, конфигурации, каталога API или записи файла.
python -m pip install -r requirements.txt pytest
python -m compileall -q request.py tests
pytest -qТесты не выполняют реальные сетевые запросы и не требуют API-ключа. CI проверяет Python 3.9–3.12.
MIT