Чат-боты и продажи

Мультиязычный чат-бот: выбор языка, термины и передача оператору

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

Схема показывает выбор языка, сохранение оригинала, проверку терминов и передачу спорного вопроса оператору

Поддержка международных клиентов усложняется, когда один человек начинает разговор по-русски, продолжает по-английски и использует внутреннее название продукта. Мультиязычный чат-бот должен не просто перевести фразы. Ему нужно сохранить выбранный язык, исходные реплики, коды и термины, а при сомнении передать контекст оператору.

Ниже — правила, по которым можно описать такой процесс и подготовить его проверку. Они относятся к живому чату. Для перевода технических, юридических и других документов нужен отдельный сценарий с профильной проверкой.

Какую задачу решает этот процесс

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

Результат процесса — карточка диалога, в которой сохранены:

  • оригинал каждой реплики;
  • определённый или выбранный пользователем язык;
  • перевод с явной пометкой, что это перевод;
  • неизменённые коды, суммы и названия продукта;
  • причина передачи человеку;
  • неоднозначный термин, если именно он остановил автоматический ответ.

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

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

Какие данные и правила подготовить

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

Ниже приведён короткий синтетический образец. Все названия и значения условны и не относятся к клиентам Switch On AI.

ПолеУсловное значениеИсточникОтветственныйСтатус
Поддерживаемые языкиРусский и английскийУтверждённая политика поддержкиРуководитель поддержкиОбязательное
Язык интерфейсаРусскийНастройка каналаАдминистратор каналаУсловное
Предпочтение пользователяНе указаноПрофиль или ответ пользователяВладелец процессаНеизвестное до уточнения
Словарь терминовX100; Smart modeУтверждённый глоссарий продуктаПродуктовый специалистОбязательное
Локальru-RU после подтвержденияВыбор пользователяВладелец процессаУсловное
Языки операторовРусский и английскийМатрица навыков командыРуководитель поддержкиОбязательное

Если таблица не помещается, прокрутите её вправо. С клавиатуры используйте стрелки.

Поддерживаемый язык определяет, на каком языке бот может вести разговор. Язык интерфейса относится к кнопкам и служебным сообщениям канала. Предпочтение пользователя задаёт язык текущего диалога. Локаль управляет форматом дат, чисел и валют, поэтому её нельзя автоматически приравнивать к языку.

Отдельно согласуйте fallback — поведение при неизвестном языке, отсутствии перевода или недоступности подходящего оператора. Безопасный вариант: сохранить оригинал, сообщить об ограничении и передать обращение человеку по установленному правилу.

Как выбирать язык разговора

Правило выбора языка должно быть явным. Практический порядок такой:

  1. Использовать предпочтение, которое пользователь сообщил сам.
  2. Применить ручное переключение языка, если пользователь его выбрал.
  3. При отсутствии выбора определить язык по содержанию текущей реплики.
  4. Если реплика короткая, смешанная или результат неуверенный, задать уточняющий вопрос.

Имя, гражданство и география пользователя не определяют язык или локаль. Человек с русским именем может предпочитать английский, а англоязычный пользователь — формат даты, отличный от предполагаемого системой.

Короткое сообщение X100 ok? почти не даёт оснований для выбора. Вместо молчаливого переключения бот может спросить: «Продолжить на русском или English?» Выбор сохраняется для текущего диалога, но пользователь может изменить его вручную.

Смешанные сообщения нужно включить в проверочный набор отдельно. Например, фраза «Можно enable Smart mode?» содержит русскую конструкцию и английский термин. Бот должен сохранить термин по глоссарию, а не считать каждое иностранное слово командой сменить язык.

В официальной документации Microsoft Copilot Studio описаны основной и дополнительные языки агента, выбор языка по настройкам клиентского приложения или браузера, язык по умолчанию и настраиваемое переключение во время разговора. Для динамического переключения документация указывает отдельные условия платформы. Это описание возможностей Copilot Studio, а не подтверждение совместимости с конкретным проектом: версию, режим агента, права и доступные языки нужно проверить перед выбором реализации.

Как сохранять смысл и терминологию

Глоссарий должен содержать исходный термин, допустимый перевод, запрещённые варианты, область применения и владельца. Если утверждённого соответствия нет, бот не угадывает: он задаёт вопрос или передаёт реплику оператору.

Для каждого ответа полезны отдельные правила:

  • код X100 копируется без изменений;
  • утверждённые названия продуктов сверяются с глоссарием;
  • числа сохраняют числовое значение;
  • валюта сохраняет код или утверждённое обозначение;
  • дата переводится в однозначный формат только после подтверждения локали;
  • неизвестный или многозначный термин вызывает уточнение либо эскалацию.

Например, запись 03/04/2026 без локали неоднозначна. Бот не должен сам решать, идёт ли речь о 3 апреля или 4 марта. Он может попросить пользователя написать месяц словами либо передать исходную запись без преобразования.

Перевод интерфейса и актуальная база ответов — разные части системы. Русские и английские кнопки ещё не доказывают, что инструкции, условия продукта и ответы поддержки обновлены на обоих языках. После изменения основного материала владелец базы должен проверить связанные языковые версии. Документация Copilot Studio также предупреждает, что изменённые строки основного языка и ранее подготовленные локализации могут рассинхронизироваться; это свойство конкретной платформы стоит учитывать при её выборе.

Как передавать диалог оператору

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

Карточка передачи может выглядеть так:

  • Язык диалога: English, выбран пользователем.
  • Оригинал: Does X100 support the legacy profile?
  • Автоматический перевод: «Поддерживает ли X100 профиль legacy?»
  • Причина: для legacy profile нет утверждённого соответствия в глоссарии.
  • Действие: оператор уточняет смысл термина и отвечает после проверки источника.

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

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

Учебный пример: путь от входных данных до результата

Ниже — синтетический пример, а не клиентский кейс и не результат выполненного теста. Все реплики, названия и числа условны.

Исходные данные: бот поддерживает русский и английский; X100 — код модели, который нельзя переводить; Smart mode есть в условном глоссарии; для legacy profile утверждённого соответствия нет. Операторы работают на русском и английском.

Клиент начинает по-русски: «Здравствуйте, подскажите статус заказа». Затем пишет по-английски. Перед сменой языка бот спрашивает: «Продолжить на русском или English?» Пользователь выбирает English. После этого бот обрабатывает английскую реплику, но сохраняет русский оригинал предыдущего сообщения.

ФрагментЯзыкТерминПереводПроверкаЭскалация
Здравствуйте, подскажите статус заказаРусский—“Hello, could you tell me the order status?”Смысл сохранён; чисел и кодов нетНет
Can I enable Smart mode on X100?АнглийскийSmart mode; X100«Можно ли включить Smart mode на X100?»X100 совпадает с оригиналом; Smart mode найден в условном глоссарииНет
Does X100 support the legacy profile?Английскийlegacy profile«Поддерживает ли X100 профиль legacy?»X100 сохранён; для legacy profile нет утверждённого соответствияДа: передать оператору оригинал и помеченный перевод

Если таблица не помещается, прокрутите её вправо. С клавиатуры используйте стрелки.

Промежуточное решение строится по правилам, а не по свободной догадке. Выбор English задаёт язык продолжения. Код X100 проходит без изменений. Smart mode остаётся в утверждённой форме. На legacy profile процесс останавливается, потому что буквальный перевод может изменить продуктовый смысл.

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

Схема учебного примера с русской репликой, выбором английского, проверкой X100 и эскалацией спорного термина

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

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

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

СценарийОжидаемый результатСигнал ошибкиДействие человека
Обычная реплика на выбранном языкеОтвет на выбранном языке; оригинал сохранёнОтвет самовольно сменил языкПроверить правило выбора языка и повторить сценарий
Короткое X100 ok?Бот предлагает выбрать русский или EnglishЯзык назначен без уточненияИсправить порог уверенности или ветку уточнения
Код моделиВ исходнике и результате указано X100Код изменён, переведён или потерянОстановить выпуск и исправить защиту кодов
Сумма 1 250,50 EURЗначение 1250.50 и валюта EUR сохраненыИзменилась сумма или валютаСверить исходную и переданную структуру данных
Неоднозначная датаБот уточняет локаль или формат датыДата преобразована по имени, гражданству или догадкеВернуть исходное значение и запросить подтверждение
Неизвестный терминОригинал и помеченный перевод переданы операторуБот выдал догадку как утверждённый переводДополнить глоссарий после решения специалиста

Если таблица не помещается, прокрутите её вправо. С клавиатуры используйте стрелки.

Для синтетического примера проверка кода записывается так: source_code = "X100", result_code = "X100", ожидаемое условие code_ok = source_code === result_code даёт true.

Проверка условной суммы разделяется на значение и валюту: исходные и переданные значения равны 1250.50, а коды валюты — EUR. Ожидаемые условия amount_ok = 1250.50 === 1250.50 и currency_ok = "EUR" === "EUR" дают true. Это ожидаемый результат учебной проверки, а не измерение работающей системы. Если после подтверждения локали отображение меняется на 1,250.50 EUR, числовое значение и валюта всё равно должны совпасть. Без подтверждённой локали формат лучше не менять.

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

Что согласовать для внедрения

Готовая платформа может предоставлять многоязычные настройки, язык по умолчанию и механизмы переключения. Но она не знает внутренние термины компании, языковые навыки операторов, правила эскалации и допустимый формат передачи данных. Эти части нужно описать и проверить отдельно.

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

Switch On AI может разработать ИИ-помощника, бота или интеграцию для этой операции после проверки данных и доступного API. Цель проекта формулируется конкретно: диалог сохраняет смысл, язык и оригинал при передаче оператору. Совместимость выбранной платформы, тариф, права доступа и ограничения проверяются отдельно; упоминание Copilot Studio в документации не означает партнёрство или выполненное внедрение.

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

Подробнее о составе разработки можно прочитать на странице ИИ-агентов и помощников. Чтобы обсудить входные данные, правила передачи оператору и границы прототипа, опишите одну операцию.

Вопросы по этой задаче

Достаточно ли автоматического перевода?

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

Как выбрать язык смешанного сообщения?

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

Что передавать оператору?

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