2016-07-16 2 views
0

J'essaie de créer mon premier chatbot que je veux utiliser pour mon projet de domotique.De python à AIML

Cela peut sembler stupide et peut-être que ce n'est pas le chemin à parcourir, mais j'aimerais avoir votre opinion et peut-être un moyen de le faire fonctionner.

Je veux être en mesure de demander à mon robot quel est mon emplacement et je veux qu'il exécute mon code python qui renvoie mon emplacement actuel, puis obtenir une réponse avec cela.

Ceci est mon 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 

Maintenant, je ne sais comment obtenir ceci dans mon fichier AIML.

<?xml version="1.0" encoding="UTF-8"?> 
<aiml> 
<category> 
<pattern>WHAT IS MY LOCATION</pattern> 
<template>??????</template> 
</category> 

</aiml> 

J'espère que cela un certain sens :)

Merci pour l'aide!

Répondre

0

Si votre emplacement est Chicago, vous pouvez utiliser kernel.setPredicate("location", "Chicago") en Python, puis mettez la valeur en AIML comme ceci:

<category> 
<pattern>WHAT IS MY LOCATION</pattern> 
<template>Your location: <get name="location"></get></template> 
</category> 

Découvrez un examples here.