1
0
mirror of https://github.com/janvarev/Irene-Voice-Assistant.git synced 2025-11-26 22:50:58 +02:00
Files
Irene-Voice-Assistant/docs/DEV_CONTEXT.md

56 lines
3.4 KiB
Markdown
Raw Normal View History

# Поддержка контекста (с версии 4.0)
Обычно запуск любой команды требует префикса имени ассистента
(напр, "Ирина, погода"). Но иногда это избыточно - например, если мы пишем игру, и команды идут непрерывно.
С версии 4.0 поддерживается установление **контекста**. В контексте
движок:
* принимает фразы без префикса Ирина (имени ассистента)
* сразу передает их в функцию обработки контекста
**Как работает**
При вызове функции обработки можно вызвать функцию
```
core.context_set(new_context)
```
Контекст будет держаться 10 секунд, потом будет сброшен
(нужно, чтобы Ирина не зависала в состоянии, если пользователь ушел)
Пока контекст установлен, любой непустой вход (фраза) будет сразу
подана на вход функции контекста, после чего **контекст будет сброшен!**
Таким образом, если вы хотите продолжать взаимодействовать с контекстом,
нужно после каждого вызова функции его устанавливать повторно.
**Пример**
Для примера доступна игра "Больше-меньше" (плагин plugins/plugin_gamemoreless.py).
Запустите её с помощью команды "ирина игра больше меньше"
Также доступен второй тип задания контекста в альтернативной реализации игры
plugins_inactive/plugin_gamemoreless_alt.py.
**Альтернативный вариант рекомендуется больше, чем основной**
**Типы контекста**
Контекст может задаваться двумя способами:
1. Как функция, принимающая текстовый ввод (пример в игре больше меньше plugins/plugin_gamemoreless.py)
2. Как словарь команд внутри контекста - такой же, как при задании команд Ирины в манифесте плагина. В этом
случае движок будет пытаться распознать команду внутри контекста,
и в случае нераспознавания контекст будет переустановлен.
Пример диалога во втором варианте:
```
В: ирина игра больше меньше
О: скажи правила или начать
В: тест
О: не поняла (контекст сохранился, по-прежнему можно сказать правила)
```
Пример реализации игры Больше-меньше в альтернативном варианте есть в файле
plugins_inactive/plugin_gamemoreless_alt.py (нужно перенести в plugins_active,
а затем запустить командой "игра меньше больше")