我正在开展AIML休闲项目并遇到了潘多拉博士。我想知道是否有办法将用户输入的变量解析为其他语言(在本例中为python)或框架,以便我们可以通过任何模板进行其他第三方API的进一步操作?
例如,我想从用户那里获取日期,然后将其提供给Google日历API。有没有办法提取“日期”变量并将其解析为Python(或任何其他语言)的Google日历API?
<category><pattern># 1 MAY 2016 #</pattern>
<think>{{ date }}</think> #is there a way to parse "1 May 2016" as a
#variable date in python?
<template>...
</template>
</category>
最终,我想要实现的目标将是这样的对话:
User: Hi bot, could you check if I am available on 1 May 2016?
Bot: Nope, you have a gathering at Mike's! #(<--- Response rendered after
checking user's schedule on 1 May via google calendar )
我像小胡子一样探索模板引擎,但显然它不会与AIML(或者更确切地说是xml)交谈。是否有人可以指出我可以帮助我开始的好示例/教程?
ps:我正在使用pandorabots API和python2.7
答案 0 :(得分:2)
在pyAIML API中,查找关键字&#34;谓词&#34;:
它返回使用
设置的谓词<set name="date"><star/></set>
然后你可以用python轻松解析它。
但这让我更接近这个问题:我需要AIML做什么? AIML在这里增加了什么价值?
答案 1 :(得分:1)
我也在寻找类似问题的信息。借助@Berry Tsakala提供的答案......我能够找到解决问题的方法。以下是上述示例案例的详细和改进版本......对于具有相同问题的其他人可能会有用......
<category><pattern>Hi bot, could you check if I am available on *</pattern>
<template>Let me check your schedules on <set name="date"><star/></set>
</template>
</category>
然后在你的python脚本中,你可以将它存储到变量中,作为
import aiml
kernel = aiml.Kernel()
kernel.learn("std-startup.xml")
kernel.respond("load aiml b")
while True:
try:
kernel.respond(raw_input("Enter your message >> "))
appointment_date = kernel.getPredicate('date')
print appointment_date
如果您发现任何错误,或者需要进行任何改进,请随时对答案进行任何更正。希望你觉得它很有用:)