Как собрать двуязычный каталог контента с ИИ: библиотека модов Prism
Разбираю на реальном кейсе Qolab Prism, как курируемый двуязычный каталог (RU+EN) снимает шум поиска и превращает добавление модов в один клик.
Я делаю Qolab Prism — приложение для Path of Exile, которое подкрашивает моды предметов прямо в игре. Внутри есть редактор Mod Colors, где пользователь выбирает, какие статы и каким цветом подсвечивать. И вот именно этот редактор оказался главной болью. История про то, как мы её лечили, — хороший пример, как собрать двуязычный каталог контента с ИИ и не утонуть в тысячах записей.
Откуда взялся шум
Поиск в старом редакторе шёл по всему распарсенному stat_descriptions из игрового архива GGPK. Это тысячи статов: аффиксы предметов, характеристики мобов, внутренние скилловые параметры, служебные записи. Пользователь пишет spirit, ожидает один item-аффикс, а получает десятки нерелевантных строк.
Сверху навалились ещё две проблемы. Поиск был только на английском — для русскоязычного игрока это отдельный барьер. И без указанного пути к GGPK поиск вообще не работал: нет файла — нет данных.
Получилась ситуация, где инструмент технически всё умеет, но пользоваться им больно. Классический случай, когда "больше данных" означает "хуже опыт".
Решение: курируемый каталог вместо сырого дампа
Мы отказались от идеи искать по всему GGPK как по основному сценарию. Вместо этого собрали Библиотеку модов — курируемый JSON, который встроен прямо в приложение и не зависит от GGPK.
Ключевое слово тут — курируемый. В сыром stat_descriptions лежит всё подряд. В библиотеке лежат только те моды, которые реально нужны игроку для подсветки предметов. Это ручная фильтрация тысяч записей до сотен осмысленных.
Что даёт такой подход:
- Чистый двуязычный поиск. Каждая запись содержит RU и EN названия. Игрок пишет на родном языке и находит нужное с первого раза.
- Наборы в один клик. Раньше не было готовых групп — каждый цвет добавлялся вручную. Теперь есть группы-наборы: нажал один раз, получил осмысленный комплект статов с цветом по умолчанию.
- Цвет по группам. У группы есть
defaultColor, так что визуальная логика задаётся сразу, без ручной раскраски каждой строки. - Автопуть к файлу игры. Путь к GGPK теперь находится автоматически. Поиск больше не мёртв на старте.
Где здесь ИИ
Самая трудоёмкая часть — превратить сырой дамп в осмысленный каталог. Тысячи технических строк вида stat_description нужно понять, отсеять служебное, оставить релевантное и перевести на русский так, чтобы игрок узнал знакомый термин.
Это ровно та работа, где ИИ экономит недели. Модель хорошо справляется с сортировкой сырого текста по смыслу, черновым переводом игровой терминологии и группировкой похожих статов в наборы. Я проверял результат руками — без ручной вычитки перевод игровых терминов всегда требует правок, устоявшийся сленг ИИ угадывает не идеально. Схема получилась такая: ИИ делает первый проход и разметку, человек курирует и утверждает.
Итог — двуязычный каталог, собранный за разумное время, где каждая запись прошла через живого редактора.
Сырой поиск никуда не делся
Важный момент для продуктовой логики: полный поиск по GGPK мы не выбросили. Он спрятан за тумблером Расширенный поиск.
Логика простая. Обычному игроку хватает курируемой библиотеки — она закрывает 95% задач и не шумит. Но есть продвинутые пользователи, которым нужен доступ к любому стату из игры, включая экзотику, которой в библиотеке нет. Для них — тумблер.
Так мы разделили два сценария вместо того, чтобы валить всё в одну кучу. Чистый двуязычный опыт по умолчанию, полный доступ по запросу.
Что можно унести в свой проект
Кейс узкий — про подсветку модов в игре. Но принцип переносится на любой каталог контента:
- Курирование бьёт полноту. Сырой полный список данных обычно хуже для конечного пользователя, чем отфильтрованный осмысленный. Полнота прячется за тумблер "расширенно".
- Двуязычность закладывается в структуру данных. RU и EN — это поля записи, не отдельный слой перевода поверх. Тогда поиск работает на обоих языках одинаково.
- Готовые наборы важнее гибкости. Один клик по группе ценнее, чем возможность собрать то же самое из десяти действий.
- ИИ — на черновике и разметке, человек — на утверждении. Модель разбирает тысячи записей и переводит, куратор проверяет. Автоперевод игровых и доменных терминов всегда требует ручной вычитки.
Сырой дамп данных легко отдать пользователю и назвать это функцией. Собрать из него чистый двуязычный каталог — работа, которую раньше делали месяцами. Сейчас её реально закрыть за дни, если использовать ИИ на тяжёлой рутине и оставить за собой финальное решение.