我正在尝试创建我想要用于家庭自动化项目的第一个聊天机器人。
这可能听起来很愚蠢,也许这不是可行的方法,但我希望得到你的意见,也许还有办法让它发挥作用。
我希望能够询问我的机器人我的位置是什么,我希望它运行我的python代码,返回我当前的位置,然后得到答案。
这是我的 location.py
from pyicloud import PyiCloudService
import googlemaps
import aiml
api_key = "##################3"
gmaps = googlemaps.Client(key= api_key)
api = PyiCloudService('###email####','###password###')
longitude = api.iphone.location()['longitude']
latitude = api.iphone.location()['latitude']
current_location = gmaps.reverse_geocode((latitude, longitude))
street = current_location[0]['address_components'][1]['long_name']
house_number = current_location[0]['address_components'][0]['long_name']
def get_location():
current_location = ('%s,%s' % (street, house_number))
return current_location
现在我不知道怎么把它放到我的aiml文件中。
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<category>
<pattern>WHAT IS MY LOCATION</pattern>
<template>??????</template>
</category>
</aiml>
我希望这有一定道理:)
感谢您的帮助!
答案 0 :(得分:0)
如果您的位置是芝加哥,您可以在Python中使用kernel.setPredicate("location", "Chicago")
,然后在AIML中输出值,如下所示:
<category>
<pattern>WHAT IS MY LOCATION</pattern>
<template>Your location: <get name="location"></get></template>
</category>