Документация


Начальная структура проекта

  • 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"


buttons.py

В файле buttons.py хранятся кнопки под уникальным именем, к которому можно обратиться и получить кнопку. Также кнопки можно объединять в группы и при обращении к группе будут вызваны все кнопки данной группе.

Buttons

В переменую buttons складываем все кнопки под уникальными ключами.

buttons = { $tab "btn1": { $tab3 "title": "btn1-title", $tab3 "payload": { $tab4 "title": "btn1-title" $tab2 }, $tab2 "hide": True $tab }, $tab "btn2": { $tab3 "title": "btn2-title", $tab3 "payload": { $tab4 "title": "btn2-title" $tab2 }, $tab2 "hide": False $tab }, $tab "btn3": { $tab3 "title": "btn3-title", $tab3 "payload": { $tab4 "title": "btn3-title" $tab2 }, $tab2 "hide": True $tab } }

В файле settings.py подключаем кнопки.

import buttons BUTTONS = buttons.buttons BUTTONS_GROUPS = { $tab "$buttons_group1": ["btn1", "btn2"] }


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


messages.py

В файле messages.py хранятся кнопки под уникальным именем, к которому можно обратиться и получить сообщение.

Messages

В переменую messages хранятся все сообщения под уникальными ключами. К ним можно обратиться и получить сообщение.

messages = { $tab "start_message": "Hello World", $tab "error_message": "ERROR", $tab "help": "Help", $tab "end_message": "End" }

В файле settings.py подключаем messages.

import messages ALL_MESSAGES = messages.messages

Мы можем изменить сообщение выдоваемое пользователю.

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) $tab py.add_message(key_mesage) $tab return py.get_params_for_alice()

more_data_messages.py

В переменую more_data_messages хранятся все дополнительные данные к сообщению.

More data messages

В переменой more_data_messages хранятся все дополнительные данные к сообщению. Ключ доп-данных должен совподать с ключом сообщения.

На место "$MESSAGE" будет вставлено содержимое из ALL_MESSAGES под ключом more_data_messages

more_data_messages = { $tab "start_message": { $tab2 "card": { $tab3 "type": "BigImage", $tab3 "image_id": "1533899/e23e2c1e620580463a5d", $tab3 "description": "$MESSAGE" $tab2 } $tab } }

В файле settings.py подключаем more_data_messages.

import more_data_messages MORE_DATA_MESSAGES = more_data_messages.more_data_messages


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

Сегодня вышла новая версия pyAlice 0.1.3. Данная версия исправила множество недостатков и ошибок прошлой версии

25 сентебря 2023 года
Выход офицального сайта pyAlice

Сегодня вышл офицальный сайт pyAlice. На данном сайте описана подробная документация

27 сентебря 2023 года