Skip to content

Latest commit

 

History

History
132 lines (108 loc) · 4.9 KB

aiml_protocol.md

File metadata and controls

132 lines (108 loc) · 4.9 KB

Описание сценариев

AIML

Приложение EnglishVR взаимодействует с Y-bot для выполнения сценариев. Для описания сценариев используется AIML 1.0.1.

Каждое взаимодействие с ботом описывается в тегах category, запрос в pattern, а ответ в template. Такая форма выглядит следующим образом

<?xml version="1.0" encoding="UTF-8"?>
<aiml version="2.0">
    <category>
        <pattern>HELLO</pattern>
        <template>Hi there!</template>
    </category>
</aiml>

Описание сценариев заключается в состалении запросов, используя специльные команды, и вариантов ответов в виде json-объектов.

Команды

Команды указываются в тегах <pattern></pattern>.

Именование идентификаторов:

  • стиль camelCase
  • префикс cmd

Пример:

<?xml version="1.0" encoding="UTF-8"?>
<aiml version="2.0">
    <category>
        <pattern>cmdStart</pattern>
        <template>
            ...
        </template>
    </category>
</aiml>

Доступные команды:

  • cmdStart – команда для запуска сценария

Конструирование ответа

Ответ бота должен конструироваться в тегах template, а итоговый результат возвращаться Пользователю в виде json.

Пример:

<?xml version="1.0" encoding="UTF-8"?>
<aiml version="2.0">
    <category>
        <pattern>cmdStart</pattern>
        <template>
            // конструирование фразы ...
            <json>
                {
                    "Actions": "Walking", 
                    "VoicePhrases": "Hello"
                }
            </json>
        </template>
    </category>
</aiml>

В качестве ключей в json могут быть:

  • Actions – список действий для NPC.
  • VoicePhrases – сконструированная фраза для произношения NPC.

Actions

Доступный список действий для выполнения NPC:

  • go – действие "подойти", включает в себя анимацию walking;
  • say – действие "сказать", включает в себя проигрывание голосовых фраз
  • greet – действие "поприветствовать", анимация wavingGesture;
  • и другие

VoicePhrases

Результатом ответа бота должна являться конкатенация отдельных фраз, которые могут быть составлены из:

  • грамматические конструкции;
  • числительные;
  • типы объектов;
  • вводные слова;
  • и другое.

Именование

Возвращаемая строка должна состоять из названий фраз, разделенных пробелами. Слова во фразах, в свою очередь, разделены символом _.

Таким образом, итоговая фраза может выглядеть следующим образом:

>> Good_morning
>> Can_I_have one melon please

Вариативность

В AIML необходимо описывать несколько вариантов ответов со стороны бота на конкретный запрос, чтобы бот реагировал по-разному при каждом запуске программы.

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

Пример:

> cmdStart
>> Hello
>> Can_I_have one melon please
...
> cmdStart
>> Good_morning
>> I_would_like two apples please

В данном примере, на запрос cmdStart происходит выбор случайных частей фраз из вариантов приветствия, фруктов, числительных. Возможные варианты частей фраз, которые должны быть прописаны в сценарии:

  • Hello | Good_morning | ...
  • Can_I_have | I_would_like | ...
  • one | two | three | ...
    • apple | watermelon | melon | potato | ...
    • apples | watermelons | melons | potatoes | ...
  • please