Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 147 Следующий »




Оглавление

1. Сценарий

            Создание сценария
            Окно редактирования сценария
            Работа с блоками
            Настройки сценария
            Работа с переменными

2. Элементы

            Стрелка (Ветка)
            Стартовый блок
            Блок Вопрос
            Блок Пауза
            Блок Информация
            Блок Условие
            Блок Случайный выбор
            Блок Эмоции
            Блок Результат
            Блок Запрос к серверу



1. Сценарий 


 Создание сценария

[ Вверх ]

При создании сценария, очень важно уделить внимание полю "Тип аудио", т.к. впоследствии от него, будет зависеть, возможность добавления аудиозаписи во фразы повтора и работоспособность секции "Озвучка блока".

















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


Тип синтез

Система будет сама озвучивать написанный текст

Тип аудиозапись

Система будет использовать добавленные аудиозаписи



В таких блоках как Вопрос, Пауза, Запрос к серверу и Информация, вместо текста, который должен произноситься системой, будут использоваться добавленные аудиозаписи из секции "Озвучка блоков"



Окно редактирования сценария

[ Вверх ]

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



Элементы управления:

НазваниеСкриншотОписание
Блоки действий

Позволяют задать системе сценарии обзвона

Стрелка

Позволяет задать системе направление сценария
Рука

Даёт возможность перемещаться по рабочему пространству
Курсор

Позволяет работать с объектом или выделять их
Карта

Открывает окно с рабочим пространством для быстрого перемещения
Масштаб

Изменяет масштаб рабочего пространства

Отменить

Шаг назад
Вернуть

Шаг вперед
Сохранить

Сохраняет скрипт
Удалить

Удаляет скрипт
Удалить медиа

Удаляет все записанные и загруженные медиафайлы
Показать последний

Перейти к последнему добавленному блоку
Очистить

Возвращает в исходное состояние
Чат

Позволяет проверить скрипт в форме переписки
Микрофон

Позволяет проверить скрипт в форме живого общения


Горячие клавиши:

РезультатКлавиши
Сохранение сценария

Ctrl + S

Отмена последнего совершенного действия
Ctrl + Z
Снятие выделенияEsc
Удаление выделенного элементаDel



Работа с блоками

[ Вверх ]

Настройка каждого блока/стрелки на рабочем пространстве производится в правой части экрана редактора. Для того чтобы открыть свойства, нужно кликнуть на блок/стрелку левой клавишей мыши. Для быстрого создания часто используемых блоков предусмотрена функция, которая позволяет создать блок в один клик. Для этого, у выделенного блока, внизу располагаются кнопки с блоками типа Вопрос, Информация и Случайный выбор. Пользователю лишь остается потянуть одну из кнопок, чтобы расположить блок на рабочем пространстве.




Настройки сценария

[ Вверх ]

Для случаев, когда система не сможет распознать речь, либо у блоков будут отсутствовать стрелки, то для сценария возможно настроить переадресацию на специалиста




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

[ Вверх ]

Создание и использование переменной происходит посредством простого объявления в поле. 

Например, мы создадим переменную, в которую будем записывать текущую дату и назовем её ТекущийГод

Как видно на скриншоте, мы просто написали её название в поле. После того, как система достигнет данного блока, то она автоматически создаст переменную с таким названием, в которую запишет данные, которые нам необходимы.

Однако для того чтобы использовать созданную переменную, нужно объявлять её в фигурных скобках.

Для блока "Условие", переменная объявляется без фигурных скобок


Как видно на скриншоте, данный блок будет включать в условие значение, которое находится в переменной, что мы объявили ранее. 



2. Элементы


Стрелка (Ветка)

[ Вверх ]

Описание:

Показывает направление сценария и определяет условия перехода от одного блока к другому. У таких блоков как Вопрос, Условие, Запрос к серверу и Эмоции, стрелка имеет свойства отличные от всех остальных блоков.


Описание

Скриншот

1. Заголовок стрелки

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



Стартовый блок

[ Вверх ]

Описание:

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


ОписаниеСкриншот

1. Название скрипта

2. Создание переменных, которые будут использоваться в рамках сценария

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



Блок Вопрос

[ Вверх ]

Описание:

Данный блок предназначен для опроса пользователя.


Условия выхода:

  • По истечении времени сеанса распознавания
  • По ключевому слову


ОписаниеСкриншот

1. Заголовок блока

2. Текст вопроса, который будет произнесен системой

3. Фразы, которые будут озвучены системой, в случае, если не удастся получить ответ от пользователя*

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


Общее время длительности распознавания речи:
  • Короткая – 5 секунд
  • Нормальная – 7 секунд
  • Длинная – 10 секунд


5. Выбор сервиса для распознавания речи
  • Система 1 – сервис распознавания Google
  • Система 2 – сервис распознавания Yandex


6. При выставленной галке, система будет распознавать эмоциональную окраску пользователя и записывать её в переменную {детектор.эмоции}***

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

8. При выставленной галке, система не будет пытаться найти ответ на поставленный вопрос через другие блоки типа «Вопрос», которые находятся на той же ветке


* Если вариантов больше чем одно, то фразы будут произноситься в случайном порядке
** Подробнее о времени длительности распознавания можно посмотреть здесь
*** Подробнее о типах эмоции можно почитать здесь

Свойства:

ОписаниеСкриншот

1. Заголовок стрелки

2. Создание переменной, в которую система запишет ответ от пользователя

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

4. Наименование кнопки ответа*

5. Определяет порядок отображения кнопки*

Так, если у нас кнопка у одной из 4 веток развития имеет порядковый номер 3, то эта кнопка будет отображена в списке предпоследней

* Данный пункт используется только для чатов


Типы:

ТипОписаниеСкриншот
Ветка по умолчанию

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


1. Наименование кнопки ответа (см. описание в свойствах стрелки)

2. Определяет порядок отображения кнопки (см. описание в свойствах стрелки)

Ключевые слова

Переход по ветке будет произведен, если ответ пользователя совпадет с ключевым словом.


1. Слова или выражения, которые система ожидает от пользователя для перехода по ветке

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

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

В системе предусмотрена система весов, когда явный ответ "да" от человека, не всегда может означать признание, например: "Да, я вас отчетливо слышу, я не пойду на обед". В данном ответе мы видим слово "да" и предлог "не", который по смыслу является приоритетней и в общей концепции ответа является отрицанием: "я не пойду на обед". Таким образом, при расстановке ключевых слов и выражений, будет более явно добавить вес к отрицательным словам: "+++не" и "+нет". Каждый знак плюс имеет единицу веса. Где единицей является слово или выражение. Соответственно, в примере к слову "нет" + одно слово, а к предлогу "не" + 3 слова. При количественном перевесе система принятия решения выберет этот маршрут.

В обратной ситуации мы можем наоборот, понижать вес, используя знак минус:  "-да"


2. Наименование кнопки ответа (см. описание в свойствах стрелки)

3. Определяет порядок отображения кнопки (см. описание в свойствах стрелки)

Дата

Переход по ветке будет произведен, если озвученная пользователем дата совпадет с указанной датой в свойстве стрелки.


1. Условие проверки значения

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

2. Ответ, который система ожидает от пользователя

Система знает и умеет работать с датами и относительными датами. Пример ответов пользователя, которые система сможет распознать:

  • 23 января
  • Завтра
  • Послезавтра
  • Вчера
  • Позавчера
  • Через n дней
  • n дней назад
  • 23 января 1996 года

Если в дате явно не указан год, берется текущий

Так же данный тип пытается найти время. Возможные варианты:

  • в 14:00
  • Через n минут
  • через n часов

Если пользователь явно не указывает время, берется текущее

3. Наименование кнопки ответа (см. описание в свойствах стрелки)

4. Определяет порядок отображения кнопки (см. описание в свойствах стрелки)

Число

Переход по ветке будет произведен, если озвученное пользователем число совпадет с указанным числом в свойстве стрелки.


1. Условие проверки значения

Например, при проведения соц. опроса, система может задать вопрос: "Скажите, сколько вам лет?" и благодаря условиям можно задать различные вопросы разным возрастным группам. 

Сравнение происходит по правилам:

{РАСПОЗНАННОЕ} {ОПЕРАТОР} {СРАВНИВАЕМОЕ}

Где  

  • {РАСПОЗНАННОЕ} - число, которое распознано в речи пользователя в момент диалога
  • {ОПЕРАТОР}  - оператор сравнения (меньше, больше, равно и т.д.)
  • {СРАВНИВАЕМОЕ} - Значение, заданное в свойствах (см. пункт №2)*


2. Ответ, который система ожидает от пользователя

3. Наименование кнопки ответа (см. описание в свойствах стрелки)

4. Определяет порядок отображения кнопки (см. описание в свойствах стрелки)


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

Большое число

Переход по ветке будет произведен, если количество озвученных символов в номере, совпадет с указанным количеством символов в свойстве стрелки.


1. Условие проверки значения

2. Маска ожидаемого ввода 

Например, для паспорта мы можем задать маску вида #### ######, где каждый символ # - это цифра

3. В случае, если система не распознала ответ или ответ от пользователя не совпадает с указанным, то система не будет предпринимать попытки повторного опроса

4. Значение, которое система будет ожидать от пользователя

В случае если человек при разговоре назовет число которое не будет подходить под маску (цифр, меньше чем ожидается), то система предложит ему произнести оставшиеся цифры

5. Наименование кнопки ответа (см. описание в свойствах стрелки)

6. Определяет порядок отображения кнопки (см. описание в свойствах стрелки)

Интеллектуальное принятие решений

Переход по ветке будет произведен, если указанное в свойствах намерение совпадет с озвученным намерением пользователя*


1. Выбор системы

2. Выбор агента

3. Намерения, которые система ожидает от пользователя.

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

5. Наименование кнопки ответа (см. описание в свойствах стрелки)

6. Определяет порядок отображения кнопки (см. описание в свойствах стрелки)


* Для работы с данным типом, нужно иметь подключение к Twin.ai и необходим обученный агент.  Подробнее об этом вы можете прочитать здесь



Блок Пауза

[ Вверх ]

Описание:

Данный блок переводит систему в режим ожидания ответа.

Условия выхода:

  • По истечении заданного времени
  • По ключевому слову


ОписаниеСкриншот

1. Заголовок блока

2. Текст, который будет произнесен системой, после того, как будет произведен переход на блок

3. Ключевые слова, которые ожидает система для того чтобы выйти из блока

4. Время, через которое будет произнесен текст из секции «Текст повтора» (см. пункт № 6)

5. Время, по истечении которого, звонок будет переведен на оператора

6. Варианты повтора, которые будут озвучены системой по истечении времени ожидания*


* Если вариантов больше чем одно, то фразы будут произноситься в случайном порядке



Блок Информация

[ Вверх ]

Описание:

Данный блок используется для произнесения сообщения пользователю.

Условия выхода:

  • После озвученного сообщения системой
  • Пропуск блока


ОписаниеСкриншот

1. Заголовок блока

2. Текст, который будет произнесен системой, после того, как будет произведен переход на блок

3. Система пропустит текущий блок, если она озвучит информационный блок, который мы выберем в данном пункте*


* Выбрать возможно только блок типа «Информация»



Блок Условие

[ Вверх ]

Описание:

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


ОписаниеСкриншот

1. Заголовок блока

Свойства:

ОписаниеСкриншот

1. Вспомогательный текст, который позволяет создателю скрипта ориентироваться в связях

2. Способ принятия решения

Типы:

ТипОписаниеСкиншот
По умолчаниюДанный тип используется для перехода по ветке, в случае, если условия во всех остальных стрелках данного блока не будут соблюдены.

Условие И / ИЛИ

Переход по ветке будет произведен, если заданное условие будет выполнено.


1. Набор условий, по которым принимается решение


  • Условие "И" требует, чтобы все указанные условия выполнялись.
  • Условие "ИЛИ" требует, чтобы выполнялось хотя бы одно указанное условие


2. Служит для установки значений переменным.

В левое поле записывается название переменной без фигурных скобок

В правое поле записывается значение, которое мы хотим присвоить переменной*


* Допускается использование переменных, которые будут заменены на их значение в момент присваивания

Операция "*"

В секции "Условия", для правого поля возможно использовать операцию "*"

Данная операция используется для определения текста по маске, где * это любое количество букв или цифр.

Например: если условие будет иметь вид имя = *на, то под условие будут попадать имена Анна, Карина, Марина и т.д.

Вес решения

Если есть две ветки которые удовлетворяют переходу, то будет выбрана та ветка, у которой количество совпавших условий больше. В случае равенства совпавших условий, приоритет будет отдан ветке с типом "Условие И", т.к. оно более строгое



Блок Случайный выбор

[ Вверх ]

Описание:

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


ОписаниеСкриншот

1. Заголовок блока

2. Описание которое пользователь может написать для себя



Блок Эмоции

[ Вверх ]

Описание:

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


ОписаниеСкриншот

1. Заголовок блока

Свойства:

ОписаниеСкриншот

1. Вспомогательный текст, который позволяет создателю скрипта ориентироваться в связях

2. Выбор эмоции, которую система будет ожидать для переход по ветке

Типы:

ТипОписание
ПозитивнаяПереход по стрелке будет происходить в случае, если переменная {детектор.эмоции} имеет значение positive
НегативнаяПереход по стрелке будет происходить в случае, если переменная {детектор.эмоции} имеет значение negative
НейтральнаяПереход по стрелке будет происходить в случае, если переменная {детектор.эмоции} имеет значение neutral



Блок Результат

[ Вверх ]

Описание:

Данный блок служит для фиксации результата разговора, а также для принудительного перевода на оператора, отправки сообщения и отправки нотификации.


ОписаниеСкриншот

1. Заголовок блока

2. Описание которое пользователь может написать для себя

3. Тип принятия решения

Типы:

ТипОписаниеСкриншот
Отправка email

1. Email адрес получателя

2. Заголовок письма

3. Текст сообщения

Отправка уведомления

1. Шаблон, который будет использован системой для отправки уведомления

2. Телефон получателя

3. Email адрес получателя

4. Способ отправки уведомления

Тестирование сообщений

Если вы планируете отправить результат разговора себе, то для этого лучше использовать отправку через email, т.к. он является бесплатным. За отправку результатов разговора через уведомления, взимается плата

Зафиксировать результат

Сохраняет данные диалога в отчет


1. Поле, в которое можно записать дату для выгрузки в отчет*

2. Поле, в которое можно записать оценку для выгрузки в отчет*

3. Поле, в которое можно записать данные для выгрузки в отчет*


* Необязательное поле

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

1. Завершение вызова

1. Звонок будет переключен на оператора

1. Использует настройки переадресации из задания на обзвон

2. Текст, который будет озвучен системой после того, как  оператор возьмёт трубку

1. План набора, который будет использован системой для переадресации звонка*

2. Номер телефона на который нужно произвести переадресацию

3. Текст, который будет озвучен системой после того, как  оператор возьмёт трубку


* План набора создается в разделе "Телефония"

1. Использует настройки переадресации из плана перевода

2. Текст, который будет озвучен системой после того, как  оператор возьмёт трубку


* План перевода создается в разделе "Телефония"

1. Запускает указанный сценарий

2. Текст, который будет озвучен системой после того, как  оператор возьмёт трубку

Перезвонить

1. Создает новое задание на обзвон для пользователя на определенное(?) время

Данное поле использует переменную типа Дата, которая объявляется в стартовом блоке



Блок Запрос к серверу

[ Вверх ]

Описание:

Данный блок используется для выполнения запроса к внешнему серверу.

Для лучшего понимания работы блока рекомендуется прочесть о синтаксисе формата JSON. Читать


ОписаниеСкриншот

1. Заголовок блока

2. Текст с просьбой ожидания, который будет произнесен системой

3. Время, через которое система будет произносить повторное сообщение (см. пункт №4)

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

5. Тип авторизации к серверу

6. Тип запроса

7. Адрес страницы с которой мы будем работать


Типы запросов:

ТипОписаниеСкриншот
GET

Используется для получения данных от сервера

Используя этот тип запроса, мы можем получить данные о заказе, товаре, пользователе и т.д.


1. Адрес страницы с которой мы будем работать

POST

Применяется для отправки данных на сервер

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


1. Адрес страницы с которой мы будем работать

2. Позволяет нам установить нужное значение для ключа


Например: Если нам нужно отправлять данные в виде тела

{
"first_name" : "Владимир"
}

то следует ключ first_name записать в левое поле, а его значение Владимир, в правое поле


Типы авторизации:

ТипОписаниеСкриншот
Отсутствует

Данный тип используется, если нам не нужна авторизация для работы со страницей


1. Тип запроса

2. Адрес страницы

Логин/Пароль

Данный тип используется, если для работы со страницей нам обязательно нужно логиниться


1. Логин

2. Пароль

3. Тип запроса

4. Адрес страницы

Заголовок

Данный тип используется, если для работы со страницей нам обязательно нужно использовать токен


1. Имя ключа

2. Определяет, какую схему авторизации использовать для работы со страницей*

Например: Если в хедере мы передаем токен в ключе Authorization в таком виде

Authorization: Bearer t490da279fd42889f56

то в поле Тип авторизации, мы пишем Authorization.

а в поле Значение Ключа, мы пишем Bearer


3. Тип запроса

4. Адрес страницы


* Подробнее о схемах можно почитать здесь

Свойства:

ОписаниеСкриншот

1. Вспомогательный текст, который позволяет создателю скрипта ориентироваться в связях

2. Тип принятия решения


Типы:

ТипОписаниеСкриншот
По умолчаниюДанный тип используется для перехода по ветке, в случае, если условия во всех остальных стрелках данного блока не будут соблюдены.

РезультатУспешно

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

Результат ответа от сервера будет сохранен в переменную result


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

2. Набор условий, по которым принимается решение

3. Создание переменной, в которую будет записано значение из ответа от сервера

Например мы получили ответ вида 

{
"first_name" : "Владимир", 
"surname" : "Владимирович",
"last_name" : "Пресняков",
"age" : "51"
}

и мы хотим сохранить из него возраст.

Для этого нам нужно записать в правое поле значение вида result.age

Где

result - тело ответа

age - ключ в теле ответа


Если же к примеру у нас ответ имеет такой вид

{
"first_name" : "Владимир", 
"surname" : "Владимирович",
"last_name" : "Пресняков",
"age" : "51"
}
"parents" : [ 
{
"description" : "Отец",
"full_name" : "Владимир Пресняков"
},
{
"description" : "Мать",
"full_name" : "Елена Преснякова"
}
]
}

и мы хотим сохранить полное имя матери, то в таком случае мы используем запись вида result.parents.full_name[1]

Где

result - тело ответа

parents - массив в котором находится нужный нам ключ

full_name[1] - второй ключ в массиве parents


* Подробнее о кодах состояния можно прочесть здесь

Не успешноПереход по ветке будет произведен, если ответ от сервера получить не удалось

















  • Нет меток