72 lines
3.0 KiB
Markdown
72 lines
3.0 KiB
Markdown
# 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 и генерация арена-отчёта.
|
||
|
||
---
|
||
|
||
## 🛠 Использование
|
||
|
||
### 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")
|
||
```
|