https://github.com/K1rL3s/aliceio
🐍 Асинхронный фреймворк для разработки навыков Алисы из Яндекс.Диалогов
https://github.com/K1rL3s/aliceio
alice alice-skills aliceio asyncio bot framework python yandex yandex-alice yandex-dialogs yandex-dialogs-sdk yandex-lyceum
Last synced: 14 days ago
JSON representation
🐍 Асинхронный фреймворк для разработки навыков Алисы из Яндекс.Диалогов
- Host: GitHub
- URL: https://github.com/K1rL3s/aliceio
- Owner: K1rL3s
- License: mit
- Created: 2023-12-29T23:21:50.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-02-20T00:32:59.000Z (3 months ago)
- Last Synced: 2025-04-08T16:54:32.969Z (about 2 months ago)
- Topics: alice, alice-skills, aliceio, asyncio, bot, framework, python, yandex, yandex-alice, yandex-dialogs, yandex-dialogs-sdk, yandex-lyceum
- Language: Python
- Homepage: https://pypi.org/project/aliceio/
- Size: 2.41 MB
- Stars: 60
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-alice - K1rL3s/aliceio - asyncio библиотека для Python 3.8+ (Разработка / SDK)
README
AliceIO[](https://github.com/K1rL3s/aliceio/blob/master/LICENSE)
[](https://pypi.org/project/aliceio/)
[](https://pypi.org/project/aliceio/)
[](https://pypi.org/project/aliceio/)
[](https://github.com/K1rL3s/aliceio/stargazers)
[](https://pypi.org/project/aliceio/)
[](https://github.com/K1rL3s/aliceio/actions)
[](https://codecov.io/gh/K1rL3s/aliceio)
Асинхронный фреймворк для разработки
навыков Алисы
из
Яндекс.Диалогов
Based on aiogram v3## Особенности
- Асинхронность ([asyncio docs](https://docs.python.org/3/library/asyncio.html), [PEP 492](http://www.python.org/dev/peps/pep-0492))
- Тайп-хинты ([PEP 484](http://www.python.org/dev/peps/pep-0484), может быть использован с [mypy](http://mypy-lang.org/))
- Поддержка [PyPy](https://www.pypy.org/)
- Роутеры (Blueprints)
- Машина состояний (Finite State Machine)
- Мидлвари (для входящих событий и вызовов API)
- Мощные [магические фильтры](https://github.com/aiogram/magic-filter)
- Реакция на [долгое время работы](https://yandex.ru/dev/dialogs/alice/doc/publish-settings.html#troubleshooting)
- Поддержка [облачных функций Яндекса](https://yandex.cloud/ru/services/functions)### Важно!
Рекомендуется иметь опыт работы с [asyncio](https://docs.python.org/3/library/asyncio.html) перед использованием **aliceio**## Быстрый старт
Как получить `skill_id` и подключить навык к Алисе можно прочитать тут.
### [Yandex Cloud Functions](https://yandex.ru/dev/dialogs/alice/doc/ru/quickstart-programming):
```python
from aliceio import Dispatcher, Skill
from aliceio.types import Message
from aliceio.webhook.yandex_functions import OneSkillYandexFunctionsRequestHandlerdp = Dispatcher()
skill = Skill(skill_id="...")
requests_handler = OneSkillYandexFunctionsRequestHandler(dispatcher=dp, skill=skill)@dp.message()
async def hello(message: Message) -> str:
return f"Привет, {message.session.application.application_id}!"async def main(event, context):
return await requests_handler(event, context)
```### Вебхук:
```python
from aiohttp import web
from aliceio import Dispatcher, Skill
from aliceio.types import Message
from aliceio.webhook.aiohttp_server import OneSkillAiohttpRequestHandler, setup_applicationdp = Dispatcher()
skill = Skill(skill_id="...")@dp.message()
async def hello(message: Message) -> str:
return f"Привет, {message.session.application.application_id}!"def main() -> None:
app = web.Application()
requests_handler = OneSkillAiohttpRequestHandler(dispatcher=dp, skill=skill)WEB_SERVER_HOST = "127.0.0.1"
WEB_SERVER_PORT = 80
WEBHOOK_PATH = "/alice"requests_handler.register(app, path=WEBHOOK_PATH)
setup_application(app, dp, skill=skill)
web.run_app(app, host=WEB_SERVER_HOST, port=WEB_SERVER_PORT)if __name__ == "__main__":
main()
```## Материалы
- [Туториал](https://aliceio.readthedocs.io/ru/latest/tutorial/)
- [Документация](https://aliceio.readthedocs.io/)
- [Примеры](https://github.com/K1rL3s/aliceio/tree/master/examples)## Связь
Если у вас есть вопросы, вы можете задать их в Телеграм чате
- 🇷🇺 [\@aliceio_chat](https://t.me/aliceio_chat)## Лицензия
Copyright © 2023-2025 [K1rL3s](https://github.com/K1rL3s) and [ZloyKobra](https://github.com/ZloyKobra) \
Этот проект использует [MIT](https://github.com/K1rL3s/aliceio/blob/master/LICENSE) лицензию