Ну как вы поняли, сервис я так и назвала, чтоб сразу закрыть основное возражение. Ахахах. Да знаю, что их тысячи. Всё равно сделала объясню почему.
У меня слабый английский, примерно 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 фидбек, заранее спс!
ссылка на оригинал статьи https://habr.com/ru/articles/1076020/