在AIML中,如何通过查看日历日期来使bot识别用户的生日?我试图在aiml中构建一个函数,它将存储用户生日的变量,并且在生日时,机器人应该通过使用" date“标记检查日期来向用户祝生日快乐。
这是我的代码
<category>
<pattern>MY BIRTHDAY IS ON <set>day</set> <set>month</set></pattern>
<template>Ok!
<think>
<set name="day"><star index="1" /></set>
<set name="getday"><date format="%d"/></set>
<set name="month"><star index="2" /></set>
<set name="getmonth"><date format="%B"/></set>
<set name="checkbirthday"><get name="getday"/><get name="getmonth"/></set>
</think>
</template>
</category>
<category>
<pattern>BIRTHDAYCHECK</pattern>
<template>
<think>
<set name="checkbday"><date format="%d %B"/></set>
<set name="checkbday">checkbirthday</set>
</think>
<condition name="checkbday">
<li value="checkbirthday">Happy birthday</li>
<li>No its not your birthday today</li>
</condition>
</template>
</category>如果我在11月7日告诉我的机器人,我的bday是11月7日,那么它就能正常工作了。
HUMAN: My birthday is on 7 november
ROBOT: Okay!
HUMAN: BIRTHDAYCHECK
ROBOT: Happy birthday但是如果我在11月7日告诉我的机器人我的bday是11月5日,那么它会输出相同的消息。
HUMAN: My birthday is on 5 november
ROBOT: Okay!
HUMAN: BIRTHDAYCHECK
ROBOT: Happy birthday我在期待这个输出
(11月7日)
HUMAN: My birthday is on 5 november
ROBOT: Okay!
HUMAN: BIRTHDAYCHECK
ROBOT: No its not your birthday today机器人将如何检查日期和祝生日快乐在出生日期?我现在很困惑!
发布于 2022-11-07 18:37:15
您的代码总是说生日快乐,因为您正在设置一个名为checkbday的谓词,该谓词的值为checkbirthday,然后查看它是否等于checkbirthday,当然它总是这样做的。
试试这个吧。您可能需要修改它来处理您的集合。
<category>
<pattern>MY BIRTHDAY IS ON * *</pattern>
<template>
Ok!
<think>
<set name="birthday"><star/> <star index="2"/></set>
</think>
</template>
</category>
<category>
<pattern>BIRTHDAYCHECK</pattern>
<template>
<think>
<set name="checkbday"><date format="%e %B"/></set>
</think>
<condition name="birthday">
<li><value><get name="checkbday"/></value>Happy birthday</li>
<li>No its not your birthday today</li>
</condition>
</template>
</category>https://stackoverflow.com/questions/74345709
复制相似问题