> For the complete documentation index, see [llms.txt](https://chatme-ai-4.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://chatme-ai-4.gitbook.io/docs/proekty-na-platforme/proekt-i-ego-soderzhimoe/agenty-na-platforme/perevod-na-operatora.md).

# Перевод на оператора

При общении Собеседника с Агентом могут возникать ситуации, где лучшим решением будет переключить диалог с Агента на живого оператора, например:

* у Агента нет ответа на вопрос Собеседника;
* Собеседник попросил подключить оператора;
* Агент распознал негативный настрой Собеседника (Собеседник выражает гнев, недовольство, использует бранные слова);
* Собеседник прислал длинное текстовое сообщение;
* Диалог сильно затягивается и/или становится цикличным.

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

### Перевод на оператора в различных омниканальных платформах

Для осуществления перевода на оператора, как правило, используется Слот Change Chat Mode. Однако при выводе Агента в некоторые омниканальные платформы требуется использовать Слот External Request с соответствующим Внешний запросом. Подробнее об этом вы можете узнать из таблицы:

| Омниканальная платформа | Способ перевода диалога на оператора                                                                                                           |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Edna Chat Center        | Change Chat ModeExternal Request через метод API                                                                                               |
| Webim                   | Change Chat ModeВажно: перед Слотом Change Chat Mode обязательно должен находиться Wait For Reaction, иначе перевод на оператора не сработает. |
| Webim2.0                | External Request                                                                                                                               |
| Jivo                    | Change Chat Mode                                                                                                                               |
| Livetex                 | Change Chat Mode                                                                                                                               |
| Chat2Desk               | External Request                                                                                                                               |

О том, как создать Внешний запросы для перевода на оператора в конкретной омниканальной платформе, читайте в соответствующих статьях документации: Edna Chat Center, Webim (External Bot API 2.0), Chat2Desk

### Создание ветки перевода на оператора на Платформе chatme.ai

#### Перевод на оператора по запросу Собеседника

Ветка перевода на оператора в простом FAQ-боте выглядит следующим образом:![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-pBRTq8oef8/fa427e1cbb95878467469960b9faba9396fdf0f76a343206b033e5fe6ced73a74944f06b9d786990c708f157968735d6d8b63ee3ed00cd988c2c90f56c9c42d41d0acd39a18fb89d7fb98ac8ac5d4e9a777096b682a6b881b00ffbf629067909bf2358b8)

1. Создайте Интент оператор. В Обучающая выборка Интента включите Обучающая фраза, с помощью которых Собеседники могут выражать намерение пригласить оператора в Чат.
2. В Сценарий агента Агента после Подслота intent (оператор) поставьте Слот Text. В Слоте пропишите текст, в котором попросите Собеседника написать сообщение, которое увидит оператор при подключении к Чату. Например: «Какой вопрос вы хотите задать оператору?»
3. После Слота Text поставьте Слот Wait For Reaction.
4. Завершите Ветка сценария, добавив Слот Change Chat Mode или External Request, в котором будет производиться непосредственно перевод на оператора.

#### Автоматический перевод на Оператора

Кроме добавления отдельной Ветка сценария, в которую Собеседник может попасть, если хочет подключить оператора к Чату, можно добавить несколько автоматических сценариев перевода на оператора.

#### Длинные сообщения

Если Собеседник отправляет Агенту длинное сообщение, содержащее более одного намерения, могут возникнуть проблемы с распознаванием. Чтобы предотвратить это, можно добавить проверку длины сообщения Собеседника в символах и предусмотреть перевод на оператора при превышении заданного размера сообщения.Проверять размер сообщения следует до распознавания намерения Собеседника — перед Слотом NLU.

* В Сценарий агента создайте Слот Regular Expression.
* В поле Expression пропишите регулярное выражение, например: ^(.{100,})$ — для проверки, что длина сообщения превышает 100 символов.\
  ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-DiV0q5i-qg/8315bf087641cc0e0ec77e1e5275c221d0535ea83804fb9dfda983d2e9d49e7234087e6fbfce61979a4c910903d39dee8e80dafa8711d78455dfdaed25da425d62c69e1cb0f71b137a7c83eae62e2321915c7c63ef2bb16b1fb26c1b6018369da95fbfe3)
* После Подслота result со значением false добавьте Слот NLU. Тогда, в случае если регулярное выражение не выполняется и длина сообщение менее 100 символов, Агент будет распознавать намерение Собеседника в Слоте NLU.
* После Подслота result со значением true добавьте Слот Change Chat Mode или External Request.
* Тогда, в случае если регулярное выражение выполняется и длина сообщение превышает заданные 100 символов, Агент переведет диалог с Собеседником на оператора в Слоте Change Chat Mode или External Request.

<br>

#### Ключевые слова и нецензурная лексика

Также можно проверять сообщение Собеседника на наличие ключевых слов, при определении которых нужно подключить человека. Частный случай — использование Собеседником обсценной лексики. Возможно, Собеседник чем-то разозлен, и оператор поможет лучше справиться с решением проблемы.Проверять наличие ключевых слов следует до распознавания намерения Собеседника — перед Слотом NLU.

* В Сценарий агента создайте Слот Synonym.
* Создайте Словарь с Сущность “Проблема” и “Обсценная лексика”. В них пропишите соответствующие Синонимы: для Сущность “Проблема” —  проблема, поломка, баг, вопрос, затруднение, трабл и т.д.,  для “Обсценная лексика” — ряд слов, относящихся к нецензурной брани, которые Агент будет отлавливать в Сообщение собеседника.
* Загрузите данный Словарь в Платформа и добавьте его в Слот Synonym.
* После Слота Synonym добавьте Слот Transition Rule.
* В Подслоте condition со значением main пропишите условие {{ synonym == 'Проблема' or 'Обсценная лексика' }}. За данным Подслотом добавьте Слот Change Chat Mode или External Request. Тогда, в случае если в Сообщение собеседника будет найден какой-либо из Синонимов из Словарь, Агент переведет Диалог с Собеседником на оператора.
* После Подслота condition со значением true добавьте Слот NLU. Тогда, в случае если в Сообщение собеседника не будет найден ни один из Синонимов из Словарь, Агент будет распознавать намерение Собеседника в Слоте NLU.
