К содержимому
← Все статьи
8 мин чтения

ИИ-консультант на узбекском и русском: как настроить двуязычного бота

Двуязычный бот — это не «включить перевод». Основные проблемы начинаются на узбекской кириллице, транслитерации и цене токенов, а не на самом переводе.

Три письменности, а не два языка

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

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

Отвечать бот должен в той письменности, в которой к нему обратились. Ответ латиницей на кириллическое сообщение читается как машинный и снижает доверие, особенно в госструктурах и у аудитории 40+.

Определение языка на практике

Автоопределение по частотным словам ломается на коротких сообщениях: «salom», «narxi qancha», «сколько» — двух слов недостаточно для надёжного вывода. Не стройте логику на отдельной библиотеке детекции.

Рабочий подход: в системном промпте прямо предписать отвечать на языке и в письменности последнего пользовательского сообщения, а язык интерфейсных кнопок хранить в профиле пользователя, спросив один раз при старте.

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

Качество узбекского у моделей

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

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

Свободную генерацию на узбекском оставляйте для непредсказуемых веток диалога и обязательно прогоняйте выборку логов через носителя языка хотя бы раз в две недели на старте.

Цена токенов на узбекском

Узбекский текст, особенно кириллицей, токенизируется значительно хуже английского: то же сообщение может стоить в два-три раза больше токенов. При латинице разрыв меньше, но он есть.

На практике это означает, что нельзя тащить весь длинный системный промпт на трёх языках в каждый запрос. Держите один компактный промпт на английском с инструкцией отвечать на нужном языке — это дешевле и работает не хуже.

Ограничивайте историю диалога: последние шесть-восемь сообщений плюс сжатая сводка. Без этого расход на длинных консультациях растёт нелинейно.

Что тестировать перед запуском

Соберите набор реальных фраз в обеих письменностях, включая опечатки и смешанный ввод, и прогоняйте на нём бота после каждого изменения промпта. Двадцати-тридцати кейсов достаточно, чтобы ловить регрессии.

Отдельно проверьте числа и цены: модели любят переформатировать суммы, теряя разряды. Суммы в сумах должны подставляться шаблоном из вашей базы, а не воспроизводиться моделью по памяти.

Проверьте поведение на смеси: сообщение, где половина на русском, половина на узбекском. Это самый частый реальный кейс и одновременно тот, который чаще всего ломает наивную реализацию.

Нужен сайт или реклама? Обсудим ваш проект.