Download the PHP package alisa/alisa without Composer
On this page you can find all versions of the php package alisa/alisa. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package alisa
Alisa
Библиотека для разработки навыков голосового помощника Яндекс Алиса (Диалоги).
Установка
Примеры
Пример навыка, который повторяет все что скажет пользователь.
Документация
События
С помощью событий можно удобно отлавливать и обрабатывать входящие запросы от Диалогов.
on()
Это самый базовый и универсальный способ отлова событий, на нем строятся все методы событий, такие как onStart
, onCommand
и другие.
Событие можно отловить разным способом:
on('request.command')
- ловим все события где есть ключrequest.command
;on(['request.command' => 'привет'])
- ловим события гдекоманда === привет
;on(['request.command' => '/прив/iu'])
- regex, ловим события где может бытьпривет
,приветствую
,привееет
и т.п.;on('request.command' => 'привет {name}'])
- ловим событие где в комманде естьпривет вася
или любое другое слово вместовася
.on('request.command' => 'привет {name?}'])
- работает как пример выше, но в данном случае мы поймаем какпривет вася
, так и простопривет
, потому что{name?}
- это опциональное слово.on(fn (Context $context) => ...)
- если результат функцииtrue
- есть мэтч, еслиfalse
- мэтча нет соответсвенно, это самый гибкий вариант отлова если нужно что-то нестандартное;
Примеры использования ниже:
В примере ниже мы обработаем событие если это request.command
ИЛИ session.new
.
В примере ниже, в функцию обработчик {name}
мы принимаем вторым параметром.
Мы можем добавить {user}
{time?}
столько, сколько нам нужно, но главное, опциональное слово всегда должно быть после обязательного.
/ban {user} {time?}
- OK;/ban {user?} {time?}
- OK;/ban {user?} {time}
- НЕ ОК;
Как работает пример ниже:
- Если сообщение
/ban vasya 30
- поймает$name = vasya
,$time = 30
. - Если сообщение
/ban vasya 13 37
- поймает$name = vasya
,$time = 13 37
.
Вы также можете ловить слова с помощью regex:
А еще, вы можете комбинировать разные варианты в одном событии.
Каждое перечисление раценивается как ИЛИ.
Так тоже можно: