You've already forked Irene-Voice-Assistant
mirror of
https://github.com/janvarev/Irene-Voice-Assistant.git
synced 2025-11-26 22:50:58 +02:00
56 lines
3.4 KiB
Markdown
56 lines
3.4 KiB
Markdown
|
|
# Поддержка контекста (с версии 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,
|
||
|
|
а затем запустить командой "игра меньше больше")
|