0

我正在学习 AIML 并看到了element的示例<condition>,例如:

<category>
<pattern>DO YOU FIND ME ATTRACTIVE</pattern>
<template>
  <condition name="gender">
    <li value="male">I find you very handsome.</li>
    <li value="female">I find you very pretty.</li>
    <li>I find you very attractive.</li>
  </condition>
</template>
</category>

我想知道是否有办法形成连词或析取词。为了扩展这个例子,我想让输出不仅依赖于,gender而且依赖于一个标志adult

条件可以嵌套,或者我可以在修改变量时或在条件之前使用<think>and<set>来获得相同的效果吗?我正在使用 Pandorabots,以防有任何扩展名(尽管我在他们的文档中没有看到任何扩展名)。

4

1 回答 1

1

您可以执行嵌套条件,但这很快就会变得非常混乱,特别是如果您有 3 或 4 个级别。我会通过使用我要检查的谓词的内容设置一个 var 来做到这一点。为什么是 var 而不是名称?因为你不需要保留这个谓词。它只会用于这个类别。在激活类别后刷新变量,而保留“名称”谓词以供其他类别使用。

<category>
<pattern>DO YOU FIND ME ATTRACTIVE</pattern>
<template>
    <think>
        <set var="check"><get name="gender"/> <get name="adult"/></set>
    </think>
    <condition var="check">
        <li value="male yes">I find you very handsome.</li>
        <li value="female yes">You are a very beautiful woman.</li>
        <li value="male no">Yes, you are a handsome boy.</li>
        <li value="female no">Yes, you are a very pretty girl.</li>
       <li>I find you very attractive.</li>
    </condition>
</template>
</category>
于 2021-11-21T14:08:34.140 回答