Files
arena-leaderboard-parser/README.md
T

73 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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")
```