我正在做一个休闲的AIML项目,偶然遇到了pandorabots。我想知道是否有一种方法可以将用户输入的变量解析为其他语言(在本例中为python)或框架,以便我们可以通过其他第三方API通过任何模板进行进一步的操作?
例如,我想从用户那里获取一个日期,然后将其提供给google日历API。有没有办法提取'date‘变量并将其解析为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 )我探索了像mustache这样的模板引擎,但显然它不能与AIML (或者更确切地说是xml)对话。有没有人可以给我一个好的例子/教程来帮助我入门?
ps:我使用的是pandorabots API和python2.7
发布于 2016-07-05 20:13:09
在pyAIML接口中,查找关键字"predicates":
它返回使用
<set name="date"><star/></set>然后你就可以很容易地用python解析它了。
但这让我更接近这个问题:我需要AIML做什么?AIML在这里的附加值是什么?
发布于 2017-04-09 03:30:38
我也在寻找类似问题的信息。在@Berry Tsakala提供的答案的帮助下...我找到了解决我的问题的办法。以下是上述示例的详细和改进版本,case...that可能对其他有相同问题的人有用……
<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如果您发现任何错误或需要改进,请随时对答案进行任何更正。希望你能发现它是有用的:)
https://stackoverflow.com/questions/37628307
复制相似问题