{"id":13633439,"url":"https://github.com/azzzak/alice","last_synced_at":"2025-04-27T16:32:02.971Z","repository":{"id":144203693,"uuid":"201202094","full_name":"azzzak/alice","owner":"azzzak","description":"Golang-пакет для создания навыков Яндекс.Алисы","archived":false,"fork":false,"pushed_at":"2020-07-28T07:08:48.000Z","size":43,"stargazers_count":38,"open_issues_count":1,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-05T01:22:45.246Z","etag":null,"topics":["alice-sdk","golang","yandex-alice","yandex-dialogs"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/azzzak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-08-08T07:22:07.000Z","updated_at":"2025-01-13T21:17:36.000Z","dependencies_parsed_at":"2023-06-19T05:52:00.113Z","dependency_job_id":null,"html_url":"https://github.com/azzzak/alice","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azzzak%2Falice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azzzak%2Falice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azzzak%2Falice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azzzak%2Falice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/azzzak","download_url":"https://codeload.github.com/azzzak/alice/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251171438,"owners_count":21547111,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alice-sdk","golang","yandex-alice","yandex-dialogs"],"created_at":"2024-08-01T23:00:43.198Z","updated_at":"2025-04-27T16:32:02.692Z","avatar_url":"https://github.com/azzzak.png","language":"Go","funding_links":[],"categories":["Разработка"],"sub_categories":["SDK"],"readme":"# alice [![GoDoc](https://godoc.org/github.com/azzzak/alice?status.svg)](https://godoc.org/github.com/azzzak/alice) [![Go Report Card](https://goreportcard.com/badge/github.com/azzzak/alice)](https://goreportcard.com/report/github.com/azzzak/alice)\n\nБиблиотека для создания навыков, расширяющих функциональность голосового помощника [Алиса](https://alice.yandex.ru). Упрощает разработку навыков, оставляя возможность тонкой настройки. Преимущества библиотеки:\n\n- поддержка [связки аккаунтов](https://yandex.ru/dev/dialogs/alice/doc/auth/about-account-linking-docpage/)\n- объединение методов в цепочки при конструировании ответа\n- вспомогательные методы для оживления диалога\n- автоответ на служебные ping-пакеты\n\n## Установка или обновление\n\n`go get -u github.com/azzzak/alice`\n\n## Пример\n\nПростейший навык — говорит \"привет\", после чего повторяет каждую реплику пользователя.\n\n```Go\npackage main\n\nimport (\n  \"net/http\"\n\n  \"github.com/azzzak/alice\"\n)\n\nfunc main() {\n  updates := alice.ListenForWebhook(\"/hook\")\n  go http.ListenAndServe(\":3000\", nil)\n\n  updates.Loop(func(k alice.Kit) *alice.Response {\n    req, resp := k.Init()\n    if req.IsNewSession() {\n      return resp.Text(\"привет\")\n    }\n    return resp.Text(req.OriginalUtterance())\n  })\n}\n```\n\nДетальный разбор примера смотрите в [руководстве](manual/README.md).\n\n## Цепочки методов\n\nПозволяют конструировать ответ со всеми возможностями, которые предлагает Алиса: кнопки, картинки и звуки.\n\n**Пример.** Ответ с текстом и TTS с паузой и звуком из библиотеки Алисы:\n\n```Go\nresp.Text(\"творог\").\n  TTS(\"твор+ог\").\n  Pause(3).\n  Sound(sounds.Harp1)\n```\n\n**Пример.** Ответ со случайно выбранной строкой и двумя кнопками:\n\n```Go\nresp.RandomText(\"привет\", \"алоха\").\n  Button(\"хай\", \"\", false).\n  Button(\"отстань\", \"\", false)\n```\n\n**Пример.** При любом _num_ ответ остается согласованным:\n\n```Go\nresp.Text(fmt.Sprintf(\"%d %s пива %s на столе\", num,\n  alice.Plural(num, \"бутылка\", \"бутылки\", \"бутылок\"),\n  alice.Plural(num, \"стояла\", \"стояли\", \"стояло\")).\n  Sound(sounds.ThingsGlass1)\n```\n\n## Навыки на базе библиотеки\n\n[![Дневник здоровья](images/health.png)](https://dialogs.yandex.ru/store/skills/dd5bb5ec-dnevnik-zdorov-ya) \\\n[**Дневник здоровья**](https://dialogs.yandex.ru/store/skills/dd5bb5ec-dnevnik-zdorov-ya)\n\n[![Полезный Ждун](images/zhdun.jpeg)](https://dialogs.yandex.ru/store/skills/16ff4b52-poleznyj-zhdu) \\\n[**Полезный Ждун**](https://dialogs.yandex.ru/store/skills/16ff4b52-poleznyj-zhdu)\n\nПрисылайте свои навыки на azzzak@yandex.ru\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazzzak%2Falice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fazzzak%2Falice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazzzak%2Falice/lists"}