Skip to content

EngineerZavoda/orr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 

Repository files navigation

OpenRouter Request Scanner

Небольшой 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

About

OpenRouter Request Scanner. Сканер бесплатных моделей OpenRouter с проверкой скорости и доступности

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages