Библиотека для создания навыков, расширяющих функциональность голосового помощника Алиса. Упрощает разработку навыков, оставляя возможность тонкой настройки. Преимущества библиотеки:
- поддержка связки аккаунтов
- объединение методов в цепочки при конструировании ответа
- вспомогательные методы для оживления диалога
- автоответ на служебные ping-пакеты
go get -u github.com/azzzak/alice
Простейший навык — говорит "привет", после чего повторяет каждую реплику пользователя.
package main
import (
"net/http"
"github.com/azzzak/alice"
)
func main() {
updates := alice.ListenForWebhook("/hook")
go http.ListenAndServe(":3000", nil)
updates.Loop(func(k alice.Kit) *alice.Response {
req, resp := k.Init()
if req.IsNewSession() {
return resp.Text("привет")
}
return resp.Text(req.OriginalUtterance())
})
}
Детальный разбор примера смотрите в руководстве.
Позволяют конструировать ответ со всеми возможностями, которые предлагает Алиса: кнопки, картинки и звуки.
Пример. Ответ с текстом и TTS с паузой и звуком из библиотеки Алисы:
resp.Text("творог").
TTS("твор+ог").
Pause(3).
Sound(sounds.Harp1)
Пример. Ответ со случайно выбранной строкой и двумя кнопками:
resp.RandomText("привет", "алоха").
Button("хай", "", false).
Button("отстань", "", false)
Пример. При любом num ответ остается согласованным:
resp.Text(fmt.Sprintf("%d %s пива %s на столе", num,
alice.Plural(num, "бутылка", "бутылки", "бутылок"),
alice.Plural(num, "стояла", "стояли", "стояло")).
Sound(sounds.ThingsGlass1)
Присылайте свои навыки на azzzak@yandex.ru