insafdev
← Назад

Chess Sensei: строю AI-туьютора по шахматам с нуля

3 min read

Я не люблю проекты-туториалы. Они всегда заканчиваются одинаково: ты запушил 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 DBQdrant (тоже 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 часов в день. Дед-лайн — мой день рождения в августе, к тому моменту хочу:

  1. Май — рабочий MVP: Stockfish + веб-интерфейс + анализ позиций. Развёрнуто публично.
  2. Июнь — локальный LLM генерирует объяснения, RAG по одной книге.
  3. Июль — учебный план, тесты, eval-сьют, мониторинг, пара блог-постов.

После — подача на ML-позиции и продолжение работы над фичами в фоне.

Зачем я об этом пишу

Несколько причин:

  1. Публичная подотчётность. Когда о проекте знают — бросать стыдно.
  2. Документирование решений. Потом сам забуду, почему выбрал Candle вместо vLLM. А блог будет помнить.
  3. Карьерный сигнал. Я хочу попасть в 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 (когда я его настрою), если хочешь следить за процессом.

Поехали.