Передать чат оператору
Останавливает выполнение автоматического сценария в чате и передаёт его оператору для ручного ответа.
В процессе работы может возникнуть ручное вмешательство в диалог живого человека, например, для оформления заказа, возврата или чего-то еще, что на данный момент нельзя автоматизировать с помощью нейробота.
Со стороны пользователя это выглядит примерно так:
После чего в личном кабинете нейробота, в разделе "Чаты" появится чат, в котором нам нужно будет ответить человеку вручную:
Пользователь получит наше сообщение и мы сможем переписываться с ним вручную.
После того, как наш вопрос с пользователем решен, мы можем передать диалог с ним назад боту с помощью кнопки "Передать чат боту" на странице чата:
Этот функционал работает на всех каналах коммуникации: Чат на сайте, Страница бота, Telegram-бот, бот для Вконтакте.
Внедрить этот функционал в сценарий вашего нейробота можно, как минимум, 2-мя способами.
1. Прописать заранее возможные варианты вызова оператора со стороны пользователя (не тратит дополнительные AI-ответы тарифа, но нужно заранее прописать все возможные варианты вызова оператора)
2. Внедрить в сценарий специальное действие-классификатор на основе ChatGPT (на каждый запрос тратит дополнительный AI-ответ по тарифу, но зато определяет необходимость переключения на оператора более точно, без необходимости прописывать все возможные варианты вызова оператора). Можно сократить издержки, используя собственный API-ключ от OpenAI на тарифе "Профессиональный".
Вариант 1: Прописываем варианты заранее
1. Добавляем в наш сценарий действие: "Условие" и перетаскиваем в область "Условие выполняется" наше действие "Передать чат оператору":
2. Открываем настройки действия "Условие" и прописываем возможные варианты, которые по нашему мнению могут писать пользователи в случае, когда хотят переключиться на живого человека, например:
Укажем варианты:
*оператор
*переключ
*человек
*жив
Например, данное условие сработает если пользователь введет:
1. Позови оператора (*оператор)
2. Переключи на сотрудника (*переключ)
3. Хочу поговорить с человеком (*человек)
4. Позови кого-то живого (*жив)
Вариант 2: Действие-классификатор на основе ChatGPT
Этот вариант позволит предугадать максимально неожиданные формы написания просьбы переключиться на оператора, и к тому же поймет человека, если просьба будет написана с ошибками или опечатками.
В реальной жизни пользователи часто допускают ошибки, и это не обязательно говорит о безграмотности человека, чаще всего пользователь:
- Нажимает не ту клавишу
- Торопится
- Его автоматически исправляет "Автокоррекция" (Т9) на телефоне
И много других причин, не связанных с грамотностью.
Этот вариант поможет нам более точно определять необходимость переключения на оператора.
Чтобы реализовать этот вариант, добавим действие "ChatGPT" в самое начало нашего сценария:
Пишем ему Роль системы, контекст (не путать с промтом!):
Ты классификатор. Твоя задача определить тип запроса пользователя. У нас есть 2 основных типа запросов:
1. Нужно передать чат оператору
2. Не нужно
Ты определяешь, нужно ли передать чат оператору или нет, в зависимости от того, что пишет пользователь делаешь выбор "1" или "2". В качестве ответа пиши только вариант своего выбора.
Примеры:
Вопрос: Позови оператора
Ответ: 1
Вопрос: Переключи на сотрудника
Ответ: 1
Вопрос: Посоветуй товары в категории НАЗВАНИЕ КАТЕГОРИИ для дома
Ответ: 2
Вопрос: Хочу поговорить с человеком
Ответ: 1
Вопрос: Позови кого-то живого
Ответ: 1
В качестве промта выбираем переменную {{USER_TEXT}} (Сообщение пользователя) через режим переменных, нажав на кнопку с иконкой "вилки":
Теперь мы ожидаем, что наше действие-классификатор, основанное на ChatGPT будет отвечать строго "1" или "2", в зависимости от того, является ли запрос пользователя просьбой перевести на оператора или нет, где:
1 - Нужно перевести на оператора
2 - Не нужно переводить на оператора
Соответственно, теперь в нашем условии мы укажем в качестве значения ответ от действия ChatGPT, а в качестве варианта соответствия: "1" без звездочек. Ожидая, что в случае если пользователь хочет позвать оператора, наше действие-классификатор ответит: "1":
Теперь проверим. Напишем сначала обычное сообщение, которое уйдёт дальше по сценарию до ассистента и потом специально напишем нашу просьбу перевести на оператора с ошибкой, чтобы убедиться, что сработал именно классификатор:
Форма написания с грубыми ошибками для того, чтобы показать, что классификатор справляется прекрасно 👌🏻
Дополнение
Когда выполняется действие ChatGPT, оно тоже выводит статус, когда "думает".
В случае с классификацией запроса, мы можем указать ему специальный текст, описывающий шаг в сценарии, например: "Определяю тип запроса..."
Либо можно просто удалить текст статуса, чтобы ничего не выводить. Это может быть не критично потому, что запросы через действие ChatGPT выполняются гораздо быстрее, чем запросы к действию Ассистент.