чат ботНаверное, всем иногда хочется поговорить со своим голосовым помощником о чем-нибудь не связанным с его функциями. Спросить «Как дела» или узнать о настроении своего ассистента. Завязать небольшой диалог с роботом — всегда приятно и весело особенно в компании друзей, кто в первый раз видит такое.

Чат-боты уже есть в каталоге скриптов Дуси, но создать что-то уникальное и по-настоящему свое — это очень интересное и захватывающе.

В этой статье мы покажем, как с помощью скриптов и нашей платформы 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 тот самы ответ от нашего бота, который прописан в нашем скрипте.

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

Создаем скрипт для Дуси

Скрипт будет работать так.

  1. Будет реагировать на фразу по шаблону $Text
  2. В первом действии сбросит все промежуточные переменные, необходимые для работы скрипта
  3. Во втором действии отправит HTTP запрос с параметром $Text нашему боту на Zenbot и получит ответ
  4. Если в ответе есть поле output, то произнесет его
  5. Если в ответе поле modal имеет значение true (то есть бот вступает с нами в диалог), то запускается диалог
  6. Если был диалог, то перезапускает скрипт с теми же параметрами, чтобы снова отправить запрос нашему боту на Zenbot

Как видите, небольшая сложность только в алгоритме работы в диалоговом режиме. Но она небольшая. Сам скрипт можно скачать здесь. А затем импортировать в ваши скрипты в Дусе.

И не забудьте поменять ключ доступа в действии HTTP запрос на свой!

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

pnLAYuXazX

Теперь командуем Дусе «Привет» и убеждаемся, что отвечает наш бот. Все работает!

Улучшаем нашего бота

Теперь можно все время улучшать и улучшать нашего бота, а сам скрипт в Дусе трогать не придется.

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

<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. Все изменения и идеи обсуждаются в ходе дискуссии над пул реквестом, а затем ваши изменения попадают в основную ветку бота Дуси.

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

Не упустите свой шанс стать соавтором Дуси уже сегодня!

11 thoughts on “Как создать своего чат-бота для Дуси

  1. ну чтож… окей, это ОХРЕНЕТЬ КАК КРУТО! пошерю пожалуй везде!!! продолжайте в том же духе ребят! всех благ вам, успехов и may the Force serve you well!

  2. Отлично, побольше бы таких статей.
    Теперь буду ждать пока появится возможность писать скрипты для дуси на пк, а не с телефона(когда-то это упоминалось)

    1. Умеет все что захотите и сможете запрограммировать. Можно например вообще своего голосового ассистента сделать.

  3. При попытке выгрузить первый скрипт, тестовый, выдает ошибку, что этот скрипт она загрузить не может. Все сделано, но вот нет и все. И ошибка глупая какая-то, мол, «не получилось, не знаете, почему? пишите нам!», и написать я не могу, тк не член группы в гугле. И как дальше? Ребят, помогите пожалуйста, пока вдохновилась на всю эту писанину)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *