Как создать своего чат-бота для Дуси — Ассистент Дуся

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


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

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

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

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


Источник: blog.dusi.mobi

Комментарии: