Создание бота
На этом этапе мы создадим бота, который будет реагировать на простые фразы клиента. На сообщения Привет
и Пока
бот будет отвечать Привет привет
и Пока пока
. Кроме того, предусмотрим действие бота в ответ на другие сообщения клиента.
Создание и настройка проекта
Начнем создание простого бота с того, что авторизуемся на платформе и создадим новый проект.
Проект — это сценарий бота, подключенный к нескольким каналам. Сценарий — это бизнес-логика, которую выполняет бот.
После авторизации вы попадете на главную страницу JAICP. Нажмите на кнопку + Создать проект.
Вам будет предложено четыре способа создания проекта. Выберите способ Использовать шаблон.
Для настройки проекта заполните ключевые поля:
- Название проекта — имя проекта;
- Язык NLU — язык, который будет понимать бот;
- Шаблон — по умолчанию проект для NLU. В шаблоне содержится сценарий простого бота, работа которого будет рассмотрена в этом туториале.
- Разместить во внешнем Git-репозитории — оставьте эту опцию неактивной, чтобы проект сох ранился локально в JAICP.
Нажмите Создать проект.
Алгоритм создания
-
После создания проекта автоматически откроется его страница. Если вы находитесь на другой странице, вы можете открыть проект следующими способами:
- выбрав его из выпадающего списка на верхней панели;
- перейдя на главную страницу JAICP и выбрав его в секции Мои проекты.
- Нажмите Редактор → Код на панели управления.
Здесь находится сценарий бота из шаблона. Обратите внимание на директорию проекта, она содержит:
- Файл
chatbot.yaml
содержит дескриптор проекта и лежит в корневой папке проекта. - Папка
src
, в которой лежит файл с основным сценарием работы ботаmain.sc
. Также в этой папке могут лежать файлы с дополнительными сценариями, словари в формате.csv
и скрипты в формате.js
. - Папка
test
содержит тесты в формате.xml
для проверки сценария бота.
Для добавления папки или файла выберите директорию, затем нажмите правой кнопкой мыши в боксе справа от панели управления. Или воспользуйтесь иконками, которые расположены над областью с файлами.
В правой части экрана — область редактирования файла.
- В файле
chatbot.yaml
указаны параметры конфигурации проекта:
# Название проекта
name: echo-bot
# Точка входа
entryPoint:
- main.sc
# Параметры NLU:
botEngine: v2 # Версия диалогового движка
language: ru # Язык бота
nlp:
intentNoMatchThresholds:
phrases: 0.2
patterns: 0.2
- В папке
src
находится файлmain.sc
, в котором хранится сценарий работы бота:
require: slotfilling/slotFilling.sc
module = sys.zb-common
theme: /
state: Start
q!: $regex</start>
a: Начнём.
state: Hello
intent!: /привет
a: Привет привет
state: Bye
intent!: /пока
a: Пока пока
state: NoMatch
event!: noMatch
a: Я не понял. Вы сказали: {{$request.query}}
В начале сценария под тегом require
подключаем дополнительный модуль sys.zb-common
и slotFilling
. В рассматриваемом примере они не используются, но являются частью шаблонного сценария.
Сценарий описывает переходы бота из одного состояния state
в другое в зависимости от полученного ответа клиента.
Далее рассмотрим ключевые единицы NLU-ядра — интенты, а затем перейдем к алгоритму обработки запросов клиента.