Вячеслав Сысоев опубликовал русский перевод учебника OpenStax «Chemistry: Atoms First 2e» — 1200 страниц, 21 глава, около 200 разделов с химическими формулами и иллюстрациями. Одновременно он выложил инструмент, которым пользовался: open-source пайплайн «Переводник» на GitHub.
Толчком стал личный опыт с платными сервисами автоперевода. За несколько десятков долларов Сысоев получил PDF, в котором один и тот же термин переводился по-разному в разных главах, химические формулы превращались в бессмысленный набор символов, а подписи к рисункам оказывались посреди текста. Рынок предлагает скорость — от двух минут до двух часов на книгу — но не качество. По такому переводу учиться невозможно.
| Утилита | Что извлекает | Зачем нужно |
|---|---|---|
| pdftotext -layout | Текст книги | Основа для перевода прозы |
| pdftoppm -png -r 200 | PNG-изображения страниц | Модель читает формулы «глазами» через multimodal |
| pdfimages -all | Исходные иллюстрации | Привязка рисунков к тексту перевода |
Технические учебники — наихудший случай для автоперевода: терминология должна быть единой на тысяче страниц, формулы нельзя пересказать приближённо, а ошибка в разделе 4.2 тянется в 7.3 и дальше. Именно поэтому автор выбрал химию как полигон.
Ключевой приём — растущий GLOSSARY.md: каждый агент читает его перед работой и дополняет новыми терминами.
Пайплайн устроен следующим образом. Из PDF извлекаются три независимых источника утилитами poppler-utils: текст через pdftotext, PNG-изображения страниц через pdftoppm и исходные иллюстрации через pdfimages. Текст идёт на перевод прозы, PNG-страницы — модель смотрит на них «глазами» через multimodal-режим, когда текстовая расшифровка формул оказывается мусором, изображения — для привязки к рисункам в тексте.
Одна большая LLM-сессия не работает: контекст переполняется, тон плывёт. Поэтому каждый раздел учебника (5–15 страниц) обрабатывается отдельным агентом. Координация между агентами идёт через файловую систему, а единство терминологии обеспечивает растущий GLOSSARY.md. Перед переводом нового термина агент проверяет глоссарий; если термина нет — добавляет. Следующий агент уже видит принятое решение. Каждый раздел проходит через state machine: pending → draft → review → done. Финальное ревью тоже выполняет нейросеть — человек получает уже выверенный вариант.
Готовый перевод рендерится как статический сайт на MkDocs Material с поддержкой MathJax и mhchem для химических формул, деплоится на GitHub Pages. На каждой странице есть кнопка «Редактировать», открывающая Markdown в GitHub-редакторе: правки принимаются через pull request.
На весь перевод ушло шесть пятичасовых лимитов Claude Opus платной подписки с пятикратным увеличением лимитов. Сысоев признаёт: API-запросы обошлись бы дороже, а локальные модели требуют видеокарт, которых у большинства нет. Поэтому open-source здесь означает открытый код и отсутствие посредников, но не полную независимость от коммерческих LLM.
Автор честно перечисляет нерешённые проблемы. Формулы из PDF читаются ненадёжно — pdftotext превращает H₂SO₄ в «H 2 SO 4», и multimodal-режим спасает не всегда. Привязка иллюстраций к тексту иногда съезжает. Стилистический дрейф между разделами сохраняется даже при наличии гайда. Смысловую точность в химических нюансах без живого химика гарантировать нельзя.
Проект адресован прежде всего тем, кто хочет перевести конкретную книгу, не имея бюджета на профессиональный перевод и не желая платить за машинный мусор. Репозиторий инструмента доступен по адресу github.com/ViacheslavSysoev/perevodnik, сам перевод учебника — на viacheslavsysoev.github.io/chemistry-atoms-first-russian.


