Иногда вам нужны различные ответы, из которых выбирает созданный вами бот. И чтобы убедиться, что бот помнит, что было сказано во время разговора, сценарий — это способ сделать это.
Скрипты могут быть включены в потоки. Давайте создадим очень простой поток, содержащий скрипт.
Поток, который мы создадим, предложит случайный кофейный напиток, например:
Пользователь: Предложить напиток!
Бот: Ну, ты ставишь меня на место здесь. Я бы пошел на плоский белый!
Для этого нам нужно создать поток, который содержит следующие элементы:
- Триггер
- Сценарий, который выбирает кофейный напиток
- Переменная потока для хранения значения, выбранного сценарием
- Выход, который будет отображать значение переменной
Конечный поток будет выглядеть так:
Давайте начнем.
Создать новый поток и заполнить триггер
Создайте новый поток и назовите его User wants bot to suggest a coffee
. Затем выберите триггер класса и добавьте следующие примеры входных данных:
Джава
xxxxxxxxxx
1
Recommend a beverage
2
Suggest a drink
3
Which coffee would do you advise?
4
What coffee should I get?
5
Can you recommend me a coffee
6
Recommend a coffee.
7
Which brew should I drink?
8
Tell me, what coffee should I buy?
9
Could you decide which coffee I should get
10
I want a recommendation for a coffee
11
Can you suggest me a drink?
12
Which coffee should I get
13
Which coffee would you recommend me?
Дайте триггеру имя как Suggest a drink!
. (Визуальные инструкции о том, как создать поток и заполнить триггер, можно найти здесь .)
Добавить узел скрипта
Если в потоке ничего больше не отмечено, щелкните значок «Сценарий» на ленте. Это добавит пустой узел скрипта в ваш поток. Дайте ему имя, которое объясняет, что делает сценарий Pick a drink
.
Поставьте узел скрипта на место
В настоящее время наш узел скрипта болтается и не связан ни с одним из других элементов в потоке. Однако мы хотим, чтобы наш скрипт выполнялся сразу после запуска потока и непосредственно перед тем, как вывод будет показан пользователю. Для этого нам необходимо выполнить следующие шаги:
- Выберите узел скрипта
- На ленте выберите «Установить начальный узел». Это указывает на триггер прямо на узел скрипта.
- Нарисуйте линию от узла скрипта до узла вывода
Заполните узел сценария
Мы добавили узел скрипта, но он все еще пуст. Теперь нам нужно добавить скрипт, который выбирает случайный кофейный напиток, чтобы предложить его пользователю. Выберите узел сценария в своем потоке, откройте вкладку «Действие сценария» в правой части экрана и вставьте следующий код в узел сценария:
Джава
xxxxxxxxxx
1
// define a list with coffee drinks to suggest
2
def coffeesToSuggest = ['cappuccino','flat white','macchiato']
3
4
// randomly choose a number 0, 1 or 2
5
def number = new Random().nextInt(3)
6
7
// use the number to pick a coffee from the list
8
coffeeSuggestion = coffeesToSuggest[number]
Скрипты в Teneo написаны на Groovy . Вы можете найти более подробную информацию о Groovy и скриптах в Teneo в разделе « Сценарии ».
Как вы можете видеть в узле сценария выше, первым двум переменным ( coffeesToSuggest и number ) предшествует def, что означает, что они являются локальными переменными , которые доступны только внутри узла сценария. Они будут забыты сразу после выполнения скрипта, в этом случае это произойдет, когда Teneo перейдет к выходному узлу. Однако мы хотим, чтобы результат сценария (кофе, выбранный узлом сценария) был доступен вне сценария, чтобы мы могли использовать его в нашем выходном тексте. Поэтому нам нужно будет сохранить значение в переменной потока, которую мы можем использовать позже.
В последней строке сценария предполагается, что существует переменная coffeeSuggestion, в которой можно сохранить выбранный кофейный напиток. Это определяется тем фактом, что coffeeSuggestion не определяется, если ему предшествует def . Однако у нас пока нет переменной потока, называемой coffeeSuggestion, поэтому давайте добавим ее.
Добавить переменную потока
Чтобы добавить переменную потока, выполните следующие действия:
- Нажмите на вкладку «ПОТОК» в верхнем левом углу вашего потока.
- Выберите «Переменные» в фиолетовой панели слева
- Нажмите кнопку «Добавить» в правом верхнем углу окна.
- Назовите переменную
coffeeSuggestion
, заменив слово Variable1 - Мы хотим инициализировать эту переменную как пустую строку, поэтому в текстовое поле ниже добавьте
""
.
Вы можете использовать стрелку назад в верхней части, чтобы вернуться к основному виду потока.
Добавить ответы на вывод
Пользователь полон ожидания, поэтому давайте предоставим ответ. Добавьте следующие тексты ответов в выходной узел:
Well, you're putting me on the spot here. I'd go for a ${coffeeSuggestion}!
Now that you're asking, I'd suggest a ${coffeeSuggestion}!
Easy choice, a ${coffeeSuggestion} of course!
Как вы можете видеть, мы использовали переменную потока coffeeSuggestion в наших ответах. Этот заполнитель будет заменен значением, выбранным в узле сценария. Наконец, дайте выходному узлу имя какI'd go for a flat white!
Готово!
Это оно! Сохраните ваш поток и попробуйте.
Дополнительный вызов для смелых!
Если вы готовы к дополнительным задачам: часто есть несколько способов создать поток. В этом случае, например, вы также можете смоделировать этот поток с 3 отдельными выходными узлами (для каждого предложенного типа кофе). Можете ли вы выяснить, каков будет дизайн потока при использовании этого подхода? Подсказка: переходы также могут содержать условия сценария!