检查 aiml 文件中的 2 个值

Check 2 values in aiml file

我如何检查条件或其他标签中的 2 个值? 我想检查用户名是否等于未知用户值,但我不知道该怎么做。

假设您将用户名存储在名为 user 的全局 属性(谓词)中,使用 <set name="user">George</set> 您可以使用像这样的 AIML 类别:

<category>
  <pattern>WHAT IS MY NAME</pattern>
  <template>
    <condition>
      <li name="user" value="unknown">You haven't told me your name</li>
      <li name="user" value="">You haven't told me your name</li>
      <li>Hello <get name="user"/>!</li>
    </condition>
  </template>
<category>

其工作原理如下:

  1. 您设置了一个响应用户输入的类别"What is my name"
  2. <condition> 中的 <li> 元素测试 name 属性 的未知和空白。在这种情况下,AI 回复用户没有告诉我们他们的名字。
  3. 如果我们有名字,最后的 <li> 元素将被触发,它回复 'Hello' 后跟用户名。

我还没有用程序 O 测试过它,但它是标准的 AIML,应该可以正常工作。我已经在我自己的 AI 中成功编码了类似的类别。