Передать чат оператору

Останавливает выполнение автоматического сценария в чате и передаёт его оператору для ручного ответа.

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

Со стороны пользователя это выглядит примерно так:

После чего в личном кабинете нейробота, в разделе "Чаты" появится чат, в котором нам нужно будет ответить человеку вручную:

Пользователь получит наше сообщение и мы сможем переписываться с ним вручную.

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

Этот функционал работает на всех каналах коммуникации: Чат на сайте, Страница бота, Telegram-бот, бот для Вконтакте.

Внедрить этот функционал в сценарий вашего нейробота можно, как минимум, 2-мя способами.

1. Прописать заранее возможные варианты вызова оператора со стороны пользователя (не тратит дополнительные AI-ответы тарифа, но нужно заранее прописать все возможные варианты вызова оператора)

2. Внедрить в сценарий специальное действие-классификатор на основе ChatGPT (на каждый запрос тратит дополнительный AI-ответ по тарифу, но зато определяет необходимость переключения на оператора более точно, без необходимости прописывать все возможные варианты вызова оператора). Можно сократить издержки, используя собственный API-ключ от OpenAI на тарифе "Профессиональный".

Вариант 1: Прописываем варианты заранее

1. Добавляем в наш сценарий действие: "Условие" и перетаскиваем в область "Условие выполняется" наше действие "Передать чат оператору":

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

Укажем варианты:

*оператор
*переключ
*человек
*жив

Например, данное условие сработает если пользователь введет:

  1. Позови оператора (*оператор)

  2. Переключи на сотрудника (*переключ)

  3. Хочу поговорить с человеком (*человек)

  4. Позови кого-то живого (*жив)

***

 

Вариант 2: Действие-классификатор на основе ChatGPT

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

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

  1. Нажимает не ту клавишу
  2. Торопится
  3. Его автоматически исправляет "Автокоррекция" (Т9) на телефоне

И много других причин, не связанных с грамотностью.

Этот вариант поможет нам более точно определять необходимость переключения на оператора.

Чтобы реализовать этот вариант, добавим действие "ChatGPT" в самое начало нашего сценария:

Пишем ему Роль системы, контекст (не путать с промтом!):

Ты классификатор. Твоя задача определить тип запроса пользователя. У нас есть 2 основных типа запросов:

1. Нужно передать чат оператору
2. Не нужно

Ты определяешь, нужно ли передать чат оператору или нет, в зависимости от того, что пишет пользователь делаешь выбор "1" или "2". В качестве ответа пиши только вариант своего выбора.

Примеры:
Вопрос: Позови оператора
Ответ: 1

Вопрос: Переключи на сотрудника
Ответ: 1

Вопрос: Посоветуй товары в категории НАЗВАНИЕ КАТЕГОРИИ для дома
Ответ: 2

Вопрос: Хочу поговорить с человеком
Ответ: 1

Вопрос: Позови кого-то живого
Ответ: 1

В качестве промта выбираем переменную {{USER_TEXT}} (Сообщение пользователя) через режим переменных, нажав на кнопку с иконкой "вилки":

Теперь мы ожидаем, что наше действие-классификатор, основанное на ChatGPT будет отвечать строго "1" или "2", в зависимости от того, является ли запрос пользователя просьбой перевести на оператора или нет, где:

1 - Нужно перевести на оператора

2 - Не нужно переводить на оператора

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

Теперь проверим. Напишем сначала обычное сообщение, которое уйдёт дальше по сценарию до ассистента и потом специально напишем нашу просьбу перевести на оператора с ошибкой, чтобы убедиться, что сработал именно классификатор:

Форма написания с грубыми ошибками для того, чтобы показать, что классификатор справляется прекрасно 👌🏻

Дополнение

Когда выполняется действие ChatGPT, оно тоже выводит статус, когда "думает".

В случае с классификацией запроса, мы можем указать ему специальный текст, описывающий шаг в сценарии, например: "Определяю тип запроса..."

Либо можно просто удалить текст статуса, чтобы ничего не выводить. Это может быть не критично потому, что запросы через действие ChatGPT выполняются гораздо быстрее, чем запросы к действию Ассистент.