Skip to content
/ alice Public

Golang-пакет для создания навыков Яндекс.Алисы

License

Notifications You must be signed in to change notification settings

azzzak/alice

Repository files navigation

alice GoDoc Go Report Card

Библиотека для создания навыков, расширяющих функциональность голосового помощника Алиса. Упрощает разработку навыков, оставляя возможность тонкой настройки. Преимущества библиотеки:

  • поддержка связки аккаунтов
  • объединение методов в цепочки при конструировании ответа
  • вспомогательные методы для оживления диалога
  • автоответ на служебные 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

About

Golang-пакет для создания навыков Яндекс.Алисы

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages