Ну как вы поняли, сервис я так и назвала, чтоб сразу закрыть основное возражение. Ахахах. Да знаю, что их тысячи. Всё равно сделала объясню почему.

У меня средненький английский, примерно B1 (но для менеджерки продукта требуется обычно по‑больше левел ю ноу). Я смотрю YouTube на англ, чтобы его подятнуть и постоянно натыкаюсь на незнакомые слова. В табличку выписывать, в анки загружать — мне было лень. Хотелось так: кинула ссылку на видео — слова моего уровня сами вытащились из субтитров и встали в очередь на повторение.

Работаю много, по вечерам есть 1–2 часика обычно. Вот за пару месяцев таких вечеров (595 коммитов) получился тренажёр: pwa на реакте, данные живут в IndexedDB у пользователя, + словарик + разные упражнения.

От «сайта эпохи ИИ» ждёшь, что внутри обёртка над чат‑ботом, РАГИ, и все такое ну вы поняли. У меня вышло наоборот: LLM здесь — подрядчик на двух узких задачах, а основную работу делают частотные списки, алгоритм из 90-х ну и клод в качестве работяги. Собсна про это и будет статья, или серия статей.

Время разработки

2 месяца по вечерам (по часику, с пропусками)

Коммитов

595

Слов в словаре

48 000

Стоимость LLM‑генерации словаря Апи Дипсика

~$10

Стоимость AMVERA

в мес примерно 1000 р

Стоимость Claude Max (но подписка не только ради этого сервиса приобретается)

100$

Вставила ссылку — получила слова под свой уровень

Работает так: вставляю ссылку на видео, через несколько секунд получаю до 50 карточек. Слова и фразы моего уровня, с переводами, транскрипциями и примерами, уже готовые к тренировке. Это весь пользовательский сценарий, целиком.

Первая мысль в 2026 году очевидна: субтитры есть, LLM есть, отправляем транскрипт в модель с промптом «выдай слова уровня B1 с переводами», готово. Я так делать не стала. Это полноценный LLM‑вызов на каждое видео — дорого. Модель понятия не имеет, какие слова знает конкретный человек «уровня B1», она «уверенно» начинает исполнять что‑то. И стабильного JSON на транскрипте в шесть тысяч слов можно ждать долго.

А главное, если присмотреться, 90% задачи вообще не требуют ИИшки. Задача звучит так: из ~1500 уникальных слов транскрипта выбрать полсотни, которых человек скорее всего не знает. Это задача про частотность, а не про смысл.

Поэтому вместо одного большого промпта просто воронка, в которой чем дешевле уровень, тем больше он делает:

ссылка на YouTube
      │
      ▼
субтитры (youtube-transcript)        никакого распознавания аудио
      │
      ▼
чистка + лемматизация                бесплатно
      │
      ▼
частотный фильтр по уровню           бесплатно
      │   топ-50 кандидатов
      ▼
свой словарь на 48k лексем           бесплатно, из своей БД
      │   промахи + транскрипт
      ▼
LLM - ровно один вызов               платно: фразовые глаголы,
      │                              идиомы, переводы промахов
      ▼
до 50 карточек

Переводы сначала ищу в моём словаре на 48 000 слов это бесплатно и мгновенно (ниже откуда словарь). И только в самом конце воронки появляется LLM 1 вызов на 1 видео: вытащить фразовые глаголы и идиомы.

Сбой LLM воронку не роняет, а деградирует: не ответила модель будут слова без фраз, но не ошибка. Тот же конвейер, кстати, ест не только YouTube: произвольный текст, статью по ссылке, загруженный файл — воронке всё равно, откуда пришёл текст.

Откуда переводы: словарь, которому запрещено фантазировать

Чтобы воронка почти не ходила в LLM, нужен свой словарь. В нём сейчас у меня 48 000 слов, фразовые глаголы, коллокации, идиомы, у каждой значения с переводами, примерами и уровнем и собран он по одному правилу: LLM — не источник фактов. Попросите модель написать таблицу неправильных глаголов — она напишет её «по памяти» и наврёт ровно настолько, чтобы это было незаметно. Поэтому фактуру — формы слов, транскрипции, частотные ранги, уровни — собирает код из открытых датасетов, а LLM пишет только то, чего в данных нет: переводы, примеры, пояснения.

Генерация шла батчами через дешёвую модель, с очередью и дневным потолком. Один раз грабли всё же прилетели: при сбое батча воркер разбирает его на 20 одиночных вызовов — в 20 раз дороже за те же слова. После этого за бюджетом следит отдельный модуль. Итог всей генерации — около 10 долларов. И финальный рубеж — модерация: всё сгенерированное лежит в карантине, пока я не просмотрю его в админке. Да, я смотрела и одобряла все 48 тыщ слов.

Что происходит со словами дальше

После импорта из ютуба слова уходят в тренажёр с интервальными повторениями — SM-2, алгоритм 1987 года из SuperMemo. Забытая карточка не улетает на завтра, а возвращается в ту же сессию через десяток карточек.

Чтобы повторения не превращались в монотонное листание, дневная сессия сама ротирует шесть типов упражнений: карточки, выбор перевода, угадай по определению, пары синонимов, подстановка в предложение, собери слово из букв.

Всё это живёт прямо в браузере: карточки, прогресс и интервалы лежат в IndexedDB у пользователя, Яндекс ID нужен для синхронизации, чтобы при чистке браузера данные не потерялись, а также чтобы можно было зайти с любого устройства. Бэкенд при этом — один процесс Node со SQLite. Есть и APK в RuStore — та же PWA в обёртке.

Тест на входе: слова‑ловушки

Остался вопрос, без которого «слова моего уровня» не работают: а какой у меня уровень? Спрашивать «выберите: A2 или B1» бесполезно — большинство не знает, поэтому я сделала адаптивный тест: слова разложены по частотным полосам от топ-1000 до супер редких. Каждый ответ «знаю» подмешивает слово на полосу сложнее, а на сложных полосах растёт шанс нарваться на слово‑ловушку, который понижает ваш уровень при неверном ответе. Оценка экстраполируется по полосам, мапится на уровень CEFR — и тест сразу собирает коллекцию слов под следующий уровень, с которой человек уходит прямиком в тренировку.

Конечно же научного доказательства у теста нет — полосы и пороги подобраны здравым смыслом, сертификат по итогам не выдаётся. Его задача продуктовая: за две минуты найти полосу сложности, с которой не будет ни скучно, ни больно. С ней он справляется, а ловушки отсекают главный источник вранья — самообман.

Что в итоге

Главное, что я поняла за время разработки: почти везде, где хотелось «просто прикрутить модельку», дешевле и надёжнее было спросить у датасета — а модели оставить только то что другими способами не вытащить. Поэтому LLM‑строчка в бюджете и уложилась в $10. И вроде получилось что‑то даже интересное.

Тренажёр живёт тут: yetanotherenglish.com и в русторе (да да в русторе, до апсторов и гуглсторов я пока не доросла, может кто щас прочтет и как захочет помочь там разместиться бесплатно, хихик) https://www.rustore.ru/catalog/app/com.yetanotherenglish.app.

Сервис бесплатный, без рекламы и подписок, вооот.

Вообщем, если будет время поюзать, расскажите в комментах, приносите, как говорится, UX фидбек, заранее спс!