Comment on page
Bericht versturen
Om een bericht te versturen naar de chatbot, doe je een HTTP
POST
request naar de volgende endpoint:/chats/{id}/message
De
id
van de chatbot vind je in de URL van Oswald als je de chatbot configureert.
De payload van deze request moet er zo uitzien:
{
"message": "<HET BERICHT VAN DE GEBRUIKER>",
"environment": "<ENVIRONMENT VAN DE CHATBOT>",
"session": "<SESSION IDENTIFIER>",
"locale": "<LOCALE VAN DE CHATBOT>"
}
In de tabel hieronder wordt elke property van deze payload beschreven:
Naam | Type | Mogelijke waarden | Beschrijving |
message | String | Mag alles zijn | Het bericht dat de gebruiker naar de chatbot verstuurt. |
environment | String | "production" of "test" | De environment van de chatbot. In principe geef je hier altijd "production" mee. Dan zal je de gepubliceerde versie van de chatbot aanspreken. In uitzonderlijke gevallen kan je eventueel ook "test" meegeven om de development versie van de chatbot te testen. |
session | String | Mag alles zijn | De identifier van de sessie. Dit mag je zelf kiezen, maar houd deze uniek per sessie! Wanneer je dezelfde sessie identifier meegeeft, zal Oswald ervanuit gaan dat het over hetzelfde gesprek gaat. |
locale | String | Eender welke locale | De locale van de chatbot die je wil aanspreken. Als je chatbot geconfigureerd is in "nl-BE" , kan je deze meegeven. Indien je een locale meegeeft die niet geconfigureerd is in de chatbot, zal de chatbot terugvallen op zijn default locale. |
Wanneer je wil dat de chatbot zijn startbericht verstuurt om de conversatie te starten, geef je de volgende payload mee:
{
"environment": "production",
"session": "<SESSION IDENTIFIER>",
"locale": "<LOCALE VAN DE CHATBOT>"
}
Het is in Oswald mogelijk om metadata mee te geven aan de chatbot. Dit is een object waar je alles kan inzetten wat je wil. Een developer van Oswald kan deze via het
sentence
-object in een advanced code response lezen: sentence.metadata
. Zo kan je bijvoorbeeld extra informatie over de gebruiker meesturen naar de chatbot:{
"environment": "production",
"session": "12345",
"message": "Hallo!",
"locale": "nl-BE",
"metadata:" {
"firstname": "Michiel",
"lastname": "Vandendriessche"
}
}
Als reply op je
POST
request, krijg je een JSON-object in de volgende vorm:{
"data": [
{
"type": "text",
"message": "Hey! Wat is jouw naam?",
"url": null,
"image": null
}
],
"id": "5b964f67d98c420500a507c6",
"session": "12345",
"environment": "production",
"type": "out",
"takeover": null,
"quickReplies": null,
"locale": "nl-BE",
"metadata": {
"state": "start",
"label": "junk",
"sentence": "hallo",
"tokens": [
"smalltalk"
],
"entities": [
{
"label": "smalltalk",
"value": "hallo"
}
],
"context": {
"contextVariables": null,
"entities": [],
"label": null,
"dialogStack": []
},
"firedRules": [
{
"id": "5aa13e5910dacb0005283089",
"dialog": "5aa13e5910dacb0005283088",
"score": 20,
"label": "any => 'None': [{'_id': ObjectId('5aa13dcd10dacb0005283081'), 'label': 'smalltalk', 'useForCorrections': None, 'id': ObjectId('5aa13dcd10dacb0005283081'), 'chatbotId': ObjectId('5aa1258c10dacb0005283005')}] [{'_id': ObjectId('5aa13de310dacb0005283082'), 'value': {'nl-BE': 'hallo', 'en': 'hello'}, 'synonyms': [{'lang': 'nl-BE', 'text': 'hey'}, {'lang': 'nl-BE', 'text': 'jo'}, {'lang': 'nl-BE', 'text': 'yu'}, {'lang': 'nl-BE', 'text': 'ju'}, {'lang': 'nl-BE', 'text': 'goeiedag'}, {'lang': 'nl-BE', 'text': 'goededag'}, {'lang': 'nl-BE', 'text': 'goeiemorgen'}, {'lang': 'nl-BE', 'text': 'goedemorgen'}, {'lang': 'nl-BE', 'text': 'goeiemiddag'}, {'lang': 'nl-BE', 'text': 'goedemiddag'}, {'lang': 'nl-BE', 'text': 'goeieavond'}, {'lang': 'nl-BE', 'text': 'goedeavond'}, {'lang': 'nl-BE', 'text': 'juw'}, {'lang': 'nl-BE', 'text': 'juuw'}, {'lang': 'nl-BE', 'text': 'hello'}, {'lang': 'nl-BE', 'text': 'hi'}, {'text': 'hi', 'lang': 'en'}, {'text': 'hi there', 'lang': 'en'}, {'text': 'good morning', 'lang': 'en'}, {'text': 'good afternoon', 'lang': 'en'}, {'text': 'good evening', 'lang': 'en'}, {'text': 'hey', 'lang': 'en'}, {'text': 'yow', 'lang': 'en'}, {'text': 'yo', 'lang': 'en'}, {'text': 'jow', 'lang': 'en'}, {'text': 'jo', 'lang': 'en'}], 'useForCorrections': True, 'id': ObjectId('5aa13de310dacb0005283082'), 'chatbotId': ObjectId('5aa1258c10dacb0005283005'), 'labelId': ObjectId('5aa13dcd10dacb0005283081')}] => any"
}
],
"responseId": "5aa13e5910dacb0005283089",
"dialogId": "5aa13e5910dacb0005283088",
"times": {
"preprocessing": 0.39,
"labeling": 3.74,
"context": 1.66,
"response_time": 52.45,
"error_time": 0
},
"estimates": [
{
"label": "delivery",
"probability": 0.03134429808020906
},
{
"label": "takeover",
"probability": 0.030097189565634896
},
{
"label": "forget",
"probability": 0.027379667383734985
},
{
"label": "joke",
"probability": 0.0234291049512257
},
{
"label": "login",
"probability": 0.015157726679018692
},
{
"label": "documents",
"probability": 0.013203320682452972
}
],
"variables": null
},
"processed": "58.48 milliseconds",
"time": 64,
"queue": "oswald-out-df1fc523-1492-4ba0-9f30-81518bcda343",
"chatbotId": "5aa1258c10dacb0005283005",
"chatbotName": "Demo chatbot"
}
Hier vind je vele informatie over de gestuurde request. De belangrijkste property is
data
. Dit is een array van objecten. Elk object heeft een type en andere properties. Deze objecten moeten gevisualiseerd worden in de frontend. Dit kunnen tekstballonnen, afbeeldingen, url's, carousels... zijn.Last modified 4yr ago