Микросервис для оценки, поместится ли LLM на вашей машине.
- Web UI + API (
FastAPI) - Автоопределение системы через
GET /api/system_info - Расчет в двух режимах:
realиollama - Настраиваемый контекст
context_len(256..131072) - Локализация ответа API:
ruиen - Валидация входных данных
- Сравнение моделей и история проверок в UI (localStorage)
- Наблюдаемость:
GET /api/metrics - Защита API: in-memory rate limit
- Кэширование результатов
/api/check_model - Docker / docker-compose
server.py: API, расчет, rate-limit, metrics, кеш, статикаstatic/: фронтенд (HTML/CSS/JS)
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txtvenv/bin/python -m uvicorn server:app --reloadОткройте:
- UI:
http://localhost:8000 - Metrics:
http://localhost:8000/api/metrics
docker compose up --buildСервис будет доступен на http://localhost:8000.
В интерфейсе доступны:
- выбор платформы
Mac/PC - выбор языка
Русский/English - настройка контекста
- автоопределение параметров системы (для macOS возвращается человекочитаемое имя, например
macOS 26.x, а неDarwin) - сравнение до 3 моделей
- история последних проверок с явными полями:
контекст N токенов,RAM,VRAM
Пример запроса:
{
"model_name": "qwen3.5:9b",
"mode": "real",
"context_len": 8192,
"language": "ru",
"system_info": {
"ram_gb": 32,
"vram_gb": 24,
"has_gpu": true,
"gpu_name": "RTX 4090",
"os": "Linux",
"cpu_cores": 16
}
}Пример ответа:
{
"model_parsed": {
"family": "qwen",
"version": "3.5",
"param_count_b": 9.0,
"is_moe": false,
"specialization": "base",
"quantization": "Q4"
},
"memory_requirements": {
"weights_gb": 4.2,
"kv_cache_gb": 2.8,
"total_vram_gb": 7.0
},
"recommendation": "...",
"possible_quantizations": {
"FP16": 20.1,
"BF16": 20.1,
"Q8": 11.7,
"Q4": 7.0,
"Q3": 5.9,
"Q2": 4.9
},
"context_len": 8192,
"language": "ru"
}Возвращает RAM/VRAM/GPU/OS/CPU для машины, где запущен сервер.
Возвращает базовые счетчики и среднюю задержку:
requests_totalerrors_totalcheck_model_totalsystem_info_totalavg_latency_mscache_itemsrate_limit_per_minute
- Rate limit и cache сейчас in-memory (сбрасываются при рестарте).
- Для production лучше вынести это в Redis.
MIT