Начальная структура проекта
- index.py
- settings.py файл для хранения настроек
- buttons.py файл для хранения кнопок
- events.py файл для хранения event(ов)
- key_words.py файл для хранения key_words
- messages.py файл для хранения всех сообщений для пользователя
- more_data_messages.py (необязательно) файл для хранения дополнительных данных, выдаваемых пользователю
- simulation.py (необезятелно) файл для симуляции и тестирования проекта
Пример начального проекта
settings.py
В файле settings.py хранятся настроики, изменяя которые, можно гибко изменять проект.
EVENTS
Константа EVENTS отвечает за вызовы event(ов). В положение True event(ы) вызываются. В положение False event(ы) не работуюют и не сохраняются.
EVENTS = True
DEBUG
Константа DEBUG отвечает за вывод логов о работе pyAlice. В положение True логи записываются.
Константа LOG_OUTPUT_IMMEDIATELY отвечает за вывод логов в терминал. В положение True логи выводятся в терминал.
DEBUG = True LOG_OUTPUT_IMMEDIATELY = True
Key words
Константа TEXT_FOR_KEY_WORDS - источник откуда будет взят текст для обработки KeyWords. TEXT_FOR_KEY_WORDS может иметь лишь два значения "command" или "original_utterance".
Константа KEY_WORD - ключевые слова, которые хранятся в файле key_words.py.
TEXT_FOR_KEY_WORDS = "command" KEY_WORD = key_words.key_words
Messages
Константа ALL_MESSAGES - все сообщения, которые хранятся в файле messages.py.
Константа STARTING_MESSAGE - первое сообщение, которое увидет польззователь при входе в диалог.
Константа MORE_DATA_MESSAGES - дополнительные данные к сообщениям, которые хранятся в файле more_data_messages.py.
ALL_MESSAGES = messages.messages STARTING_MESSAGE = "start_message" MORE_DATA_MESSAGES = more_data_messages.more_data_messages
Buttons settings
Константа BUTTONS - все кнопки, которые хранятся в файле buttons.py.
Константа BUTTONS_GROUPS - кнопки объединёные в группы. Название групп должны начанаться с символа "$".
Константа STARTING_BUTTONS - первые кнопи, которое увидет польззователь при входе в диалог.
BUTTONS = buttons.buttons BUTTONS_GROUPS = { $tab "$buttons_group1": ["btn1", "btn2"] } STARTING_BUTTONS = ["$buttons_group1", "btn4"]
Events list
Константа EVENTS_LIST позволяет соиденить event и функцию.
Константа IGNORE_EVENTS_LIST содержит event(ы), которые будут игнорироваться при проверке на то что класс pyAlice совекшал действия.
EVENTS_LIST = { $tab "endAliceEvent": end_alice_event, } IGNORE_EVENTS_LIST = ["storageFillEvent"]
Language
Константа DEBUG_LANGUAGE позволяет изменить язык логов.
Константа SOURCE_TEXT содержит источник текста. SOURCE_TEXT может иметь лишь два значения "command" или "original_utterance".
DEBUG_LANGUAGE = "ru" SOURCE_TEXT = "command"
key_words.py
В файле key_words.py хранятся ключевые слова под уникальным именем, к которому можно обратиться.
Key words
В переменую key_words складываем все ключевые слова под уникальными ключами.
В поле "key_words" вписываем масссив слов при которых должно вызваться key_words.
В поле "event" вписываем event которой будет вызван. При отсутствии вписываем "$NULL".
В поле "message" вписываем ключ сообщения, которой будет вызван. При отсутствии вписываем "$NULL".
В поле "buttons" вписываем кнопки и группы кнопок, которые будут вызваны.
key_words = { $tab "commands": { $tab2 "key_words": ["команды", "помощь"], $tab2 "event": "commands_event", $tab2 "message": "help", $tab2 "buttons": ["$buttons_group1"] $tab }, $tab "functions": { $tab2 "key_words": ["функции"], $tab2 "event": "$NULL", $tab2 "message": "$NULL", $tab2 "buttons": ["btn3"] $tab } }
В файле settings.py подключаем key_words.
import key_words KEY_WORD = key_words.key_words
events.py
В файле events.py хранятся функции, которые подключаютс к event(ам) в файле settings.py.
Events
функция event(а) принимает два параметра:
event - даннные о event(е).
cls - экземпляр класса, с которым мы работаем.
def function_example_event(event, cls): $tab pass
В файле settings.py соиденяем названия и функции.
from pyAlice.functions import end_alice_event from events import function_example_event EVENTS_LIST = { $tab "endAliceEvent": end_alice_event, $tab "exampleEvent": function_example_event } IGNORE_EVENTS_LIST = ["storageFillEvent"]
Event(ы) бывают встроимые и кастомные.
Встроиные event(ы) вызываются сами. Некоторые из них уже имеют встроеный функционал. Например, "endAliceEvent" имеет встроеный функционал и при вызове данного event(а) завершается сесия.
index.py
В файле index.py хранятся функция handler, которая вызывается при запросе на сервер.
Handler
Функция handler принимает два параметра, "event" и "context"
def handler(event, context): $tab pass
from pyAlice.functions import end_alice_event from events import function_example_event def handler(event, context): $tab return PyAlice(params_alice=event, settings=settings).get_params_for_alice()
get_params_for_alice()
Метод get_params_for_alice() возвращает ответ для диалога. По умолчанию ответ в виде json
from pyAlice.functions import end_alice_event from events import function_example_event def handler(event, context): $tab return PyAlice(params_alice=event, settings=settings).get_params_for_alice()
from pyAlice.functions import end_alice_event from events import function_example_event def handler(event, context): $tab py = PyAlice(params_alice=event, settings=settings).get_params_for_alice( "dict" )
Получив параметры в виде dict их можно обработать и вернуть их конверктировав в json
simulation.py
В переменую more_data_messages хранятся все дополнительные данные к сообщению.
Simulation
Класс Simulation позваляет симулировать работу Яндекс.Алисы, но симуляция воспринимет лишь текст.
from pyAlice.simulation import Simulation import index Simulation(handler=index.handler)
Новости
Сегодня вышла новая версия pyAlice 0.1.3. Данная версия исправила множество недостатков и ошибок прошлой версии
25 сентебря 2023 годаСегодня вышл офицальный сайт pyAlice. На данном сайте описана подробная документация
27 сентебря 2023 года