То, что вы хотите, возможно, используя другой подход.Основная проблема в том, что вы не можете использовать <get name="secretWord"/>
в элементе <pattern>
, поэтому вам нужен другой шаблон с использованием простого текста и звездочек (*).Таким образом, вы бы отредактировали свою вторую категорию, чтобы задать вопрос, следующим образом:
<category>
<pattern> IS MY SECRET WORD * </pattern>
<template>
<condition>
<li name="secretWord"><value><get name="secretWord"/></value>
That's the secret word
</li>
<li>
Sorry, "<star/>" is not the secret word
</li>
</condition>
</template>
</category>
Это работает, требуя от клиента ввода "Является ли мое секретное слово FOO?"подтвердить свое секретное слово, и категория подтвердит это или нет.Элемент <condition>
проверяет свойство «secretWord» на его текущее значение и говорит «это секретное слово», если есть совпадение.Значение по умолчанию <li> ... </li>
приводит к отображению текста «Извините ...», если клиент неправильно ввел секретное слово.
Кроме того, обратите внимание, что это опирается на AIML v2, который использует подэлемент value, и этоусловно писать шаблоны в верхнем регистре.