PyAiml :: AIML 的条件标签无法使用 Python 解析



下面是示例AIML文件:

<?xml version = "1.0" encoding = "UTF-8"?>
<aiml version = "1.0.1" encoding = "UTF-8">
<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>
</aiml>

下面是简单的python代码:

category = "DO YOU FIND ME ATTRACTIVE"
bot.setPredicate("gender", "male") ## Setting the Predicate
reply = bot.respond(category)

当用户为gender提供值时,我希望我的python代码将gender的值设置为"male",然后给出适当的回复。

问题

它无法设置谓词并从他们的回复中带有适当的注释。我得到的回复是"我发现你很有吸引力"而不是"我觉得你很帅"。通常,如果我使用没有条件标签的设置谓词,它可以工作。因此,您能否让我知道问题出在解析条件标签还是代码本身。

您可以按如下方式修改 AIML 文件:-

<?xml version="1.0" encoding="UTF-8"?>
<aiml version="1.0">
<category>
<pattern>DO YOU FIND ME * ATTRACTIVE</pattern>
<template>
What is your gender ?
<think><set name="topic">GENDER</set></think>
<br/>In case you dont mind?
</template>
</category>
<topic name="GENDER">
<category>
<pattern>MALE</pattern>
<that>* CASE YOU *</that>
<template>I find you very handsome.!</template>
</category>
<category>
<pattern>FEMALE</pattern>
<that>* CASE YOU *</that>
<template>I find you very pretty!</template>
</category>
</topic>
</aiml>