# Искусственный интеллект

# Возможности виртуального помощника

В основные обязанности голосового помощника входит:

  • Принимать звонки
  • Выявлять причину обращения
  • Собирать дополнительную информацию.

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

  • Входящие и исходящие звонки
  • Опросы в целях контроля качества обслуживания
  • Различные операции проверки и подтверждения действий клиентов
  • Напоминание клиентам о посещениях и о предстоящих мероприятиях
  • Информирование клиентов о специальных предложениях и акциях

Голосовые помощники

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

Важное отличие от живых менеджеров, голосовые помощники готовы помочь 24/7, что означает, что клиенты могут получать информацию тогда, когда им это нужно больше всего. Бот не пропустит ни одного обращения даже в праздничные дни и нерабочее время. Голосовые помощники позволяют избегать необходимости ждать на линии, чтобы поговорить с оператором call-центра. Взаимодействие с ботами может значительно улучшить качество обслуживания клиентов. Применение чат-ботов ограничивается только фантазией. Они автоматизируют самые тяжелые и рутинные операции, оставляя сотрудникам время на принятие серьезных решений.

# Пример голосового помощника реализованного в "Киберсофт.Искусственный интеллект":


# Как устроен робот?

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

  • Звонок
  • Анкетирование
  • Скрипт заказа товары или корзины. В сценарий вносится также текст, который проговаривается клиенту, и логика реакций бота на возможные ответы собеседника. Мы можем полностью настроить диалог в зависимости от ответа клиента.

В первую очередь создайте сценарий: В главном меню перейдите в Возможности -> Искусственный интеллект

Меню

Теперь перейдем к созданию сценария. Для это нажмите “Добавить диалог”

Вы увидите всплывающее окно, в котором нужно указать название для бота.

Когда бот будет создан, вы попадете в редактор бота и увидите пустой сценарий. Основные элементы сценария - это блоки.

Блоки

Блоки — это минимальная единица, из которой строится логика работы бота. Каждый блок представляет собой действие, которое бот совершит в диалоге с клиентом, например: приветствие клиента, отправка изображения или распознавание того, что клиент хочет сделать заказ

# Создание блоков

Блоки можно разделить на четыре группы:

  • Сообщение — ответ бота клиенту в диалоге.
  • Условие — создание условий для перехода к определенному блоку в зависимости от действий пользователя.
  • Запрос - создание запроса к внешнему API для выполнения действий
  • Скрипт - обработка расширенной логики в виде вставки Javascript кода

Screenshot

# Как связать блоки?

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

Screenshot

# Создание блока “Сообщение”

Для создания нового блока сообщения - выберите тип блока из списка и выберите место для размещения блока в схеме сценария.

Screenshot

В правом окне вы можете настроить блок:

  • Описание - подробное описание блока

  • Сообщение - Текст который будет ответом для клиента

  • SSML - текст который будет озвучен клиенту (голосовые чат-боты). SSML-теги используются для тонкой настройки синтеза речи: можно изменить паузы, ударения, выделить акцентные слова и т.д. Используйте этот блок, когда бот должен произнести фразу в диалоге с клиентом во время звонка. Возможности SSML-разметки

  • Начало диалога - установите параметр для начального блока сценария. Если параметр установлен, то группа начнет работать именно с этого блока сообщений

  • Конец диалога - установите параметр если диалог должен завершится на данном блоке сценария

  • Кэшировать речевой запрос - сохранять синтезированный аудио-файл для последующего воспроизведения

  • Теги - укажите метки которые будут срабатывать при достижении данного блока. В истории диалогов существует аналитика по меткам диалога

  • Занести результат в переменную - укажите название переменной в которую будет занесен ответ пользователя. Бот может сохранить любой ответ клиента в переменную.

  • Варианты ответов - Укажите варианты ответов для которых будет проложена цепочка к следующему блоку. В поле Синонимы вы можете указать через запятую все возможные варианты срабатывания ответа. Параметр Отображать как кнопку позволяет вывести вариант ответа в текстовых чат-ботов в виде кнопки

  • Глобальный вариант ответа позволяет обрабатывать данный вариант ответа на всем сценарии.

Screenshot

Блок “Сообщение”

В сценариях для звонков вместо поля Сообщение используйте поле SSML для более тонкой настройки синтеза речи

# Создание блока “Условие”

Блок Условие позволяет вам направить бота на определенный экран в зависимости от выполнения определенных условий.

Screenshot

Для создания нового блока условия - выберите тип блока из списка и выберите место для размещения блока в схеме сценария.

  • Описание - подробное описание блока

  • Начало диалога - установите параметр для начального блока сценария. Если параметр установлен, то группа начнет работать именно с этого блока сообщений

  • Конец диалога - установите параметр если диалог должен завершится на данном блоке сценария

  • Условия - выберите заранее созданную переменную из списка, выберите вид сравнения и значение переменной.

Screenshot

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

Условия

Если выполнено первое сверху условие, то бот будет переходить по ветке этого условия и игнорировать все условия ниже.

Если первое сверху выражение не выполняется, будет проверяться второе выражение. И так до тех пор, пока не будет выполнено одно из них. Когда одно из выражений будет выполнено, все выражения ниже него будут проигнорированы.

Каждое условие имеет выход из блока, который может быть соединен с разными блоками. Следовательно, если каждое выражение в блоке Условия связано с отдельным экраном, то количество веток от блока будет равно количеству добавленных условий

# Создание блока “Запрос”

Блок “Запрос” используется для создания запроса к внешнему API для выполнения действий. Данный блок позволяет боту обмениваться данными со сторонними системами и сервисами, а также сохранять полученные данные в переменные.

Для создания нового блока запроса - выберите тип блока из списка и выберите место для размещения блока в схеме сценария.

Screenshot

  • Описание - подробное описание блока

  • URL адреса запроса - укажите URL внешнего api для получения результата. По указанному URL бот будет получать либо отправлять данные.

  • Начало диалога - установите параметр для начального блока сценария. Если параметр установлен, то группа начнет работать именно с этого блока сообщений

  • Конец диалога - установите параметр если диалог должен завершится на данном блоке сценария

  • Теги - укажите метки которые будут срабатывать при достижении данного блока. В истории диалогов существует аналитика по меткам диалога

  • Занести результат в переменную - укажите название переменной в которую будет занесен ответ внешнего API

Screenshot

Вы можете добавлять переменные в URL запроса. Формат может быть разным, например:

  • https://ext-api.com?query=${var}
  • https://${var}/controller Здесь varname — имя переменной.

Фигурные скобки необходимы при вставке переменных в адрес. Более подробно можно найти в разделе Работа с переменными

Блок Запрос автоматически создает два варианта ответа:

  • Запрос выполнен - выполняется при успешном ответе внешнего API если ответ на запрос сервер вернул код ответа от 200 до 299 включительно
  • Запрос не выполнен - выполняется при недоступности или ошибки внешнего API

# Создание блока “Скрипт”

Блок “Скрипт” используется для обработки расширенной логики в виде вставки Javascript кода

Вы можете использовать любые операторы и функции JavaScript при написании условий. Также вы можете использовать функции библиотек Axios, Moment.js или Underscore

Screenshot

Для создания нового блока запроса - выберите тип блока из списка и выберите место для размещения блока в схеме сценария.

Screenshot

  • Описание - подробное описание блока

  • Скрипт - Javascript код который будет выполнен при переходе в данный блок Для возврата значения используется метод: dialog.response('text'), где text - возвращаемое значение.

# Пример использования для получения и обработки результата с внешнего API:

let url = new URL('{{API_URL}}/controller/search-goods');
url.searchParams.set('request', '{{searchGoodQuery}}'); 
url.searchParams.set('apiToken', '{{API_TOKEN}}'); 

// Отправка запроса на поиск товаров
axios.get(url.href)
  .then(function (response) {
    if (response.data.response && response.data.response.length){
      dialog.response(JSON.stringify(response.data.response));  
    } else {
       dialog.response('not-found');  
    }
  })
  .catch(function(error){
    dialog.response('error')  
  })
  • Начало диалога - установите параметр для начального блока сценария. Если параметр установлен, то группа начнет работать именно с этого блока сообщений

  • Конец диалога - установите параметр если диалог должен завершится на данном блоке сценария

  • Занести результат в переменную - укажите название переменной в которую будет занесен ответ скрипта

  • Варианты ответов - Укажите варианты ответов для которых будет проложена цепочка к следующему блоку при возвращения результата выполнения скрипта.

# Работа с переменными

Редактор диалогов позволяет работать с переменными в пределах сценария. Бот может сохранить любой ответ клиента в переменную. Заносить результат в переменную можно из следующих блоков.

  • Сообщение - при ответе клиента на сообщение есть возможность занести ответ в переменную. Для этого используется поле “Занести результат в переменную”

  • Запрос - при ответе внешнего API можно занести результат ответа в переменную

  • Скрипт - при выполнения скрипта можно занести результат его выполнения

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

  • В блоке “Сообщение”

Screenshot

  • В блоке “Запрос”

Screenshot

  • В блоке “Скрипт”

Screenshot

# Проектирование сценария

Создайте новый блок “Сообщение” Здесь мы можем сразу перечислить варианты ответа на приветствие. Добавим несколько вариантов ответов в блоке В результате блок будет выглядеть следующим образом: Screenshot Создадим сообщения на эти варианты ответов: Для создания связи необходимо протянуть связь с варианта ответа к следующему блоку:

Screenshot Для удаления секции выберите секцию и нажмите “Удалить” Screenshot

Для сохранения диалога нажмите в левом меню “Сохранить”