Chess Sensei: строю AI-туьютора по шахматам с нуля
Я не люблю проекты-туториалы. Они всегда заканчиваются одинаково: ты запушил MNIST, повесил его на heroku, забыл через месяц.
Поэтому летом 2026 я делаю Chess Sensei — AI-туьютор по шахматам, который:
- читает книги (от Нимцовича до Дворецкого) и достаёт нужный контекст во время урока,
- объясняет ходы человеческим языком, опираясь на оценку Stockfish’а,
- строит персональный план обучения на основе того, что ты запоминаешь и что забываешь,
- работает локально на моей RTX 5060 Ti — без зависимости от облачных API.
Зачем это нужно лично мне
Я играю в шахматы и хочу расти. Существующие приложения (Chess.com, Lichess) дают тренажёры — реши тысячу задач, посмотри обзор партии. Но они не учат: не объясняют, не строят программу, не помнят чего я не понял неделю назад.
Хочется штуку, которая ведёт себя как тренер: «вот эту тему мы разбирали, ты её забыл, давай повторим иначе».
Стек, который я выбрал
С прицелом на то, что мне нравится Rust и я не хочу сидеть в Python:
- Backend — Rust (axum, tokio, sqlx). Всё что не GPU — на нём.
- LLM-инференс — Candle (HuggingFace’s Rust ML библиотека). Запускаю Llama-3.1-8B в INT4-квантизации, влезает в 6 GB VRAM, оставляя запас.
- Vector DB — Qdrant (тоже Rust, кстати).
- Stockfish — отдельный процесс, общение через UCI-протокол.
- Frontend — Next.js + chessground для доски. Решил не геройствовать с pure-Rust SSR-стеком, цель — отгрузить продукт за лето.
- Deploy — Docker + Fly.io.
Архитектурно это агентный RAG: оркестратор решает, когда позвать LLM, когда сходить в книгу через retrieval, когда спросить Stockfish.
user move
│
▼
[Orchestrator (Rust)]
├──▶ Stockfish (UCI) ──▶ оценка позиции
├──▶ Qdrant retrieval ──▶ релевантные чанки из книг
└──▶ LLM (Candle) ──▶ объяснение в стиле выбранной книги
│
▼
response stream
План на лето
12 недель, ~3-5 часов в день. Дед-лайн — мой день рождения в августе, к тому моменту хочу:
- Май — рабочий MVP: Stockfish + веб-интерфейс + анализ позиций. Развёрнуто публично.
- Июнь — локальный LLM генерирует объяснения, RAG по одной книге.
- Июль — учебный план, тесты, eval-сьют, мониторинг, пара блог-постов.
После — подача на ML-позиции и продолжение работы над фичами в фоне.
Зачем я об этом пишу
Несколько причин:
- Публичная подотчётность. Когда о проекте знают — бросать стыдно.
- Документирование решений. Потом сам забуду, почему выбрал Candle вместо vLLM. А блог будет помнить.
- Карьерный сигнал. Я хочу попасть в ML/AI-инфраструктуру (Anthropic, OpenAI, серверные ML-стартапы), и блог + GitHub-история — мой главный актив.
Что будет в следующих постах
- Неделя 1: каркас на Rust + Stockfish UCI — самая весёлая часть, всё ломается интересно.
- Неделя 4: запуск Llama локально. Сколько токенов в секунду на 5060 Ti? Стоит ли INT4 vs Q5?
- Неделя 6: RAG-пайплайн от PDF до Qdrant. Главная боль — chunking шахматных текстов с диаграммами.
- Неделя 11: как я оценивал качество объяснений LLM. Спойлер: bleu-score врёт, нужен hand-curated eval.
Подписывайся через RSS (когда я его настрою), если хочешь следить за процессом.
Поехали.