Наверное, всем иногда хочется поговорить со своим голосовым помощником о чем-нибудь не связанным с его функциями. Спросить «Как дела» или узнать о настроении своего ассистента. Завязать небольшой диалог с роботом — всегда приятно и весело особенно в компании друзей, кто в первый раз видит такое.
Чат-боты уже есть в каталоге скриптов Дуси, но создать что-то уникальное и по-настоящему свое — это очень интересное и захватывающе.
В этой статье мы покажем, как с помощью скриптов и нашей платформы Zenbot любой пользователь сможет создать даже очень сложного чат-бота, который умеет не только болтать, но и делать много полезного! Поехали!
Что такое Zenbot
Совсем недавно мы писали о том, что создали бесплатную платформу Zenbot, на которой любой пользователь может создавать ботов для различных мессенджеров типа Telegram, Facebook, Skype и так далее.
Но Zenbot можно использовать и для создания чат-ботов для любой программы или сервиса. Такой программой может быть и сама Дуся!
Как все будет работать
Мы создадим бота на Zenbot и специальный скрипт для Дуси, который будет отправлять нашему боту текст команды и затем озвучивать ответ от бота. А если бот захочет завязать с нами диалог — то сразу же включит микрофон для следующей фразы.
Как видите, все просто! Начнем!
Создаем бота
Идем на www.zenbot.org и создаем нового бота. Это несложно — нужно только войти с помощью своего аккаунта на Github и нажать кнопку «Create a new bot«. Далее придумать имя и все — новый бот создан!
Только он еще ничего не умеет. Поэтому добавим ему мозгов.
Добавляем мозги нашему боту
Мозги в Zenbot — это специальный скрипт называемый Botscript. Мы создали обширную документацию на английском, где про это подробно написано. Но не спешите прямо сейчас ее изучать — в этой статье мы расскажем и покажем все самое важное.
Botscript — это обычный текстовый файл. Просто создайте новый текстовый файл на вашем ПК и напишите туда примерно следующее
<context> <input pattern="привет"> <output value="Приветик"/> </input> </context>
Как видите, это простой XML файл. Сохраните его с именем типа mybot.xml и теперь его можно загрузить в вашего бота на Zenbot. На вкладке General settings выберите для загрузки ваш файл и нажмите кнопку Upload. Через секунду ваш бот сможет отвечать на фразу «Привет».
Чтобы это проверить, нажмите кнопку Test this bot и вбейте фразу «привет». В ответ вы увидите что-то типа
{
"context": null,
"input": "_004374829043",
"output": "Приветик",
"lang": "ru",
"score": 1,
"modal": false,
"samples": [],
"vars": [] }
Как видим, в поле output тот самы ответ от нашего бота, который прописан в нашем скрипте.
Отлично! Теперь можем создать скрипт для Дуси, который будет отправлять нашему боту все фразы, не относящиеся к функциям, и озвучивать ответ.
Создаем скрипт для Дуси
Скрипт будет работать так.
- Будет реагировать на фразу по шаблону $Text
- В первом действии сбросит все промежуточные переменные, необходимые для работы скрипта
- Во втором действии отправит HTTP запрос с параметром $Text нашему боту на Zenbot и получит ответ
- Если в ответе есть поле output, то произнесет его
- Если в ответе поле modal имеет значение true (то есть бот вступает с нами в диалог), то запускается диалог
- Если был диалог, то перезапускает скрипт с теми же параметрами, чтобы снова отправить запрос нашему боту на Zenbot
Как видите, небольшая сложность только в алгоритме работы в диалоговом режиме. Но она небольшая. Сам скрипт можно скачать здесь. А затем импортировать в ваши скрипты в Дусе.
И не забудьте поменять ключ доступа в действии HTTP запрос на свой!
Это длинная последовательность букв и цифр, которая соответствует вашему боту на Zenbot. увидеть ее можно в адресной строке в браузере, когда вы находитесь на странице вашего бота.
Теперь командуем Дусе «Привет» и убеждаемся, что отвечает наш бот. Все работает!
Улучшаем нашего бота
Теперь можно все время улучшать и улучшать нашего бота, а сам скрипт в Дусе трогать не придется.
Давайте добавим какой-нибудь несложный диалог, чтобы проверить, что это работает.
<context> <input pattern="привет"> <output value="Приветик"/> </input> <input pattern="* как * дела *"> <output value="Отлично! А твои?"/> <context modal="true"> <input pattern="* (хорош*|отличн*|прекрасн*) *"> <output> <item value="Это просто замечательно!"/> <item value="Здорово!"/> </output> </input> <input pattern="* (плох*|не очень|так себе) *"> <output value="Не вешай нос!"/> </input> </context> </input> </context>
Как видите, мы добавили диалог на фразу типа «Как твои дела?» Дуся в после этой фразы будет говорить «Отлично! А твои?» и ждать ответа. Когда вы скажете «Хорошо» или «У меня все отлично», то Дуся ответит или «Это просто замечательно» или «Здорово». А если вы ответите «Так себе у меня дела», то Дуся ответит «Не вешай нос».
Ничего сложного, но этот пример показывает, как вы можете и далее наращивать функционал своего чат-бота, добавляя диалоги и новые фразы. Помните, что полный синтаксис шаблонов идентичен шаблонам в скриптах Дуси и полностью описан в документации.
Официальный бот Дуси
Конечно же вы знаете, что у Дуси есть свой собственный чат-бот, который работает всякий раз, когда вы спрашиваете о ее делах, как она себя чувствует, благодарите ее и так далее. Конечно же, он работает на платформе Zenbot.
Конечно, он не очень развит, так как Дуся — это функциональный ассистент, а не болталка. Но теперь мы выкладываем его исходный код на Github и все, кто хочет добавить эмоции официальному боту Дуси, может просто сделать форк от этого репозитория, изменить бота и потом предложить свои изменения через Pull Request. Все изменения и идеи обсуждаются в ходе дискуссии над пул реквестом, а затем ваши изменения попадают в основную ветку бота Дуси.
И тысячи пользователей Дуси будут слышать именно ваши ответы, когда будут задавать каверзные вопросы, не относящиеся к функциям Дуси.
Не упустите свой шанс стать соавтором Дуси уже сегодня!
ну чтож… окей, это ОХРЕНЕТЬ КАК КРУТО! пошерю пожалуй везде!!! продолжайте в том же духе ребят! всех благ вам, успехов и may the Force serve you well!
НравитсяНравится
Отлично, побольше бы таких статей.
Теперь буду ждать пока появится возможность писать скрипты для дуси на пк, а не с телефона(когда-то это упоминалось)
НравитсяНравится
А что мешает поставить эмуль на комп и писать?
НравитсяНравится
Статья замечательная. Но при попытке выгрузить текстовый
НравитсяНравится
при попытке загрузить файл получаю ошибку : Oops, some error occured
Wrong content type text/plain
Don’t know why? Just post a question with attached Botscript file..
НравитсяНравится
А что-нибудь кроме болталки эта платформа умеет что-либо ещё?
НравитсяНравится
Умеет все что захотите и сможете запрограммировать. Можно например вообще своего голосового ассистента сделать.
НравитсяНравится
как это можно сделать с помощью xml не пойму
НравитсяНравится
Я правильно понял? В скрипте Дуси в HTTP запросе пишем https://zenbot.org/api/КОД ДОСТУПА user= …….
У меня скрипт не срабатывает. Кто знает почему?
НравитсяНравится
такой вопрос.. есть возможность на англ язык переключить дусю как-нибудь? (именно tts и распознование)
НравитсяНравится
При попытке выгрузить первый скрипт, тестовый, выдает ошибку, что этот скрипт она загрузить не может. Все сделано, но вот нет и все. И ошибка глупая какая-то, мол, «не получилось, не знаете, почему? пишите нам!», и написать я не могу, тк не член группы в гугле. И как дальше? Ребят, помогите пожалуйста, пока вдохновилась на всю эту писанину)
НравитсяНравится
Помогите найти Скрипт что бы Дуся читала Рэп
НравитсяНравится