In deze sectie geven we enkele voorbeelden van uitgewerkte code responses.
We hebben een node gemaakt in de conversationele boom (zie functionele documentatie voor meer uitleg). Deze node hebben we geconfigureerd met de intentie 'weer-info' in de zin en een entiteit met de naam 'stad' in de zin. We willen het weer in de gegeven stad teruggeven aan de gebruiker. Als de gebruiker het weer in meerdere steden opvraagt, geven we enkel het weer in de eerste gegeven stad.
Voorbeeldzin: "Welk weer is het in Antwerpen?"
from responses.responsemessage import ResponseMessagefrom responses.responsedata import ResponseDatafrom responses.responsetype import ResponseTypefrom responses.response import Responsefrom responses.quickreply import Quickreplyimport requestsclass WeatherInfo(Response):baseUri = "http://api.openweathermap.org/data/2.5/weather"appId = "<JOUW APPID>"lang = "nl"units = "metric"def getResponse(self, sentence, context, options={}):cities = sentence.getEntitiesWithLabel("stad")city = cities[0]cityName = city.valueparameters = {"q": cityName,"appid": self.appId,"lang": self.lang,"units": self.units}result = requests.get(self.baseUri, params=parameters)if result.status_code == 200:weatherInfo = result.json()description = weatherInfo["weather"][0]["description"]message = "Het is momenteel {} in {}.".format(description,cityName.title())else:message = "Ik kan het weer in {} niet ophalen...".format(cityName.title())return ResponseMessage(data=[ResponseData(message=message,type=ResponseType.text)])
We hebben een node gemaakt in de conversationele boom. Deze node hebben we geconfigureerd met de intentie 'woonplaats' in de zin en de entiteit 'stad' in de zin. We willen deze stad opslaan in de contextvariabelen en dan een antwoord geven aan de gebruiker.
Voorbeeldzin: "Ik woon in Antwerpen."
from responses.responsemessage import ResponseMessagefrom responses.responsedata import ResponseDatafrom responses.responsetype import ResponseTypefrom responses.response import Responsefrom responses.quickreply import Quickreplyclass CityHandler(Response):def getResponse(self, sentence, context, options={}):cities = sentence.getEntitiesWithLabel("stad")city = cities[0]cityName = city.valuecontextVariables = context.contextVariablescontextVariables["city"] = cityNamereturn ResponseMessage(data=[ResponseData(message="Leuk! {} vind ik een hele mooie stad.".format(cityName.title()),type=ResponseType.text)],contextVariables=contextVariables)
We hebben een node gemaakt in de conversationele boom. Deze node hebben we geconfigureerd met de intentie 'leeftijd' in de zin en de systeementiteit 'number' in de zin. Indien de gebruiker te jong is, willen we hem naar een ander deel van de conversatie sturen via een bookmark.
Voorbeeldzin: "Ik ben 15 jaar."
from responses.responsemessage import ResponseMessagefrom responses.responsedata import ResponseDatafrom responses.responsetype import ResponseTypefrom responses.response import Responsefrom responses.quickreply import Quickreplyclass AgeHandler(Response):def getResponse(self, sentence, context, options={}):numbers = sentence.getEntitiesWithLabel("number")number = numbers[0]age = int(number.value)toBookmark = Noneif age < 18:toBookmark = "te jong"message = "Spijtig!"else:toBookmark = Nonemessage = "Goed! Dan gaan we verder."return ResponseMessage(data=[ResponseData(message=message,type=ResponseType.text)],toBookmark=toBookmark)