Antwoordprioriteit

Soms is het mogelijk dat er meerdere nodes getriggerd kunnen worden als antwoord op een bepaalde vraag. Bekijk de volgende twee scenario's:

Bekijk nu de volgende conversatie:

  • Gebruiker: "Hallo!"

  • Bot: "Goeiedag!"

  • Bot: "Wat heb je vandaag gedronken?"

  • Gebruiker: "Hoeveel suiker zit er in cola?"

Wat moet de chatbot nu antwoorden? Er zijn twee mogelijkheden:

  • "Dat is niet zo gezond!" (op basis van scenario 1)

  • "In cola zit veel suiker!" (op basis van scenario 2)

Als ontwikkelaar heb je zelf in de hand wat de chatbot hierop moet antwoorden. Je kan in de bovenste node van scenario 1 configureren wat de antwoordprioriteit is. Er zijn drie mogelijkheden:

Antwoordprioriteit

Beschrijving

Kinderen eerst

Kijk eerst naar de kinderen van de huidige node. Als er daar geen node gevonden wordt, kijk dan naar andere mogelijke root nodes van scenario's

Enkel kinderen

Kijk eerst naar de kinderen van de huidige node. Als er daar geen node gevonden wordt, geef dan het 'niet begrepen'-antwoord.

Score antwoord

Kijk naar de kinderen van de huidige node én naar andere mogelijke root nodes van scenario's. Kies de node met de hoogste score. Deze score wordt berekend op basis van de specificiteit van de inputconfiguratie van de node. Hoe meer restricties op de input van de node, hoe hoger de score.

We bekijken terug bovenstaande scenario's:

Antwoordprioriteit staat op "Kinderen eerst" of op "Enkel kinderen":

  • Gebruiker: "Hallo!"

  • Bot: "Goeiedag!"

  • Bot: "Wat heb je vandaag gedronken?"

  • Gebruiker: "Hoeveel suiker zit er in cola?"

  • Bot: "Dat is niet zo gezond."

De bot heeft immers in de kinderen van de root node van het eerste scenario een geldig antwoord gevonden.

Antwoordprioriteit staat op "Score antwoord"

  • Gebruiker: "Hallo!"

  • Bot: "Goeiedag!"

  • Bot: "Wat heb je vandaag gedronken?"

  • Gebruiker: "Hoeveel suiker zit er in cola?"

  • Bot: "In cola zit veel suiker!"

De bot zoekt immers naar de meest specifieke node die een geldig antwoord bevat. In dit geval is de node "#sugar @drinks:cola" specifieker dan "@drinks:cola".

We bekijken nog een voorbeeld:

Antwoordprioriteit staat op "Enkel kinderen"

  • Gebruiker: "Hallo!"

  • Bot: "Goeiedag!"

  • Bot: "Wat heb je vandaag gedronken?"

  • Gebruiker: "Bedankt."

  • Bot: "Dat heb ik niet begrepen."

De bot vindt immers tussen de kinderen geen geldig antwoord op "Bedankt.".

Antwoordprioriteit staat op "Kinderen eerst" of op "Score antwoord"

  • Gebruiker: "Hallo!"

  • Bot: "Goeiedag!"

  • Bot: "Wat heb je vandaag gedronken?"

  • Gebruiker: "Bedankt."

  • Bot: "Dat is graag gedaan!"

In dit laatste geval kan het gesprek wel nog verder gezet worden in het oorspronkelijke scenario:

  • Gebruiker: "Hallo!"

  • Bot: "Goeiedag!"

  • Bot: "Wat heb je vandaag gedronken?"

  • Gebruiker: "Bedankt."

  • Bot: "Dat is graag gedaan!"

  • Gebruiker: "Een water."

  • Bot: "Hmmm, lekker!"

Je kan dus uit het scenario vallen om er daarna weer terug in te komen.

Tenslotte kan je de standaard 'niet begrepen'-tekst nog aanpassen voor een specifieke node met kinderen. Als er geen antwoord gevonden wordt, zal deze tekst gegeven worden aan de gebruiker. Deze tekst is dan specifiek in de context van de node in kwestie en kan zo duidelijkere informatie geven aan de gebruiker.

Als er verschillende mogelijke antwoorden zijn die de chatbot kan geven voor een gekozen antwoordprioriteit die allemaal even specifiek zijn, gaat de chatbot random een antwoord kiezen tussen de mogelijke antwoorden.