Абстрактная матрица покрытия команд

Абстрактная матрица покрытия команд

Назначение: зафиксировать языковой контракт генератора команд без привязки к конкретному умному дому, device id, комнатам пользователя или статистике сгенерированных команд.

Документ отвечает на вопрос: какие абстрактные формы русских команд должны пониматься системой, какие есть синонимы действий, какие слоты подставляются и где требуется контекст.

Слоты и обозначения

Слот Значение Примеры формы
<object> Устройство, alias устройства или generic concept ***, свет, шторы, телевизор
<object_acc> Объект в винительном падеже ***, шторы, лампу
<object_gen> Объект в родительном падеже ***, света, телевизора
<room> Комната или зона ***
<room_ref> Комната с предлогом или bare-форма в ***, на ***, ***
<percent> Процент яркости/громкости текстом ноль процентов, пятьдесят процентов, сто процентов
<number> Число текстом десять, пятьдесят, сто
<channel> Номер канала текстом первый, второй, пятый, десятый
<temperature> Температура текстом восемнадцать, двадцать два, двадцать четыре
<item> Товар или alias товара ***
<playlist> Плейлист или alias плейлиста ***
<suffix> Эмоциональный/срочный хвост срочно, быстро, блять

Общие варианты

ID Шаблон Слоты Контекст Ограничения
common.object.room.suffix <command> <room_ref> room Нет Для шаблонов с RoomRule != none; комната фильтрует цель.
common.object.room.prefix <room_ref> <command> room Нет Только для шаблонов с prefix/both placement.
common.direct.alias.on <custom_on_phrase> Нет Нет Пользовательский alias из ON:...; исполняет конкретный on intent.
common.direct.alias.off <custom_off_phrase> Нет Нет Пользовательский alias из OFF:...; исполняет конкретный off intent.
common.frustrated <command> <suffix> suffix Нет Добавляется к многим smart-home фразам; noise-варианты не должны быть train/Vosk subset.
common.context.short <short_command> last_devices Да Исполняется только через сохраненный контекст, не расширяется на всю комнату.

Включение

ID Шаблон Синонимы Слоты Контекст Ограничения
on.object <on_verb> <object_acc> включи, включить, вруби, врубай object Нет <object> должен поддерживать on_off; шторы используют отдельный open-блок.
on.object.room <on_verb> <object_acc> <room_ref> включи, включить, вруби, врубай object, room Нет Комната уточняет область поиска.
on.room.only.light <on_verb> <room_ref> включи room Нет Только для light-like объектов; команда без имени объекта.
on.short <on_verb> включи, включить, вруби, врубай last_devices Да Только после контекста.
on.state.light <light_on_state> [<room_ref>] темно, темновато, ничего не видно room Нет Только для light-like объектов.
on.state.heat <heat_on_state> [<room_ref>] холодно, холодновато, прохладно room Нет Для heating/thermostat-like объектов.
on.state.cool <cool_on_state> [<room_ref>] жарко, жарковато, душно room Нет Для AC/cooling-like объектов.

Выключение

ID Шаблон Синонимы Слоты Контекст Ограничения
off.object <off_verb> <object_acc> выключи, выключить, отключи, выруби, вырубай object Нет <object> должен поддерживать on_off; шторы используют отдельный close-блок.
off.object.room <off_verb> <object_acc> <room_ref> выключи, выключить, отключи, выруби, вырубай object, room Нет Комната уточняет область поиска.
off.room.only.light <off_verb> <room_ref> выключи room Нет Только для light-like объектов; команда без имени объекта.
off.short <off_verb> выключи, выключить, отключи, выруби, вырубай last_devices Да Только после контекста; может конфликтовать с music_stop.
off.state.cool <cool_off_state> [<room_ref>] холодно, холодновато, прохладно room Нет Для AC/cooling-like объектов: выключить охлаждение.

Открытие и закрытие

ID Шаблон Синонимы Слоты Контекст Ограничения
open.object <open_verb> <object_acc> открой object Нет Только openable-объекты, сейчас curtains/blinds-like.
open.generic <open_verb> шторы [<room_ref>] открой room Нет Generic concept для штор.
open.blinds.up подними <object_acc> [<room_ref>] подними object, room Нет Только blinds/roller-shutter-like имена.
close.object <close_verb> <object_acc> закрой object Нет Только openable-объекты, сейчас curtains/blinds-like.
close.generic <close_verb> шторы [<room_ref>] закрой room Нет Generic concept для штор.
close.blinds.down опусти <object_acc> [<room_ref>] опусти object, room Нет Только blinds/roller-shutter-like имена.

Яркость

ID Шаблон Синонимы Значение Контекст Ограничения
brightness.set.object <brightness_set> яркость <object_acc> на <percent> установи, сделай, включи 0..100% Нет Объект должен поддерживать brightness.
brightness.set.genitive <brightness_set> яркость <object_gen> на <percent> установи, сделай, включи 0..100% Нет Альтернативная падежная форма объекта.
brightness.statement яркость <object_acc|object_gen> <percent> Нет явного глагола 0..100% Нет Объект должен поддерживать brightness.
brightness.object.max <object_acc> на максимум на максимум, на полную 100% Нет Объект должен поддерживать brightness.
brightness.group.max свет на максимум на максимум, на полную, яркость света на максимум 100% Нет Light-like concept.
brightness.group.medium свет на среднюю яркость на среднюю яркость, на половину 50% Нет Light-like concept.
brightness.group.min свет на минимум на минимум, яркость света на минимум 10% Нет Light-like concept.
brightness.up.object <brightness_up> <object_acc|object_gen> сделай ярче, прибавь яркость, увеличь яркость +10 Нет Объект должен поддерживать brightness.
brightness.up.generic сделай свет ярче [<room_ref>] ярче, поярче, сделай ярче +10 Нет Light-like concept; комната может уточнять цель.
brightness.down.object <brightness_down> <object_acc|object_gen> сделай тусклее, убавь яркость, уменьши яркость, приглуши -10 Нет Объект должен поддерживать brightness.
brightness.down.generic приглуши свет [<room_ref>] темнее, тусклее, потусклее, приглуши свет -10 Нет Light-like concept; комната может уточнять цель.
brightness.short.up <brightness_up_short> сделай ярче, прибавь яркость, ярче, прибавь, увеличь яркость +10 Да Только после контекста.
brightness.short.down <brightness_down_short> сделай тусклее, убавь яркость, тусклее, убавь, уменьши яркость, темнее, приглуши, приглуши свет -10 Да Только после контекста.
brightness.short.max <brightness_max_short> на максимум, на полную, максимальная яркость 100% Да Только после контекста.
brightness.short.min <brightness_min_short> на минимум, минимальная яркость Минимум Да Только после контекста.

Громкость

ID Шаблон Синонимы Значение Контекст Ограничения
volume.set.object громкость <object_acc|object_gen> <number> громкость 0..100 Нет Объект должен поддерживать volume.
volume.set.verb поставь громкость <object_acc|object_gen> на <number> поставь 0..100 Нет Только если capability поддерживает random access.
volume.up.object <volume_up> <object_acc|object_gen> сделай громче, прибавь громкость, увеличь громкость Шаг вверх Нет Объект должен поддерживать volume.
volume.up.telegraph <object_acc> громче громче, погромче Шаг вверх Нет Telegraph/STT-friendly форма.
volume.down.object <volume_down> <object_acc|object_gen> сделай тише, убавь громкость, уменьши громкость Шаг вниз Нет Объект должен поддерживать volume.
volume.down.telegraph <object_acc> тише тише, потише Шаг вниз Нет Telegraph/STT-friendly форма.
volume.short.up <volume_up_short> сделай громче, прибавь звук, громче, увеличь громкость Шаг вверх Да Только после контекста или music-context.
volume.short.down <volume_down_short> сделай тише, убавь звук, тише, уменьши громкость Шаг вниз Да Только после контекста или music-context.
volume.short.max <volume_max_short> на максимум, максимальная громкость 100 Да Только после контекста.
volume.short.min <volume_min_short> выключи звук, без звука 0 Да Может пересекаться с mute.

Каналы

ID Шаблон Синонимы Значение Контекст Ограничения
channel.set.on включи <channel> канал на <object> включи 1, 2, 5, 10 Нет Объект должен поддерживать channel.
channel.set.switch переключи <object> на <channel> канал переключи 1, 2, 5, 10 Нет Объект должен поддерживать channel.
channel.statement <channel> канал на <object> Нет явного глагола 1, 2, 5, 10 Нет Объект должен поддерживать channel.
channel.next.object переключи <object> на следующий канал следующий +1 Нет Объект должен поддерживать channel.
channel.prev.object переключи <object> на предыдущий канал предыдущий -1 Нет Объект должен поддерживать channel.
channel.short.next <channel_next_short> следующий канал, переключи канал, дальше +1 Да Только после контекста; дальше может пересекаться с music next.
channel.short.prev <channel_prev_short> предыдущий канал, назад -1 Да Только после контекста; назад может пересекаться с music prev.

Температура

ID Шаблон Синонимы Значение Контекст Ограничения
temperature.set.object установи температуру <object_acc|object_gen> на <temperature> градусов установи 18, 20, 22, 24 Нет Объект должен поддерживать range temperature.
temperature.statement температура <object_acc|object_gen> <temperature> Нет явного глагола 18, 20, 22, 24 Нет Не путать с property-запросом температуры.
temperature.up.object <temperature_up> <object_acc> сделай теплее, прибавь температуру +2 Нет Объект должен поддерживать range temperature.
temperature.down.object <temperature_down> <object_acc> сделай холоднее, убавь температуру -2 Нет Объект должен поддерживать range temperature.
temperature.short.up <temperature_up_short> сделай теплее, теплее, прибавь температуру +2 Да Только после контекста.
temperature.short.down <temperature_down_short> сделай холоднее, холоднее, убавь температуру -2 Да Только после контекста.

Цветовая температура света

ID Шаблон Синонимы Значение Контекст Ограничения
color_temperature.up.object сделай <object_acc> теплее теплее, более теплый свет +500K Нет Объект должен поддерживать color_temperature или temperature_k.
color_temperature.up.generic сделай свет теплее [<room_ref>] свет теплее, теплее свет +500K Нет Light-like concept.
color_temperature.down.object сделай <object_acc> холоднее холоднее, более холодный свет -500K Нет Объект должен поддерживать color_temperature или temperature_k.
color_temperature.down.generic сделай свет холоднее [<room_ref>] свет холоднее, холоднее свет -500K Нет Light-like concept.
color_temperature.short.up <warm_light_short> свет теплее, теплее свет, сделай свет теплее +500K Да Только после контекста.
color_temperature.short.down <cold_light_short> свет холоднее, холоднее свет, сделай свет холоднее -500K Да Только после контекста.

Режимы, toggle и RGB

ID Шаблон Синонимы Слоты Контекст Ограничения
mode.fan.high <fan_high_phrase> <object> включи высокую скорость, максимальная скорость, на максимум object Нет mode.fan_speed=high.
mode.fan.medium <fan_medium_phrase> <object> включи среднюю скорость, средняя скорость, на средней object Нет mode.fan_speed=medium.
mode.fan.low <fan_low_phrase> <object> включи низкую скорость, минимальная скорость, на минимум object Нет mode.fan_speed=low.
toggle.mute.object <mute_phrase> <object> выключи звук, включи звук, без звука, отключи звук object Нет toggle.mute.
toggle.mute.short <mute_short> переключи звук, звук, выключи звук, включи звук last_devices Да Только после контекста.
toggle.default.short <toggle_short> переключи, переключить last_devices Да Для toggle без специализированного шаблона.
color.rgb.named сделай <object> <color> красным, синим, зеленым object, color Нет color_setting.rgb.
color.rgb.white поставь белый цвет <object> белый цвет object Нет color_setting.rgb.
color.rgb.change измени цвет <object> измени цвет object Нет color_setting.rgb; без явного значения цвета.

Показания датчиков

ID Шаблон Синонимы Слоты Контекст Ограничения
property.temperature <temperature_query> [<room_ref>] [у <object>] какая температура, сколько градусов, температура, что с температурой, покажи температуру room, object Нет Property query, не range set.
property.humidity <humidity_query> [<room_ref>] [у <object>] какая влажность, влажность, что с влажностью, покажи влажность, сколько процентов влажности room, object Нет Float property humidity.
property.co2 <co2_query> [<room_ref>] [у <object>] какой уровень co2, уровень углекислого газа, что с co2, покажи уровень co2, co2, со2 room, object Нет Однословные co2/со2 только с комнатным вариантом.
property.pressure <pressure_query> [<room_ref>] [у <object>] какое давление, давление, что с давлением, покажи давление room, object Нет Float property pressure.
property.pm25 <pm25_query> [<room_ref>] [у <object>] какой уровень PM2.5, PM2.5, загрязнение воздуха, что с PM2.5 room, object Нет Float property PM2.5.
property.battery <battery_query> [<room_ref>] [у <object>] какой заряд батареи, уровень заряда, батарея, заряд room, object Нет Battery property.
property.illumination <illumination_query> [<room_ref>] [у <object>] какая освещенность, освещенность, уровень света room, object Нет Illumination property.
property.water <water_query> [<room_ref>] [у <object>] какой уровень воды, уровень воды, что с водой room, object Нет Water level property.

Покупки

ID Шаблон Синонимы Слоты Контекст Ограничения
shopping.add.catalog <shopping_add_verb> <item> <shopping_context> добавь, добавьте, занеси, внеси, запиши, положи item Нет Только при активной shopping-list интеграции и наличии товара/alias.
shopping.add.catalog.polite <shopping_add_verb> <item> <shopping_context> пожалуйста Те же item Нет Вежливый вариант catalog-команды.
shopping.add.custom <shopping_custom_phrase> добавь что-нибудь, добавь товар, занеси продукт, запиши новый продукт Нет Нет Для свободной позиции без конкретного catalog item.
shopping.detect.input <shopping_add_keyword> ... <shopping_context_keyword> добавить, запишите, добавляй, список покуп, покупки item Нет Pre-router detection, шире генераторных фраз.

<shopping_context>: в список покупок, в покупки, к покупкам, для покупок.

Музыка

ID Шаблон Синонимы Слоты Контекст Ограничения
music.play <music_play_phrase> включи музыку, вруби музыку, поставь музыку, включай музыку Нет Нет Исполняется music executor, не Yandex Smart Home API.
music.pause <music_pause_phrase> пауза, поставь на паузу, поставь музыку на паузу, поставь на паузу музыку Нет Нет Music domain.
music.resume <music_resume_phrase> продолжай, сними с паузы, продолжи, продолжи музыку, включи музыку обратно Нет Нет Music domain.
music.next <music_next_phrase> дальше, следующий, следующую, следующий трек, следующая песня Нет Music context желателен Конфликтует с channel next.
music.prev <music_prev_phrase> назад, предыдущий, предыдущую, прошлый, прошлую, предыдущий трек, прошлый трек Нет Music context желателен Конфликтует с channel prev.
music.volume.up <music_volume_up_phrase> громче, сделай громче, прибавь звук, увеличь громкость Нет Music context желателен Конфликтует с smart-home volume.
music.volume.down <music_volume_down_phrase> тише, сделай тише, убавь звук, уменьши громкость Нет Music context желателен Конфликтует с smart-home volume.
music.stop <music_stop_phrase> выключи музыку, останови музыку, выруби музыку, стоп, останови, хватит, грубые stop-формы Нет Music context желателен Короткое выключи конфликтует с smart-home off.
music.playlist <playlist_play_verb> [плейлист] <playlist> включи, поставь playlist Нет Плейлист берется из catalog title/alias.
music.playlist.direct <custom_playlist_on_phrase> Пользовательские ON: aliases Нет Нет Direct phrase для конкретного playlist id.

Диалоговый режим

ID Шаблон Синонимы Слоты Контекст Ограничения  
dialog.on <dialog_on_phrase> поболтаем, давай поговорим, давай поболтаем Нет Нет Переключает voice session в dialog mode.  
command-coverage-matrix.md dialog.off <dialog_off_phrase> давай закончим, закончим, закончим разговор, хватит, хватит болтать, стоп диалог, заткнись, заткнись нахуй, заткнись блять, выключи диалог Нет Dialog mode желателен В активном диалоге должен иметь приоритет над другими доменами.

Чек-лист покрытия

Семейство Абсолютное значение Относительное значение Комната Short/context Статус
on/off Не нужно Не нужно Да Да Покрыто
open/close Не нужно Не нужно Да Нет Покрыто для openable curtains/blinds-like
brightness Да Да Да Да Покрыто
volume Да Да Да Да Покрыто
channel Да Да Да Да Покрыто
temperature Да Да Да Да Покрыто
color_temperature Нет Да Да Да Покрыто для relative warm/cold
mode.fan_speed Да через mode value Нет Да Нет Частично, только high/medium/low
toggle.mute Toggle Не нужно Да Да Покрыто
color.rgb Частично Нет Да Нет Покрыто базовыми цветами
properties Query Не нужно Да Нет Покрыто для перечисленных float properties
shopping Не применимо Не применимо Нет Нет Покрыто при активной интеграции
music Не применимо Да для next/prev/volume Нет Через music context Покрыто словарем music-фраз
dialog Не применимо Не применимо Нет Через активный dialog mode Покрыто

Неоднозначности

Фраза/класс Возможные домены Правило ожидания
выключи smart-home off, music stop Без smart-home context нельзя расширять на все устройства; при music context может быть stop.
громче / тише smart-home volume, music volume Music context должен приоритизировать music; smart-home context - last_devices.
дальше / назад music next/prev, channel next/prev Music context против device/channel context.
теплее / холоднее temperature range, color temperature Контекст объекта определяет: климат или свет.
температура property query, temperature range Без числового значения это query; с <temperature> и объектом - set/range.
на максимум brightness, volume, fan_speed Требует контекста объекта/capability.