Виртуальный ассистент: для чего нужен, что умеет и как его создать?
Виртуальный помощник — это программа, приложение или сервис, частично наделенный человеческим функционалом. Это довольно широкое определение. В узком смысле виртуальный ассистент всегда решает определенные задачи. Например, выполняет функции личного секретаря, управляет умным домом или автоматизирует бизнес-процессы. Нас интересует как раз последний вариант. Поговорим о том, чем полезен виртуальный голосовой помощник для бизнеса, что он умеет делать и как его создать.
Для чего нужен виртуальный помощник
Искусственный интеллект уже прочно вошел в нашу повседневную жизнь. В каждом мобильном телефоне поселился умный голосовой помощник, который может рассказать о погоде, сообщить, где находится ближайший банкомат, вызвать такси или забронировать билеты в кино. Но это только один из примеров виртуального ассистента, наиболее известный и привычный. В действительности у подобных решений намного больше сфер применения.
Итак, что такое виртуальный помощник? В широком смысле это сервис (программа, мобильное приложение), способный выполнять определенные действия в ответ на информацию, введенную пользователем и/или почерпнутую из Сети [1] . Иначе говоря, искусственный интеллект избавляет человека от необходимости самостоятельно совершать некоторые операции — разумеется, простейшие, то есть такие, которые под силу роботу.
На заметку
Возможности виртуальных ассистентов находят применение во всех сферах жизни. Голосовые помощники внедряют в автомобили, чтобы владелец мог без помощи рук открывать и закрывать двери, заводить двигатель, узнавать уровень топлива в бензобаке. Роботы управляют устройствами умного дома, их устанавливают в отелях, например, чтобы гости заказывали в номер услуги посредством простых команд [2] .
Виртуальные ассистенты сейчас на пике популярности, и волна интереса к ним продолжает расти. По данным исследований, эта часть рынка увеличивается в среднем на 30 % в год [3] . А аналитики Gartner пришли к выводу, что в ближайшее время половину всех запросов в интернете пользователи будут осуществлять с помощью голоса [4] .
Востребованность технологии вполне объяснима: темп жизни растет, свободного времени становится все меньше, и неудивительно, что часть задач люди стараются делегировать роботам. Причем это актуально не только для бытовой сферы, но и едва ли не в большей степени для бизнеса.
Если проанализировать бизнес-процессы любого коммерческого предприятия, станет ясно, что основная их часть есть не что иное как рутина. Многократно повторяющиеся стандартные операции — исходящие звонки, отправка коммерческих предложений и договоров, ответы на однотипные вопросы, заполнение карточек в CRM — отнимают у сотрудников массу рабочего времени. А ведь все эти процессы нужно еще и регулярно контролировать, чтобы убедиться в их соответствии корпоративным стандартам. Когда рутина отнимает столько времени, для развития остается минимум возможностей.
Как же компаниям повышать свою эффективность в таких условиях? Ведь отказаться от типовых операций нельзя: они лежат в основе важнейших бизнес-задач. Решить проблему поможет искусственный интеллект. Он готов взять на себя функционал операторов, причем будет делать это намного продуктивнее, чем целая смена контакт-центра.
Что может виртуальный помощник?
Прежде всего — имитировать реальное общение. Уровень развития этой функции у цифровых ассистентов бывает разным. Одни роботы способны поддерживать лишь простейшие диалоги, зачитывая заранее записанные аудиосообщения. Другие же неотличимы от человека: они понимают смысл обращенной к ним речи, знают синонимы, отвечают без задержек, замолкают при перебивании и даже используют слова-паразиты. В итоге собеседник даже не всегда может определить, что ведет диалог с роботом. Благо это или зло — уже другой вопрос, который лежит в этической плоскости, но ясно, что для бизнеса такие возможности могут быть весьма полезны.
Помимо коммуникативных функций, виртуальные помощники (голосовые боты) могут выполнять различные действия в соответствии с заданными сценариями: осуществлять маршрутизацию вызовов, отправлять SMS, записывать результаты звонков в виде отчетов, оперировать данными из информационных ресурсов компании и фиксировать изменения в них — при условии что робот интегрирован с соответствующими системами.
Исходя из этого функционала, легко догадаться, кому нужен виртуальный помощник. Технология востребована практически в любой отрасли бизнеса, где есть коммуникации:
- Интернет-магазины используют голосовые боты, чтобы оповещать об акциях и спецпредложениях, регистрировать клиентов в программе лояльности, активировать базу и стимулировать продажи, помогать с оформлением заказов.
- Виртуальный помощник в клинике, салоне красоты или другой организации из сферы услуг запишет клиента на прием, при необходимости перенесет время посещения, в результате чего повысится показатель «доходимости».
- Службы доставки с помощью цифровых ассистентов информируют получателей о статусе заказа, согласуют дату выдачи.
- Банки, страховые компании, операторы связи и интернет-провайдеры используют виртуальные помощники, чтобы рассказать о новых услугах и тарифах, напомнить клиентам о необходимости погашения задолженности и помочь совершить оплату.
- Службам персонала роботы помогают подбирать сотрудников и проводить собеседования.

И это далеко не все сферы, где используются виртуальные помощники, и не все задачи, которые они решают. Так, практически в любой компании цифровой ассистент может выполнять функции техподдержки: отвечать на частые вопросы клиентов, консультировать по простым задачам, передавать обращения операторам. А еще с его помощью можно проводить опросы и анкетирование — например, чтобы узнать мнение целевой аудитории о новом продукте. Помогают виртуальные помощники и во внутрикорпоративных коммуникациях: решают текущие вопросы сотрудников, ускоряют взаимодействие между подразделениями.
Преимущества использования виртуальных ассистентов
Плюсы очевидны. Во-первых, они разгружают сотрудников от рутинных задач, предоставляют им возможность заниматься более сложной работой [5] . Во-вторых, снижают расходы предприятия на содержание call-центра. В-третьих, повышают производительность: цифровой помощник, в отличие от человека, может обслуживать несколько линий одновременно, а работает круглосуточно, без перерывов, выходных, отпусков и больничных. Наконец, голосовые боты улучшают качество клиентского сервиса [6] : они быстрее, чем реальные сотрудники, отвечают на вопросы, оперативно предоставляют техподдержку и не пропускают ни одного обращения.
Как можно создать виртуальный ассистент
Цифровые помощники бывают разные: от примитивных чат-ботов, общающихся в мессенджере, до голосовых ассистентов со сложными коммуникативными функциями. Нас интересует второй вариант как наиболее совершенное и продвинутое решение.
На заметку
Голосовые боты различаются по функционалу. Самые простые говорят по скрипту и решают определенный перечень задач: могут зачитать предварительно записанный текст, ответить на частые вопросы, соединить с оператором нужного отдела, отправить SMS. Сложные и продвинутые голосовые боты используют технологии распознавания и синтеза речи. Благодаря этому они могут поддерживать полноценный диалог, а не отвечать шаблонными репликами.
Как сделать виртуальный помощник, который будет действительно полезен бизнесу?
Можно пойти двумя путями. Первый — обратиться к программистам, чтобы разработать собственный цифровой ассистент для решения задач конкретной компании. Процесс создания такого робота занимает несколько недель, а средняя стоимость решения — 150 000 рублей [7] . Второй путь намного проще и дешевле — использовать готовую платформу — конструктор голосовых ботов [8] .
Суть решения в следующем. Пользователь регистрируется на сайте провайдера услуги и получает доступ к облачной платформе. Сервис уже содержит все необходимое для создания и запуска виртуального ассистента: не требуется покупать дорогостоящее лицензионное программное обеспечение, оборудовать рабочие места. Клиент платит только за разговоры и SMS, как при использовании мобильной связи, причем тарификация чаще всего посекундная.
Для того чтобы создать виртуальный ассистент с помощью конструктора, не нужно быть программистом. В личном кабинете пользователю доступны шаблоны обзвонов: достаточно выбрать подходящий или собрать собственный скрипт из готовых функциональных блоков, затем загрузить базу номеров, подключить телефонию, интеграцию с CRM или другими информационными ресурсами компании, — и можно запускать сервис в работу.
Как действует виртуальный помощник?
Это проще всего понять на примере. Типичная проблема интернет-магазинов — брошенная корзина: клиент выбирает товары и по тем или иным причинам не завершает покупку. Большинство конструкторов голосовых ботов содержат шаблон обзвона для реактивации корзины. На сайте магазина робот находит информацию о клиенте, не завершившем покупки, обращается к CRM, чтобы получить нужные данные о нем, и совершает звонок с предложением закончить оформление заказа. В случае согласия цифровой ассистент отправляет покупателю SMS со ссылкой на страницу оплаты, после чего фиксирует результат.

Популярный кейс для банков, страховых компаний, интернет-провайдеров — напоминание о необходимости пополнить счет. За несколько дней до списания робот запросит в CRM контактные данные, позвонит клиентам и предложит отправить ссылку для оплаты. Результаты будут зафиксированы в информационной системе предприятия.
Аналогичным образом виртуальный помощник может напомнить клиентам о задолженности, подтвердить и при необходимости перенести время записи, проинформировать о статусе заказа и многое другое.
Виртуальный ассистент не заменит реальных сотрудников, зато он избавит их от рутины, а собственнику бизнеса поможет сэкономить. Умный голосовой бот находится на связи в режиме 24/7 и совершает сотни звонков в минуту. Создать цифровой ассистент можно, даже не обладая навыками программиста: это очень просто сделать с помощью конструктора с готовыми сценариями.
* Материал не является публичной офертой.
- 1 https://ru.wikipedia.org/wiki/Виртуальный_ассистент
- 2,4 https://hurma.work/rf/blog/voice-assistants-chto-eto-i-zachem-oni-hr-2/
- 3 https://habr.com/ru/post/510986/
- 5 https://www.cinimex.ru/press-center/publications/iskusstvennyy-intellekt-v-klientskoy-podderzhke/
- 6 https://www.carrotquest.io/chatbot/chatbot-types/
- 7 https://spark.ru/startup/5d66ac2dc8878/blog/50469/prakticheskoe-rukovodstvo-kak-avtomatizirovat-prodazhi-s-pomoschiu-virtualnogo-menedzhera-bez-it-otdela-i-krupnih-vlozhenij
- 8 https://vc.ru/services/57488-14-servisov-dlya-sozdaniya-chat-bota-bez-navykov-programmirovaniya
- 9 https://www.mtt.ru/about/

Белоногова Нарцисса Николаевна Ответственный редактор
У некоторых компаний есть пробный период использования услуги «Виртуальный ассистент». За это время можно понять, реально ли ассистент помогает в решении поставленных задач, настроить нужные инструменты и освоиться с функционалом.
Читайте также

Пятница, 17.09.2021
Прием и маршрутизация звонков: как сделать эффективное распределение входящих обращений?

Пятница, 17.09.2021
Программы прозвона: что это такое, как работают и для чего нужны?
![]()
Четверг, 02.09.2021
IP-АТС: сравниваем аппаратные, программные и виртуальные решения
© 2023 АО «Аргументы и Факты» Генеральный директор Руслан Новиков. Главный редактор еженедельника «Аргументы и Факты» Михаил Чкаников. Директор по развитию цифрового направления и новым медиа АиФ.ru Денис Халаимов. Шеф-редактор сайта АиФ.ru Владимир Шушкин.
СМИ «aif.ru» зарегистрировано в Федеральной службе по надзору в сфере связи, информационных технологий и массовых коммуникаций (РОСКОМНАДЗОР), регистрационный номер Эл № ФС 77-78200 от 06 апреля 2020 г. Учредитель: АО «Аргументы и факты». Интернет-сайт «aif.ru» функционирует при финансовой поддержке Федерального агентства по печати и массовым коммуникациям.
Шеф-редактор сайта: Шушкин В.С. e-mail: karaul@aif.ru, тел. 8 495 783 83 57. 16+
Все права защищены. Копирование и использование полных материалов запрещено, частичное цитирование возможно только при условии гиперссылки на сайт aif.ru.
Создание виртуального помощника
Виртуальный помощник — это шаблон Майкрософт с открытым исходным кодом, позволяющий создать надежное диалоговое решение, сохраняя полный контроль над взаимодействием с пользователем, фирменной символикой организации и необходимыми данными. Базовый шаблон виртуального помощника представляет собой основной «строительный кубик», объединяющий технологии Майкрософт, необходимые для создания виртуального помощника, в том числе SDK Bot Framework, Распознавание речи (LUIS) и QnA Maker. Он также объединяет в себе основные возможности, включая регистрацию навыков, связанные учетные записи, базовое намерение общения, чтобы предложить пользователям целый ряд простых взаимодействий и взаимодействия. Кроме того, возможности шаблона включают в себя множество примеров многократно используемых навыков общения. Отдельные навыки интегрированы в виртуальный помощник, чтобы реализовать сразу несколько сценариев. С помощью пакета SDK Bot Framework навыки представлены в форме исходного кода, что позволяет настраивать и расширять их по мере необходимости. Дополнительные сведения о навыках, реализованных в Bot Framework, см. в разделе Что такое навык Bot Framework. В этом документе приведены рекомендации по реализации виртуальных помощников для организаций, описано создание специализированных виртуальных помощников для Teams, примеры программного кода и ограничения виртуальных помощников. На следующем рисунке показан обзор виртуального помощника:

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

Создание специализированного виртуального помощника для Teams
Корпорация Майкрософт опубликовала шаблон Майкрософт для создания виртуальных помощников и навыков. С помощью шаблона можно создать виртуальный помощник на основе текста с поддержкой ограниченных форматированных карточек с действиями. Мы улучшили шаблон, включив возможности платформы Microsoft Teams и широкие возможности приложений Teams. Некоторые возможности включают поддержку многофункциональных адаптивных карточек, диалогов (называемых модулями задач в TeamsJS версии 1.x), команд или групповых чатов и расширений сообщений. Дополнительные сведения о расширении виртуального помощника для Microsoft Teams см. в документе: Руководство по расширению виртуального помощника для взаимодействия с Microsoft Teams. На следующем рисунке показана высокоуровневая схема решения виртуального помощника.

Добавление адаптивных карточек в виртуальный помощник
Чтобы правильно перенаправлять запросы, виртуальный помощник должен определить нужную модель LUIS и соответствующий навык, связанный с ней. Однако механизм диспетчеризации не может использоваться для действий карта действий, так как модель LUIS, связанная с навыком, обучается карта текстам действий. Текст действия карточки — это набор фиксированных, предопределенных ключевых слов, и пользователь не добавляет туда своих комментариев.
Этот пробел устраняется путем внедрения сведений о навыках в полезную нагрузку действия карточки. Каждый навык должен внедряться skillId в value область карта действий. Обеспечьте наличие в каждом действии карточки соответствующих сведений о навыках, Виртуальный помощник использует эти сведения для диспетчеризации.
Необходимо указать skillId в конструкторе, чтобы гарантировать присутствие сведений о навыке в действиях карточки. Пример программного кода данных действия карточки показан в следующем разделе:
public class CardActionData < public CardActionData(string skillId) < this.SkillId = skillId; >[JsonProperty("skillId")] public string SkillId < get; set; >> . var button = new CardAction < Type = ActionTypes.MessageBack, Title = "Card action button", Text = "card action button text", Value = new CardActionData(), >;
Затем вводится класс SkillCardActionData в шаблоне виртуального помощника для извлечения skillId из полезной нагрузки действия карточки. Фрагмент кода, извлекаемый skillId из полезных данных карта действий, показан в следующем разделе:
// Skill Card action data should contain skillId parameter // This class is used to deserialize it and get skillId public class SkillCardActionData < /// /// Gets the ID of the skil that should handle this card /// [JsonProperty("skillId")] public string SkillId < get; set; >>
Реализация выполняется методом расширения в классе Activity. Фрагмент кода для извлечения skillId из карта данных действия показан в следующем разделе:
public static class ActivityExtensions < // Fetches skillId from CardAction data if present public static string GetSkillId(this Activity activity) < string skillId = string.Empty; try < if (activity.Type.Equals(ActivityTypes.Message) && activity.Value != null) < var data = JsonConvert.DeserializeObject(activity.Value.ToString()); skillId = data.SkillId; > else if (activity.Type.Equals(ActivityTypes.Invoke) && activity.Value != null) < var data = JsonConvert.DeserializeObject(JObject.Parse(activity.Value.ToString()).SelectToken("data").ToString()); skillId = data.SkillId; > > catch < // If not able to retrive skillId, empty skillId should be returned >return skillId; > >
Обработка прерываний
Виртуальный помощник может обрабатывать прерывания в случаях, когда пользователь пытается вызвать навык во время активности другого навыка. Затем вводятся TeamsSkillDialog и TeamsSwitchSkillDialog на основе SkillDialog и SwitchSkillDialog платформы Bot Framework. Они позволяют пользователям переключать навыки между действиями с карточками. Для обработки этого запроса виртуальный помощник запросит у пользователя подтверждение для переключения навыков:

Обработка запросов диалога
Чтобы добавить возможности диалога в виртуальный помощник, в обработчик действий Виртуального помощника включены два дополнительных метода: OnTeamsTaskModuleFetchAsync и OnTeamsTaskModuleSubmitAsync . Эти методы прослушивают действия, связанные с диалогом, от Виртуального помощника, определяют навык, связанный с запросом, и перенаправляют запрос на указанный навык.
Переадресация запросов выполняется с помощью метода SkillHttpClient, PostActivityAsync . Он возвращает ответ в виде InvokeResponse , который анализируется и преобразуется в TaskModuleResponse .
public static TaskModuleResponse GetTaskModuleRespose(this InvokeResponse invokeResponse) < if (invokeResponse.Body != null) < return new TaskModuleResponse() < Task = GetTask(invokeResponse.Body), >; > return null; > private static TaskModuleResponseBase GetTask(object invokeResponseBody) < JObject resposeBody = (JObject)JToken.FromObject(invokeResponseBody); var task = resposeBody.GetValue("task"); var taskType = task.SelectToken("type").ToString(); return taskType switch < "continue" =>new TaskModuleContinueResponse() < Type = taskType, Value = task.SelectToken("value").ToObject(), >, "message" => new TaskModuleMessageResponse() < Type = taskType, Value = task.SelectToken("value").ToString(), >, _ => null, >; >
Аналогичный подход применяется для карта отправки действий и диалоговых ответов. Диалоговое окно выборки и отправки данных о действии обновляется, включив в них skillId . Метод GetSkillId расширения действий извлекает из полезных skillId данных, которые предоставляют сведения о навыке, который необходимо вызвать.
Фрагмент кода для методов OnTeamsTaskModuleFetchAsync и OnTeamsTaskModuleSubmitAsync приведен в следующем разделе:
// Invoked when a "task/fetch" event is received to invoke dialog. protected override async Task OnTeamsTaskModuleFetchAsync(ITurnContext turnContext, TaskModuleRequest taskModuleRequest, CancellationToken cancellationToken) < try < string skillId = (turnContext.Activity as Activity).GetSkillId(); var skill = _skillsConfig.Skills.Where(s =>s.Value.AppId == skillId).First().Value; // Forward request to correct skill var invokeResponse = await _skillHttpClient.PostActivityAsync(this._appId, skill, _skillsConfig.SkillHostEndpoint, turnContext.Activity as Activity, cancellationToken); return invokeResponse.GetTaskModuleResponse(); > catch (Exception exception) < await turnContext.SendActivityAsync(_templateEngine.GenerateActivityForLocale("ErrorMessage")); _telemetryClient.TrackException(exception); return null; >> // Invoked when a 'task/submit' invoke activity is received for dialog submit actions. protected override async Task OnTeamsTaskModuleSubmitAsync(ITurnContext turnContext, TaskModuleRequest taskModuleRequest, CancellationToken cancellationToken) < try < string skillId = (turnContext.Activity as Activity).GetSkillId(); var skill = _skillsConfig.Skills.Where(s =>s.Value.AppId == skillId).First().Value; // Forward request to correct skill var invokeResponse = await _skillHttpClient.PostActivityAsync(this._appId, skill, _skillsConfig.SkillHostEndpoint, turnContext.Activity as Activity, cancellationToken).ConfigureAwait(false); return invokeResponse.GetTaskModuleRespose(); > catch (Exception exception) < await turnContext.SendActivityAsync(_templateEngine.GenerateActivityForLocale("ErrorMessage")); _telemetryClient.TrackException(exception); return null; >>
Кроме того, необходимо включить все домены навыков в validDomains раздел в файле манифеста приложения Виртуального помощника, чтобы диалоги, вызываемые с помощью навыка, правильно отображались.
Обработка областей приложения для совместной работы
Приложения Teams могут существовать в нескольких областях, в том числе в приватных чатах, групповых чатах и каналах. Основной шаблон виртуального помощника предназначен для приватных чатов. В рамках процесса подключения виртуальный помощник запрашивает имя пользователя и сохраняет его состояние. Так как интерфейс подключения не подходит для областей группового чата или канала, он был удален.
Навыки должны обрабатывать действия в нескольких областях, таких как приватный чат, групповой чат и беседа в канале. Если какая-либо из этих областей не поддерживается, навыки должны отвечать соответствующим сообщением.
В ядро Виртуального помощника добавлены следующие функции обработки:
- Виртуальный помощник можно вызвать без текстовых сообщений из группового чата или канала.
- Артикуляции следует очистить перед отправкой сообщения в модуль диспетчеризации. Например, удалите необходимый @mention объект бота.
if (innerDc.Context.Activity.Conversation?.IsGroup == true) < // Remove bot atmentions for teams/groupchat scope innerDc.Context.Activity.RemoveRecipientMention(); // If bot is invoked without any text, reply with FirstPromptMessage if (string.IsNullOrWhiteSpace(innerDc.Context.Activity.Text)) < await innerDc.Context.SendActivityAsync(_templateEngine.GenerateActivityForLocale("FirstPromptMessage")); return EndOfTurn; >>
Обработка расширений для сообщений
Команды расширения для сообщений нужно объявить в файле манифеста приложения. Этими командами поддерживается пользовательский интерфейс расширения сообщений. Чтобы виртуальный помощник обрабатывал команду расширения для сообщений в качестве присоединенного навыка, собственный манифест виртуального помощника должен содержать эти команды. Необходимо добавить команды из манифеста отдельного навыка в манифест виртуального помощника. Идентификатор команды предоставляет сведения о привязанном навыке путем добавления идентификатора приложения навыка через разделитель : .
Фрагмент кода из файла манифеста навыка показан в следующем разделе:
"composeExtensions": [ < "botId": "", "commands": [ < "id": "searchQuery", "context": [ "compose", "commandBox" ], "description": "Test command to run query", . >] > ]
Соответствующий фрагмент программного кода из файла манифеста виртуального помощника показан в следующем разделе:
"composeExtensions": [ < "botId": "", "commands": [ < "id": "searchQuery:", "context": [ "compose", "commandBox" ], "description": "Test command to run query", . > ] > ]
После вызова команд пользователем виртуальный помощник может определить связанный навык, проанализировав идентификатор команды, обновить действие, удалив дополнительный суффикс : из идентификатора команды и перенаправив его в соответствующий навык. Обрабатывать дополнительный суффикс в коде, реализующем навык, не нужно. Таким образом, конфликта идентификаторов команд между навыками можно избежать. При таком подходе все команды поиска и действия навыка во всех контекстах, такие как compose, commandBox и message, реализуются на базе виртуального помощника.
const string MessagingExtensionCommandIdSeparator = ":"; // Invoked when a 'composeExtension/submitAction' invoke activity is received for a messaging extension action command protected override async Task OnTeamsMessagingExtensionSubmitActionAsync(ITurnContext turnContext, MessagingExtensionAction action, CancellationToken cancellationToken) < return await ForwardMessagingExtensionActionCommandActivityToSkill(turnContext, action, cancellationToken); >// Forwards invoke activity to right skill for messaging extension action commands. private async Task ForwardMessagingExtensionActionCommandActivityToSkill(ITurnContext turnContext, MessagingExtensionAction action, CancellationToken cancellationToken) < var skillId = ExtractSkillIdFromMessagingExtensionActionCommand(turnContext, action); var skill = _skillsConfig.Skills.Where(s =>s.Value.AppId == skillId).First().Value; var invokeResponse = await _skillHttpClient.PostActivityAsync(this._appId, skill, _skillsConfig.SkillHostEndpoint, turnContext.Activity as Activity, cancellationToken).ConfigureAwait(false); return invokeResponse.GetMessagingExtensionActionResponse(); > // Extracts skill Id from messaging extension command and updates activity value private string ExtractSkillIdFromMessagingExtensionActionCommand(ITurnContext turnContext, MessagingExtensionAction action) < var commandArray = action.CommandId.Split(MessagingExtensionCommandIdSeparator); var skillId = commandArray.Last(); // Update activity value by removing skill id before forwarding to the skill. var activityValue = JsonConvert.DeserializeObject(turnContext.Activity.Value.ToString()); activityValue.CommandId = string.Join(MessagingExtensionCommandIdSeparator, commandArray, 0 commandArray.Length - 1); turnContext.Activity.Value = activityValue; return skillId; >
Некоторые действия расширения сообщений не включают идентификатор команды. Например, composeExtensions/selectItem содержит только значение вызова действия касания. Чтобы определить связанный навык, skillId он присоединяется к каждому элементу карта при формировании ответа для OnTeamsMessagingExtensionQueryAsync . Этот подход аналогичен подходу к добавлению адаптивных карточек в виртуальный помощник.
// Invoked when a 'composeExtension/selectItem' invoke activity is received for compose extension query command. protected override async Task OnTeamsMessagingExtensionSelectItemAsync(ITurnContext turnContext, JObject query, CancellationToken cancellationToken) < var data = JsonConvert.DeserializeObject(query.ToString()); var skill = _skillsConfig.Skills.Where(s => s.Value.AppId == data.SkillId).First().Value; var invokeResponse = await _skillHttpClient.PostActivityAsync(this._appId, skill, _skillsConfig.SkillHostEndpoint, turnContext.Activity as Activity, cancellationToken).ConfigureAwait(false); return invokeResponse.GetMessagingExtensionResponse(); >
Пример
В следующем примере показано, как преобразовать шаблон приложения «Книга в комнату» в навык «Виртуальный помощник». Книга в комнате — это Teams, который позволяет пользователям быстро находить и резервировать комнату для собраний в течение 30, 60 или 90 минут, начиная с текущего времени. Длительность резервирования по умолчанию — 30 минут. Бот «Резервирование комнаты» действует в области личных или приватных бесед. На следующем рисунке показан виртуальный помощник с навыком Резервирование комнаты:

Ниже приведены разностные изменения, внесенные для преобразования его в навык, который присоединяется к виртуальному помощнику. Аналогичные шаги нужны для преобразования любого существующего бота версии 4 в навык.
Манифест навыка
Манифест навыка — это JSON-файл, предоставляющий параметры навыка: конечную точку обмена сообщениями, идентификатор, имя и другие соответствующие метаданные. Этот манифест отличается от манифеста, используемого для отправки пользовательских приложений в Teams. Виртуальному помощнику нуже путь к этому файлу в качестве входных данных для прикрепления навыка. Мы добавили следующий манифест в папку wwwroot бота.
botskills connect --remoteManifest "" ..
< "$schema": "https://schemas.botframework.com/schemas/skills/skill-manifest-2.1.preview-0.json", "$id": "microsoft_teams_apps_bookaroom", "name": "microsoft-teams-apps-bookaroom", "description": "microsoft-teams-apps-bookaroom description", "publisherName": "Your Company", "version": "1.1", "iconUrl": "", "copyright": "Copyright (c) Microsoft Corporation. All rights reserved.", "license": "", "privacyUrl": "", "endpoints": [ < "name": "production", "protocol": "BotFrameworkV3", "description": "Production endpoint for the skill", "endpointUrl": "", "msAppId": "skill app id" > ], "dispatchModels": < "languages": < "en-us": [ < "id": "microsoft-teams-apps-bookaroom-en", "name": "microsoft-teams-apps-bookaroom LU (English)", "contentType": "application/lu", "url": "file://book-a-meeting.lu", "description": "English language model for the skill" >] > >, "activities": < "message": < "type": "message", "description": "Receives the users utterance and attempts to resolve it using the skill's LU models" >> >
Интеграция LUIS
Модель диспетчеризации виртуального помощника достраивается поверх моделей LUIS подключенных навыков. Модель диспетчеризации определяет намерение для каждого текстового действия и находит связанный с ним навык.
Виртуальному помощнику требуется модель LUIS навыка в формате .lu в качестве входного параметра при подключении навыка. JSON LUIS преобразуется в .lu формат с помощью инструмента botframework-cli.
botskills connect --remoteManifest "" --luisFolder "" --languages "en-us" --cs
npm i -g @microsoft/botframework-cli bf luis:convert --in --out
Бот «Резервирование комнаты» имеет две основные команды для пользователей:
- Book room
- Manage Favorites
Мы создали модель LUIS, осмыслив эти две команды. Соответствующие секреты должны быть заполнены в cognitivemodels.json . Соответствующий JSON-файл LUIS можно найти здесь. Соответствующий файл .lu показан в следующем разделе:
> ! Automatically generated by [LUDown CLI](https://github.com/Microsoft/botbuilder-tools/tree/master/Ludown), Tue Mar 31 2020 17:30:32 GMT+0530 (India Standard Time) > ! Source LUIS JSON file: book-a-meeting.json > ! Source QnA TSV file: Not Specified > ! Source QnA Alterations file: Not Specified > # Intent definitions ## BOOK ROOM - book a room - book room - please book a room - reserve a room - i want to book a room - i want to book a room please - get me a room please - get me a room ## MANAGE FAVORITES - manage favorites - manage favorite - please manage my favorite rooms - manage my favorite rooms please - manage my favorite rooms - i want to manage my favorite rooms ## None > # Entity definitions > # PREBUILT Entity definitions > # Phrase list definitions > # List entities > # RegEx entities
При таком подходе любая команда, выданная пользователем виртуальному помощнику и связанная с book room или manage favorites идентифицируется как команда, связанная с ботом Book-a-room , и перенаправляется в этот навык. С другой стороны, Book-a-room room бот должен использовать модель LUIS, чтобы понять эти команды, если они не заполнены. Пример: I want to manage my favorite rooms .
Поддержка нескольких языков.
Например, создается модель LUIS только с английским языком и региональными параметрами. Вы можете создать модели LUIS, соответствующие другим языкам, и добавить запись в cognitivemodels.json .
Параллельно добавьте соответствующий файл .lu в путь luisFolder. Структура папок должна выглядеть следующим образом:
| - luisFolder | - en-us | - book-a-meeting.lu | - your_language_culture | - book-a-meeting.lu
Чтобы изменить languages параметр, обновите команду навыков бота следующим образом:
botskills connect --remoteManifest "" --luisFolder "" --languages "en-us, your_language_culture" --cs
Виртуальный помощник использует SetLocaleMiddleware для определения текущего языкового стандарта и вызова соответствующей модели диспетчеризации. Действие платформы бота имеет поле языкового стандарта, которое используется этим ПО промежуточного слоя. Вы можете использовать то же самое для своего навыка. Бот book-a-room не использует это ПО промежуточного слоя и вместо этого получает языковой стандарт из объекта clientInfo действия Bot framework.
Проверка утверждений
Мы добавили claimsValidator , чтобы ограничить вызывающих навыков. Чтобы разрешить виртуальному помощнику вызывать этот навык, заполните массив AllowedCallers на основе appsettings с помощью идентификатора приложения этого виртуального помощника.
"AllowedCallers": [ "", "" ],
Массив разрешенных вызывающих объектов может ограничить доступ потребителей навыка к навыку. Добавьте одну запись * в этот массив, чтобы принимать вызовы от любого потребителя навыка.
"AllowedCallers": [ "*" ],
Дополнительные сведения о добавлении проверки утверждений в навык см. в разделе Добавление проверки утверждений в навык.
Ограничение обновления карточки
Действие обновления, например карта обновление, пока не поддерживается через Виртуальный помощник (проблема с github). Таким образом, мы заменили все вызовы UpdateActivityAsync обновления карта на отправку новых вызовов SendActivityAsync карта .
Действия с карточками и диалоговые потоки
Чтобы пересылать действия карта или диалоговые действия в связанный навык, навык должен внедриться skillId в него. Book-a-room бот карта действия, выборки диалоговых окон и отправки полезных данных действия изменяются для их хранения skillId в качестве параметра.
Обработка действий из области группового чата или канала
Book-a-room bot предназначен для частных чатов, таких как личные или приватные. Так как мы настроили виртуальный помощник для поддержки областей группового чата и каналов, виртуальный помощник нужно вызывать из областей канала, поэтому бот Book-a-room должен получать действия для той же области. Поэтому бот Book-a-room нужно изменить для обработки этих действий. Вы можете найти методы проверки OnMessageActivityAsync обработчика Book-a-room действий бота.
protected override async Task OnMessageActivityAsync(ITurnContext turnContext, CancellationToken cancellationToken) < // Check if activities are from groupchat/ teams scope. This might happen when the bot is consumed by Virtual Assistant. if (turnContext.Activity.Conversation.IsGroup == true) < await ShowNotSupportedInGroupChatCardAsync(turnContext).ConfigureAwait(false); >else < . >>
Вы также можете использовать существующие навыки из репозитория решений Bot Framework или создать новый навык полностью с нуля. В создании навыка вам помогут руководства по созданию нового навыка. Документацию по виртуальному помощнику и архитектуре навыков см. в разделе Виртуальный помощник и архитектура навыков.
Ограничения виртуального помощника
- EndOfConversation: по завершении беседы навык должен отправить действие endOfConversation . В зависимости от действия виртуальный помощник заканчивает контекст с определенным навыком и возвращается в корневой контекст виртуального помощника. Для бота book-a-room нет четкого состояния, в котором заканчивается беседа. Поэтому мы не отправляли сообщения endOfConversation от Book-a-room бота, и когда пользователь хочет вернуться к корневому контексту, он может сделать это с помощью start over команды .
- Обновление карточки. Обновление карточки пока не поддерживается с помощью Виртуального помощника.
- Расширения для сообщений
- В настоящее время виртуальный помощник может поддерживать не более 10 команд для расширений сообщений.
- Конфигурация расширений сообщений ограничивается не отдельными командами, а для всего расширения. Это ограничивает конфигурацию для каждого отдельного навыка с помощью виртуального помощника.
- Идентификаторы команд расширений сообщений имеют максимальную длину 64 символа, а для внедрения сведений о навыках используется 37 символов. Таким образом, новое ограничение для идентификатора команды — 27 символов.
Вы также можете использовать существующие навыки из репозитория решений Bot Framework или создать новый навык полностью с нуля. Руководства для последнего можно найти здесь. См. документацию по виртуальному помощнику и архитектуре навыков.
Пример кода
Название примера Описание .NET Обновленный шаблон Visual Studio Настраиваемый шаблон для поддержки возможностей Teams. View Код навыка бота «Резервирование комнаты» Позволяет быстро находить и резервировать помещения для совещаний. Просмотр Дополнительные ресурсы
- Интеграция веб-приложений
- Адаптивные карточки
- Бот «Резервирование комнаты»
- Бот Microsoft Teams.
Как просто и непросто создать своего голосового помощника
Голосовой помощник – стремительно развивающийся тренд. Контакты своего голосового помощника скоро будут давать также, как раньше давали контакты секретаря или офиса. Некоторые платформы предлагают создать себе голосовых помощников самостоятельно и будто бы для этого не нужны навыки программирования.

Предыстория
У меня уже есть опыт создания голосовых роботов разного уровня сложности.
Как-то мой брат озадачился завести себе голосового помощника. Ему были названы платформы с визуальным «nocode» редактором, и казалось, что задача решена. Велико было удивление, когда брат позвонил и сказал, что там совсем ничего не понятно. «Как там может быть что-то непонятно? Там все понятно, специально же для обычных людей сделано.» — думал я. «Берешь квадратики, соединяешь стрелочками, все же просто.»
Договорились встретиться в кафе, чтобы продемонстрировать, как легко и просто за 5 минут создать себе голосового помощника уровня «привет – как дела – пока». Ну а дальше — если идея понятна, то повторяй и улучшай.

Это занимает 5 минут на привычном десктопе с большим экраном. Когда же в кафе зашли со смартфона – все совсем не так, действительно ничего не понятно.
Похоже на то, как если человек давно живет в своей квартире и хорошо в ней ориентируется, то при выключенном свете он также найдет кухню, чайник, посуду. Но если он пришел в гости первый раз, и выключили свет, то уже сложности.
Так и здесь. Хорошо, что я реально знал, где что находится, и по визуальной памяти соединил несколько квадратиков. И то с огромными усилиями, ругательствами, и минут за 40, а не легко и просто за 5.
Итак, что же у нас есть распространенного, чтобы обычный человек, непрограммист, мог «легко и просто» создать себе голосового помощника.
AimyLogic

Платформа с визуальным «безкодовым» редактором.То есть на экране есть квадратики, в них можно вносить различные данные, и соединять квадратики стрелочками.
- На большом экране все очень удобно и понятно.
- Голосового помощника уровня «привет – как дела – пока» создать действительно легко.
- Созданного помощника можно подключать ко многим провайдерам телефонии и другим каналам.
- Наличие бесплатного тарифа, регистрируешься и осваиваешься.
- Экрана смартфона явно не хватает на виджеты платформы.
- Если делать помощника посложнее, например, хотя бы просто много вопросов и много ответов, то нужно или очень большие квадратики, или много квадратиков, или добавлять считывание из базы, циклы, сравнения, а это уже относится к навыкам программирования
- Связываться с другим сервисом через http-запрос – удобно программисту, довольно непревычно непрограммисту.
- Обзвоны создаются легко, хотя обращение со списком номеров и отправление результатов диалогов себе в базу данных требует навыков программирования.
Огромный плюс: можно публиковать помощника/бота практически во все существующие каналы – телефон, telegram, Алиса и так далее.
Дальше можно погружаться в функционал платформы. Есть подключение синтеза голосов, распознавания речи, воспроизведение файлов, обучение нейронной сети и прочее, но это уже для тех, кто погрузился. Для программистов – удобно. Для непрограммистов – скорее сложно, чем легко и просто.
МТТ
Платформа с визуальным «безкодовым» редактором. Сам визуальный редактор очень похож на AimyLogic, даже особо нечего и обозревать.
Минус в том, что (возможно, но не точно) платформа предназначена для увеличения телефонного трафика МТТ со всеми соответствующими последствиями, то есть созданный помощник/бот остается в МТТ, не публикуется в другие каналы, никуда не переносится, и для начала работы нужно внести аванс порядка 20 000 рублей. Довольно дорого, чтобы просто человеку, не компании и не корпорации, что-то начать, попробовать, потестировать.
BotWinnik

Предельно упрощенный подход. Голосовой помощник создается в 1 клик – в telegram нужно нажать кнопку «Создать». Считается, что на этом голосовой помощник создан. Дальше предлагается перейти по индивидуальной ссылке в гугл-таблицу и там добавлять фразы возможного диалога. В одну колонку – фразы человека, в другую — фразы помощника. С помощником можно общаться по индивидуальной ссылке в интернет. Еще 1 кликом созданного помощника можно установить в Алису.
Система полностью соответствует статусу «безкодовая», так там совсем нечего программировать — нужно только добавлять фразы в гугл-таблицу.
- Все предельно просто при создании и применении.
- Используются telegram и гугл-таблица, то есть удобно и со смартфонов.
- Бесплатно.
- В общем-то пока не совсем понятно, для чего именно такой голосовой помощник нужен, хотя уже прослеживается применение – вместо операторов отвечает на простые вопросы.
Вывод
Искусственный интеллект постепенно набирает обороты, инструменты создания голосовых помощников уже создаются и развиваются.
Все движется к тому, что в самое ближайшее время мы увидим аналогию с созданием сайтов – простого голосового помощника сможет создавать любой человек, просто задавая шаблон на конструкторе и добавляя контент и функционал. И конечно, управлять таким конструктором будет возможно голосом.

- голосовой помощник
- голосовой ассистент
- конструктор
- создание
Чат-бот из кошмаров: как создать виртуального помощника, который распугает клиентов
12 признаков ужасного чат-бота от руководителя проектного офиса Cleverbots Алексея Капустина. А ещё – советы, как всё исправить.
Некоторые компании до сих пор боятся виртуальных помощников, считая, что они лишь отпугивают клиентов. Исследование Markswebb показало, что сегодня в среднем по российскому рынку показатель неудовлетворенности чат-ботами превышает 10%.
Эта статья для вас, если вы хотите избежать ошибок, создавая бота, или проверить, корректно ли работает ваш цифровой ассистент. Итак, мы сформулировали 12 признаков плохого бота, который точно испортит обработку запросов и снизит эффективность службы поддержки. И, конечно, снабдили каждый пункт рекомендацией о том, как всё исправить — и переманить бота на светлую сторону.
1. Бота трудно найти (и легко потерять)
Неуловимый виртуальный помощник — верный способ разозлить клиента ещё до переписки в чате. Главное, чтобы пользователь не догадался, что за фразой «задать вопрос» или «связаться с нами» стоит чат-бот. А чтобы точно испортить впечатление, спрячьте диалоговый интерфейс подальше от главной страницы — пусть клиент пройдёт квест и получит ценный опыт.
Как это исправить?
Ссылку на диалоговый интерфейс лучше назвать понятным словом «чат» и расположить её на главной странице приложения или в панели вкладок.
2. У бота нет чёткой цели и фокуса
Такой виртуальный помощник — заложник некорректно составленного техзадания. Возможно, заказчик не смог решить, зачем ему нужен бот, или хотел заменить сотрудников сразу многих подразделений. А исполнитель не стал спорить и включил в сценарий всего понемногу. Такой «рассеянный» бот часто ошибается, а многие его функции остаются невостребованными. В результате качество обслуживания падает, а процент обращений, которые обрабатывает цифровой ассистент, ниже ожидаемого.
Как это исправить?
Перед созданием бота нужно тщательно продумать все его функции, разбив их на группы — от продаж до клиентской поддержки. К этому процессу можно привлечь бизнес-аналитика или компанию-партнёра по ИИ-трансформации. Реализовывать весь потенциал виртуального помощника лучше поэтапно, с проведением тестирования на реальных пользователях. Так вы сможете идти по воронке продаж и логично увеличивать объём задач бота.
3. Бот скромно молчит о своих функциях
Если помощник не знает ответа на вопрос и сыплет фразами невпопад, клиент гарантированно начнет раздражаться. Однажды столкнувшись с таким ассистентом, человек вряд ли вернётся в чат и предпочтёт осаждать звонками службу поддержки.
Как это исправить?
При первом контакте с пользователем бот должен рассказать о своих функциях и группах вопросов, на которые он знает ответы. Например, показать кнопками самые частотные категории обращений.
Финансовый ассистент Олег всегда готов рассказать о своих функциях
4. Бот не помогает сформулировать запросНе всем удобно задавать вопрос письменно, например, если пользователь находится в дороге. Поэтому бот, который терпеливо ждёт от человека сообщения, не предлагая варианты запросов на нужную тему, рискует вызвать негатив.
Как это исправить?
Предлагать пользователю варианты ответов на вопрос бота, чтобы он мог выбрать нужную фразу одним кликом. При этом нужно оставить клиенту и возможность написать свой запрос. Здесь удачным решением будет предиктивный ввод: набирая текст, человек увидит возможные формулировки, соответствующие контексту фразы.
5. Бот просит переформулировать вопрос
Фраза «пожалуйста, переформулируйте ваш запрос» — отличный способ вывести клиента из себя, потому что обычно она не помогает. Многие разработчики ботов это поняли и отказались от такой ветки сценария.
Как это исправить?
Бот может предложить пользователю похожие формулировки или варианты быстрых ответов. А если и это не спасёт — позвать оператора.
6. Бот раздаёт инструкции, но не решает задачу
Если виртуальный ассистент вместо того, чтобы, например, помочь клиенту зарегистрировать страховой случай, предлагает ему позвонить на горячую линию, он не просто бесполезен, но и вреден. Люди не любят совершать лишние действия, и такая ситуация снимет сразу несколько очков лояльности.
Как это исправить?
В идеале бот должен сам решать все задачи, о которых заявляет в начале диалога. Если же какую-то из них нельзя доверить алгоритму, он должен хотя бы дать клиенту ссылку на нужную страницу интернет-ресурса компании или быстро привлечь оператора. При этом важно, чтобы пользователь остался на той же площадке, где реализован чат, например, в приложении или на сайте.
В одном из случаев бот не может помочь, но предлагает диалог с оператором в этом же канале
7. Бот до последнего охраняет покой операторовДа, задача чат-бота — разгрузить службу поддержки. Но это не значит, что он должен закрывать амбразуру запросов любыми способами, лишь бы не потревожить операторов. Своим нежеланием по первой просьбе вызвать человека он точно вызовет гнев клиентов: согласно исследованию CCW Market Study 2020, на такую ситуацию жалуется 33% пользователей.
Как это исправить?
При подготовке сценария нужно прописать слова и фразы, после которых виртуальный помощник быстро подключит к беседе человека.
Бот зовет оператора по первой же просьбе пользователя
8. Бот не передаёт оператору информацию о клиенте и историю коммуникацииТо же исследование CCW Market Study 2020 показывает: 25% пользователей раздражает, что оператор не знает историю их взаимодействия с компанией. Неудивительно, ведь людям приходится тратить дополнительное время, заново описывая проблему.
Как это исправить?
Виртуальный ассистент, контакт-центр и отдел по работе с клиентами должны быть не автономными структурами, а слаженной командой. Так, задача бота — не просто позвать оператора, но и передать ему информацию о клиенте плюс историю беседы. Для этого необходимо интегрировать цифрового помощника с чат-платформой заказчика и настроить передачу по API истории взаимодействия пользователя с ботом. Тогда оператор будет видеть все прошлые обращения и ветку сценария, из которой клиент просил позвать специалиста.
Идеальный виртуальный помощник и вовсе предложит коллеге возможные варианты действий, которые найдёт в базе данных. Кроме того, пока оператор занят решением проблемы, бот может периодически сообщать пользователю, что над его вопросом работают.
9. Бот шокирует своим стилем общения
Пожалуй, самый показательный пример — история о том, как чат-бот Олег посоветовал клиентке «Тинькофф Банка» отрезать себе пальцы (она не могла войти в приложение по отпечатку). При этом его антипод — бот, который всегда серьёзен и не похож на живого человека, — будет раздражать клиентов не меньше.
Как это исправить?
Вообще, стиль общения — один из самых сложных моментов при создании виртуального помощника. С одной стороны, бот не должен разговаривать слишком сухо, используя канцеляризмы, с другой — не должен быть фамильярным. Какую точку выбрать на этой шкале, зависит от аудитории, с которой будет на связи бот. Поэтому, создавая сценарий, подрядчик должен запросить детальный портрет покупателя и описание tone of voice бренда.
Если ваш чат-бот линейный, то есть действует по заранее прописанному сценарию, можно включить уместный юмор в некоторые типовые ответы.
Линейный бот со встроенным чувством юмора
Если бот содержит NLP-модуль, то есть способен понимать естественный язык и обучаться на новой информации, нужно внимательно проверять выборки. Кстати, именно в открытых данных почерпнул свою шутку банковский ассистент Олег. Увы, нейросеть пока не умеет учитывать характер пользователя и не обладает тактичностью, и это нужно иметь в виду.
10. Бот слишком часто инициирует общение
Не всех пользователей радует, если чат-бот в мессенджере то и дело пишет о скидках и акциях. Как правило, пользователи предпочитают сами инициировать общения с ботом по конкретному вопросу, и не получать спам с призывом что-то купить.
Как это исправить?
Не стоит рассылать всем клиентам одинаковые сообщения. Чтобы учесть их пожелания, можно спрашивать у каждого нового пользователя, готов ли он получать информацию об акциях, как часто и в какое время.
11. Бот просит клиента ввести данные, которые должен знать сам
Представьте ситуацию: в чат пишет зарегистрированный пользователь, который недавно совершил покупку на сайте, а бот просит его ввести номер заказа. Или у клиента есть несколько сим-карт, а бот не предлагает выбрать один из номеров, а требует ввести его вручную. Казалось бы, помощник должен владеть этой информацией благодаря доступу ко внутренним системам организации. Но интеграция не всегда настроена правильно или в сценарии допущена ошибка. И компания получает недовольных клиентов.
Бот некорректно показывает товары из корзины: пользователь не понимает, какой именно продукт скрыт за артикулом
Как это исправить?
Нужно обеспечить взаимодействие бота с корпоративными системами и базами данных, а также учесть все варианты обращения к ним в сценарии. Кстати, если ассистент работает не в приложении, а на главной странице сайта или в мессенджере, стоит предусмотреть удобную авторизацию пользователя по SMS-сообщению.
12. Бот слишком быстро завершает беседу
Бывает так, что человек отвлекся на телефонный звонок или случайно закрыл приложение, а бот решил, что проблема исчерпана, и завершил беседу. Возвращаясь в чат, пользователь видит просьбу оценить качество обслуживания и резонно выходит из себя.
Как это исправить?
Работая над сценарием, важно учесть все возможные сценарии поведения клиента. К примеру, если он не отвечает больше двух минут, можно задать вопрос, предложив варианты ответов. Если же пользователь благодарит за помощь, бот может уточнить, остались ли другие вопросы.
Если вы хотите знать больше о том, как технологии помогают компаниям расти и совершенствовать процессы, подписывайтесь на наш телеграм-канал ИИшечная. Там мы публикуем полезные материалы, подборки мировых новостей о развитии искусственного интеллекта и его применении в решении бизнес-задач.