aliceio 0.1.0
AliceIO
Асинхронный фреймворк для разработки
навыков Алисы
из
Яндекс.Диалогов
Based on aiogram v3
Особенности
Асинхронность (asyncio docs, PEP 492)
Тайп-хинты (PEP 484, может быть использован с mypy)
Поддержка PyPy
Роутеры (Blueprints)
Машина состояний (Finite State Machine)
Мидлвари (для входящих событий и вызовов API)
Мощные магические фильтры
Реакция на долгое время работы
Поддержка облачных функций Яндекса
Важно!
Рекомендуется иметь опыт работы с asyncio перед использованием aliceio
Быстрый старт
Как получить skill_id и подключить навык к Алисе можно прочитать тут.
Yandex Cloud Functions:
from aliceio import Dispatcher, Skill
from aliceio.types import Message
from aliceio.webhook.yandex_functions import OneSkillYandexFunctionsRequestHandler
dp = 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)
Вебхук:
from aiohttp import web
from aliceio import Dispatcher, Skill
from aliceio.types import Message
from aliceio.webhook.aiohttp_server import OneSkillAiohttpRequestHandler, setup_application
dp = 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()
Материалы
Туториал
Документация
Примеры
Связь
Если у вас есть вопросы, вы можете задать их в Телеграм чате
🇷🇺 @aliceio_chat
Лицензия
Copyright © 2023-2024 K1rL3s and ZloyKobra
Этот проект использует MIT лицензию
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.