Voorbeelden
In deze sectie geven we enkele voorbeelden van uitgewerkte code responses.

Gebruiker vraagt weer in een stad

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?"
1
from responses.responsemessage import ResponseMessage
2
from responses.responsedata import ResponseData
3
from responses.responsetype import ResponseType
4
from responses.response import Response
5
from responses.quickreply import Quickreply
6
import requests
7
8
9
class WeatherInfo(Response):
10
11
baseUri = "http://api.openweathermap.org/data/2.5/weather"
12
appId = "<JOUW APPID>"
13
lang = "nl"
14
units = "metric"
15
16
def getResponse(self, sentence, context, options={}):
17
cities = sentence.getEntitiesWithLabel("stad")
18
city = cities[0]
19
cityName = city.value
20
parameters = {
21
"q": cityName,
22
"appid": self.appId,
23
"lang": self.lang,
24
"units": self.units
25
}
26
result = requests.get(self.baseUri, params=parameters)
27
if result.status_code == 200:
28
weatherInfo = result.json()
29
description = weatherInfo["weather"][0]["description"]
30
message = "Het is momenteel {} in {}.".format(
31
description,
32
cityName.title()
33
)
34
else:
35
message = "Ik kan het weer in {} niet ophalen...".format(
36
cityName.title()
37
)
38
return ResponseMessage(
39
data=[
40
ResponseData(
41
message=message,
42
type=ResponseType.text
43
)
44
]
45
)
Copied!

De gebruiker geeft aan waar hij woont.

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."
1
from responses.responsemessage import ResponseMessage
2
from responses.responsedata import ResponseData
3
from responses.responsetype import ResponseType
4
from responses.response import Response
5
from responses.quickreply import Quickreply
6
7
8
class CityHandler(Response):
9
10
def getResponse(self, sentence, context, options={}):
11
cities = sentence.getEntitiesWithLabel("stad")
12
city = cities[0]
13
cityName = city.value
14
contextVariables = context.contextVariables
15
contextVariables["city"] = cityName
16
return ResponseMessage(
17
data=[
18
ResponseData(
19
message="Leuk! {} vind ik een hele mooie stad.".format(
20
cityName.title()
21
),
22
type=ResponseType.text
23
)
24
],
25
contextVariables=contextVariables
26
)
Copied!

De gebruiker geeft zijn leeftijd aan.

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."
1
from responses.responsemessage import ResponseMessage
2
from responses.responsedata import ResponseData
3
from responses.responsetype import ResponseType
4
from responses.response import Response
5
from responses.quickreply import Quickreply
6
7
8
class AgeHandler(Response):
9
10
def getResponse(self, sentence, context, options={}):
11
numbers = sentence.getEntitiesWithLabel("number")
12
number = numbers[0]
13
age = int(number.value)
14
toBookmark = None
15
if age < 18:
16
toBookmark = "te jong"
17
message = "Spijtig!"
18
else:
19
toBookmark = None
20
message = "Goed! Dan gaan we verder."
21
return ResponseMessage(
22
data=[
23
ResponseData(
24
message=message,
25
type=ResponseType.text
26
)
27
],
28
toBookmark=toBookmark
29
)
Copied!
Last modified 2yr ago