# Arena.ai Leaderboard Parser & OmniRoute Benchmark Парсер лидерборда [arena.ai](https://arena.ai/) (LMSYS Chatbot Arena) с 24-часовым кешированием и обходом Cloudflare WAF, а также инструмент бенчмаркинга и матчинга моделей со шлюзом **OmniRoute**. ## 🚀 Возможности 1. **Обход Cloudflare WAF / Anti-Bot**: - Автоматически использует stealth-экстрактор (Firecrawl / keyless failover-кольцо) для гарантированного получения актуальных данных таблицы арены без блокировок HTTP 403. - Fallback на сырой HTML при отсутствии WAF. 2. **Поддержка бордов**: - `text` (416 моделей): Rank, Arena Score (ELO ±CI), Spread, Votes, Price, Context. - `agent` (54 модели): Tool-calling метрики (Net Improvement, Confirmed Success, Steerability, Bash Recovery, Tool Hallucination, Sessions, Cost/Task). 3. **Интеграция с OmniRoute (`omniroute_arena_report.py`)**: - Авторизация через Bearer `OMNIROUTE_API_KEY`. - Liveness-проверка всех моделей провайдера коротким вызовом («2+2»). - Интеллектуальный матчинг моделей гейтвея с мировым рейтингом LMSYS Arena (учёт reasoning-суффиксов `-high`, `-medium`, `-low`, `-thinking`). - Формирование наглядного отчёта в Markdown. --- ## 📦 Структура репозитория - `arena_leaderboard.py` — основной CLI и Python API парсера лидерборда. - `omniroute_arena_report.py` — прогон моделей OmniRoute и генерация арена-отчёта. - `arena_cache_refresh.py` — легковесный скрипт для запуска через cron (обновление кеша раз в сутки). --- ## 🛠 Использование ### CLI ```bash # Топ-10 моделей текстового лидерборда python3 arena_leaderboard.py # Рейтинг конкретной модели python3 arena_leaderboard.py glm-5.3-max # Поиск моделей по подстроке python3 arena_leaderboard.py --search gemini # Принудительное обновление кеша мимо TTL python3 arena_leaderboard.py --refresh # Агентный лидерборд (tool-calling) python3 arena_leaderboard.py --board agent python3 arena_leaderboard.py --board agent "Claude Opus 5.5 (Max)" ``` ### OmniRoute Liveness & Arena Match Report ```bash # Проверить всех провайдеров / конкретного провайдера (например, agy, openrouter, zai) python3 omniroute_arena_report.py --provider agy python3 omniroute_arena_report.py --provider zai ``` ### Python API ```python from arena_leaderboard import get_leaderboard, get_model_rating, search_models # Получить рейтинг модели rating = get_model_rating("glm-5.3-max") print(rating) # Поиск gemini_models = search_models("gemini-3.8") ```