Фреймворк для разработки навыков Алисы на Python
❗️ Адаптирован под хостинг PythonAnyWhere ❗️
https://vk.com/video-181060886_456239027
Примеры навыков, реализованных на данном фреймворке
GitHub - https://github.com/itookyourboo/alice_minitest
Алиса - https://dialogs.yandex.ru/store/skills/79dc14f5-veselye-minitesty
GitHub - https://github.com/itookyourboo/animal-names
Алиса - https://dialogs.yandex.ru/store/skills/9a733c88-imya-dlya-pitom
Создаём папку test_skill, в которой будут храниться все файлы вашего навыка
Содержит enum-класс, в котором прописаны состояния/уровни/комнаты (как хотите, так и называйте)
Содержит все строковые ресурсы, чтобы избавиться от хардкода в главном файле
class TestSkill(BaseSkill):
name = 'test_skill'
command_handler = handler
handler = CommandHandler()
# Приветственное сообщение
@handler.hello_command
def hello(req, res, session):
res.text = 'Привет'
session['state'] = State.MENU
# Обработка токенов
# Есть заготовленные команды
@handler.command(words=['да', 'ага'], states=State.MENU)
def yes(req, res, session):
res.text = 'Вы ответили положительно'
session['state'] = State.PLAY
# Обработка пользовательского ввода
# Когда нет заготовленных команд
@handler.undefined_command(states=State.PLAY)
def play(req, res, session):
if YOUR_WORD in req.tokens:
res.text = 'Молодец!'
else:
res.text = 'Подумай ещё'
Здесь импортируем все наши навыки и кладём их в SKILLS
from test_skill import TestSkill
from another_skill import AnotherSkill
...
SKILLS = [TestSkill(), AnotherSkill(), ...]