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

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?

{
    "5 - 5": [(datum, vandaag)],
    "7 - 7": [(stad, antwerpen)]
}

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

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

ResponseType

ResponseTypeis een enum met de volgende mogelijk waarden:

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

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

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

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

Voorbeelden

quickreplies = [
    Quickreply(text="Ja!"),
    Quickreply(text="Nee...")
]

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

Opmerkingen

  • Indien je geen contextVariables meegeeft, dan blijven de vorige contextVariables behouden

  • Indien waarde van toBookmark geen bookmark is, zal het systeem crashen

Voorbeelden

responseMessage = ResponseMessage(
                          data=[
                            ResponseData(
                                message="Hallo daar!",
                                type=ResponseType.text
                            ),
                            ResponseData(
                                message="Mijn naam is Oswald.",
                                type=ResponseType.text
                            ),
                            ResponseData(
                                message="Hoe kan ik je helpen?",
                                type=ResponseType.text
                            )
                        ],
                        quickreplies=[
                            Quickreply(
                                text="Wachtwoord vergeten",
                                action="Ik ben mijn wachtwoord vergeten."
                            ),
                            Quickreply(
                                text="Gebruikersnaam vergeten",
                                action="Ik ben mijn gebruikersnaam vergeten."
                            )
                        ]
                    )
responseMessage = ResponseMessage(
                        data=[
                            ResponseData(
                                message="Bekijk deze afbeelding:",
                                type=ResponseType.text
                            ),
                            ResponseData(
                                image="https://www.jouwwebsite.be/afbeelding.png",
                                type=ResponseType.image
                            ),
                            ResponseData(
                                message="Welke score zou je hieraan geven (1-3)?",
                                type=ResponseType.text
                            )
                        ],
                        quickreplies=[
                            Quickreply(
                                text="1"
                            ),
                            Quickreply(
                                text="2"
                            ),
                            Quickreply(
                                text="3"
                            )
                        ],
                        responsePriotity="children-only",
                        ifNoResponseFound="Dat is geen geldige score!"
                    )

Last updated