Aiml 1.0 - * 模式
Aiml 1.0 - * pattern
我想知道如何创建与此对话匹配的 AIML:
User: What's my name?
Bot: Right now I don't know. Tell me, what's your name?
User: Gandalf.
Bot: Hello Gandalf.
所以我尝试使用这两个类别。
<category>
<pattern>WHAT'S MY NAME?</pattern>
<template>
<condition name="name_set" value="S"> <get name="name"/></condition>
<condition name="name_set" value="">Right now I don't know.Tell me, what's your name?</condition>
</template>
</category>
<category>
<pattern>*</pattern>
<that>Right now I don't know.Tell me, what's your name?</that>
<template><think><set name="name"><star/></set><set name="name_set">S</set></think>Hello <srai>WHAT'S MY NAME?</srai>.</template>
</category>
但是我的机器人没有选择最后定义的模式,而是不断回答默认答案,使用 * 模式设置在另一个类别中但没有 that 标签。我做错了什么?
奖金问题:您可能已经注意到我正在使用 name_set 全局变量来查看我是否存储了用户名:empty表示NO,S表示YES。我使用这个 escamotage 是因为在 Program-O bot 中,AIML 验证器不允许我使用 exists 属性。如果有人知道更多解决问题的方法或有任何建议,请成为我的客人。
谢谢。
在我看来,类别中的 <that>
不正确。如果我是正确的,那指的是你的机器人输出的最后一句话。那么这可能更适合你。
<category>
<pattern>*</pattern>
<that>Tell me *</that>
<template>
<think>
<set name="name"><star/></set>
<set name="name_set">S</set>
</think>
Hello <srai>WHAT'S MY NAME?</srai>.
</template>
</category>
我想知道如何创建与此对话匹配的 AIML:
User: What's my name?
Bot: Right now I don't know. Tell me, what's your name?
User: Gandalf.
Bot: Hello Gandalf.
所以我尝试使用这两个类别。
<category>
<pattern>WHAT'S MY NAME?</pattern>
<template>
<condition name="name_set" value="S"> <get name="name"/></condition>
<condition name="name_set" value="">Right now I don't know.Tell me, what's your name?</condition>
</template>
</category>
<category>
<pattern>*</pattern>
<that>Right now I don't know.Tell me, what's your name?</that>
<template><think><set name="name"><star/></set><set name="name_set">S</set></think>Hello <srai>WHAT'S MY NAME?</srai>.</template>
</category>
但是我的机器人没有选择最后定义的模式,而是不断回答默认答案,使用 * 模式设置在另一个类别中但没有 that 标签。我做错了什么?
奖金问题:您可能已经注意到我正在使用 name_set 全局变量来查看我是否存储了用户名:empty表示NO,S表示YES。我使用这个 escamotage 是因为在 Program-O bot 中,AIML 验证器不允许我使用 exists 属性。如果有人知道更多解决问题的方法或有任何建议,请成为我的客人。
谢谢。
在我看来,类别中的 <that>
不正确。如果我是正确的,那指的是你的机器人输出的最后一句话。那么这可能更适合你。
<category>
<pattern>*</pattern>
<that>Tell me *</that>
<template>
<think>
<set name="name"><star/></set>
<set name="name_set">S</set>
</think>
Hello <srai>WHAT'S MY NAME?</srai>.
</template>
</category>