Belangrijke classen
In de getResponse-methode heb je toegang tot twee interessante parameters:
    sentence: instance van de Sentence-klasse
    context: instance van de Context-klasse
Deze parameters kunnen nuttige informatie bevatten om een antwoord te formuleren.
Verder zijn er nog interessante klassen, zoals ResponseMessage, ResponseData, Quickreply en Entity. In deze sectie zullen de parameters en methodes van deze klassen overlopen.

Sentence

De Sentence-klasse is een voorstelling van de input van de gebruiker. Je kan zelf geen instance van de klasse aanmaken. Het heeft de volgende eigenschappen en methodes:

Eigenschappen

Naam
Type
Beschrijving
session
str
de sessie-identifier
metadata
dict
vrije variabelen die meegegeven kunnen worden in de input
label
str
de intentie van de zin
sentence
str
de originele zin die gebruiker gegeven heeft, alles lowercase
tokens
list(str)
lijst van tokens (woorden) in de zin
user_input
str
de originele zin die de gebruiker ingegeven heeft (volledig originele input)

Methodes

getEntities()

    Parameters: geen
    Return type: list(Entity)
Geeft een lijst van alle entiteiten in de zin terug. Geeft een lege lijst terug wanneer er geen entiteiten zijn.

getEntityLabels()

    Parameters: geen
    Return type: list(str)
Geeft een lijst van alle namen van entiteiten in de zin terug. Geeft een lege lijst terug wanneer er geen entiteiten zijn.

getEntityValues()

    Parameters: geen
    Return type: list(str)
Geeft een lijst van alle waarden van de entiteiten in de zin terug. Geeft een lege lijst terug wanneer er geen entiteiten zijn.

getEntitiesWithLabel(label)

    Parameters:
      label (str): de naam van de entiteiten die je wil opvragen
    Return type: list(Entity)
Geeft een lijst van alle entiteiten met een specifieke naam in de zin terug. Geeft een lege lijst terug wanneer er geen entiteiten met deze naam zijn.

getEntitiesWithLabelAndValue(label, value)

    Parameters:
      label (str): de naam van de entiteiten die je wil opvragen
      value (str): de waarde van entiteiten die je wil opvragen
    Return type: list(Entity)
Geeft een lijst van alle entiteiten met een specifieke naam en een specifieke waarde in de zin terug. Geeft een lege lijst terug wanneer er geen entiteiten met deze naam en deze waarde zijn.

getEntitiesAndPositionsWithLabel(label)

    Parameters:
      label (str): de naam van de entiteiten die je wil opvragen
    Return type: dict
Geeft een dictionary terug met als keys een str die de positie van de entiteit aanduidt en als values een lijst van entiteiten (Entity) met een specifieke naam die op die positie staan in de zin. Geeft een lege dictionary terug als er geen entiteiten met deze naam zijn. De str die de positie aanduidt, heeft het volgende formaat: startIndex - eindIndex. Bijvoorbeeld:
Welk weer is het vandaag in Antwerpen?
1
{
2
"5 - 5": [(datum, vandaag)],
3
"7 - 7": [(stad, antwerpen)]
4
}
Copied!

Context

De Context-klasse is een voorstelling van de huidige context van de conversatie. Je kan zelf geen instance van de klasse aanmaken. Het heeft de volgende eigenschappen en methodes:

Eigenschappen

Naam
Type
Beschrijving
label
str
de intentie in de context (= de intentie van de vorige zin)
contextVariables
dict
vrije variabele in de context
environment_variables
dict
de environment variabelen van de chatbot

Methodes

getEntities()

    Parameters: geen
    Return type: list(Entity)
Geeft een lijst van alle entiteiten in de context terug. Geeft een lege lijst terug wanneer er geen entiteiten zijn.

getEntityLabels()

    Parameters: geen
    Return type: list(str)
Geeft een lijst van alle namen van entiteiten in de context terug. Geeft een lege lijst terug wanneer er geen entiteiten zijn.

getEntityValues()

    Parameters: geen
    Return type: list(str)
Geeft een lijst van alle waarden van de entiteiten in de context terug. Geeft een lege lijst terug wanneer er geen entiteiten zijn.

getEntitiesWithLabel(label)

    Parameters:
      label (str): de naam van de entiteiten die je wil opvragen
    Return type: list(Entity)
Geeft een lijst van alle entiteiten met een specifieke naam in de context terug. Geeft een lege lijst terug wanneer er geen entiteiten met deze naam zijn.

getEntitiesWithLabelAndValue(label, value)

    Parameters:
      label (str): de naam van de entiteiten die je wil opvragen
      value (str): de waarde van entiteiten die je wil opvragen
    Return type: list(Entity)
Geeft een lijst van alle entiteiten met een specifieke naam en een specifieke waarde in de context terug. Geeft een lege lijst terug wanneer er geen entiteiten met deze naam en deze waarde zijn.

add_entity(label, value=None)

    Parameters:
      label (str): de naam van de entiteit die je wil toevoegen
      value (str): optioneel, de waarde van de entiteit die je wil toevoegen
    Return type: None
Voegt het label en eventueel de waarde toe aan de context.

add_intent(label)

    Parameters:
      label (str): de naam van de intentie die je wil toevoegen
    Return type: None
Voegt de intentie toe aan de context.

remove_entity(label, value=None)

    Parameters:
      label (str): de naam van de entiteit die je wil verwijderen
      value (str): optioneel, de waarde van de entiteit die je wil verwijderen
    Return type: None
Verwijdert alle entiteiten met het gegeven label uit de context. Als er ook een waarde gegeven is, worden enkel de entiteiten verwijderd waar zowel het label als de waarde overeenkomen.

remove_intent(label)

    Parameters:
      label (str): de naam van de intentie die je wil verwijderen
    Return type: None
Verwijdert de intentie met het gegeven label uit de context.

Entity

De Entity-klasse stelt een entiteit voor. Je kan zelf geen instance van de klasse aanmaken.

Eigenschappen

Naam
Type
Beschrijving
label
str
De naam van de entiteit
value
str
De waarde van de entiteit

ResponseType

ResponseTypeis een enum met de volgende mogelijk waarden:
Naam
Beschrijving
text
Een tekstballon
url
Een knop met een externe link
image
Een afbeelding

ResponseData

De ResponseData-klasse stelt een individueel element in een bericht voor, bijvoorbeeld een tekstballon of een afbeelding. Het is de bedoeling dat je hiervan één of meerdere instances aanmaakt en deze aan de ResponseMessage meegeeft.

Parameters om object te initialiseren

Naam
Type
Vereist
Beschrijving
message
str
Nee
Het bericht in de antwoorddata
type
ResponseType
Nee
Het type van de antwoorddata
url
str
Nee
De url in de antwoorddata (bij een url-type)
image
str
Nee
De url van een afbeelding in de antwoorddata (bij een image-type)

Opmerkingen

    Standaard zijn parameters niet vereist, toch zijn er enkele restricties:
      Wanneer je een type tekst geeft, is een message vereist
      Wanneer je een type image geeft, is een image url vereist
      Wanneer je type url geeft, is een url vereist

Voorbeelden

1
responseData = ResponseData(
2
message="Hallo! Waar kan ik je mee helpen?",
3
type=ResponseType.text
4
)
Copied!
1
responseData = ResponseData(
2
message="Klik hier voor meer info!",
3
type=ResponseType.url,
4
url="https://www.jouwwebsite.be/meerinfo"
5
)
Copied!
1
responseData = ResponseData(
2
type=ResponseType.image,
3
image="https://www.jouwwebsite.be/image.png"
4
)
Copied!

Quickreply

De Quickreply-klasse is een voorstelling van een knop waar de gebruiker om kan klikken om snel een voorgedefinieerd bericht naar de chatbot te sturen. Je kan dit zelf aanmaken en meegeven aan de ResponseMessage.

Parameters om object te initialiseren

Naam
Type
Vereist
Beschrijving
text
str
Ja
De tekst op de knop
action
str
Nee
De actie achter knop (= de tekst die naar de chatbot gestuurd wordt)

Voorbeelden

1
quickreplies = [
2
Quickreply(text="Ja!"),
3
Quickreply(text="Nee...")
4
]
Copied!

ResponseMessage

De ResponseMessage-klasse is een voorstelling van een volledig bericht dat teruggeven wordt aan de gebruiker en acties die eraan verbonden zijn. Het is de bedoeling dat je hiervan een instance aanmaakt en teruggeeft in de getResponse-methode.

Parameters om object te initialiseren

Naam
Type
Vereist
Beschrijving
data
list(ResponseData)
Ja
Een lijst van ResponseData-objecten
contextVariables
dict
Nee
Een dictionary met vrije variabelen die in de context opgeslagen worden
responsePriority
str
Nee
Een string die de prioriteit van het volgende antwoord aangeeft: "children-first" (default), "children-only", "response-score"
ifNoResponseFound
str
Nee
Het bericht dat aan de gebruiker gegeven wordt als er hierna geen antwoord gevonden wordt
toBookmark
str
Nee
De bookmark waarnaar er gesprongen wordt na het geven van dit antwoord
tags
dict
Nee
Een dictionary die de toe te voegen en te verwijderen tags definieert als lijsten.
Bvb: {'add': ['foo', 'bar'], 'remove': ['old']}
stateChange
str
Nee
De toestand waarin de chatbot valt na het geven van dit antwoord
metadata
dict
Nee
Een dictionary met vrije variabelen die teruggegeven worden aan de gebruiker

Opmerkingen

    Indien je geen contextVariables meegeeft, dan blijven de vorige contextVariables behouden
    Indien waarde van toBookmark geen bookmark is, zal het systeem crashen

Voorbeelden

1
responseMessage = ResponseMessage(
2
data=[
3
ResponseData(
4
message="Hallo daar!",
5
type=ResponseType.text
6
),
7
ResponseData(
8
message="Mijn naam is Oswald.",
9
type=ResponseType.text
10
),
11
ResponseData(
12
message="Hoe kan ik je helpen?",
13
type=ResponseType.text
14
)
15
],
16
quickreplies=[
17
Quickreply(
18
text="Wachtwoord vergeten",
19
action="Ik ben mijn wachtwoord vergeten."
20
),
21
Quickreply(
22
text="Gebruikersnaam vergeten",
23
action="Ik ben mijn gebruikersnaam vergeten."
24
)
25
]
26
)
Copied!
1
responseMessage = ResponseMessage(
2
data=[
3
ResponseData(
4
message="Bekijk deze afbeelding:",
5
type=ResponseType.text
6
),
7
ResponseData(
8
image="https://www.jouwwebsite.be/afbeelding.png",
9
type=ResponseType.image
10
),
11
ResponseData(
12
message="Welke score zou je hieraan geven (1-3)?",
13
type=ResponseType.text
14
)
15
],
16
quickreplies=[
17
Quickreply(
18
text="1"
19
),
20
Quickreply(
21
text="2"
22
),
23
Quickreply(
24
text="3"
25
)
26
],
27
responsePriotity="children-only",
28
ifNoResponseFound="Dat is geen geldige score!"
29
)
Copied!
Last modified 11mo ago