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:
1
{
2
"message": "<HET BERICHT VAN DE GEBRUIKER>",
3
"environment": "<ENVIRONMENT VAN DE CHATBOT>",
4
"session": "<SESSION IDENTIFIER>",
5
"locale": "<LOCALE VAN DE CHATBOT>"
6
}
Copied!
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.

Startbericht versturen

Wanneer je wil dat de chatbot zijn startbericht verstuurt om de conversatie te starten, geef je de volgende payload mee:
1
{
2
"environment": "production",
3
"session": "<SESSION IDENTIFIER>",
4
"locale": "<LOCALE VAN DE CHATBOT>"
5
}
Copied!

Metadata versturen

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:
1
{
2
"environment": "production",
3
"session": "12345",
4
"message": "Hallo!",
5
"locale": "nl-BE",
6
"metadata:" {
7
"firstname": "Michiel",
8
"lastname": "Vandendriessche"
9
}
10
}
Copied!

Een bericht ontvangen

Als reply op je POST request, krijg je een JSON-object in de volgende vorm:
1
{
2
"data": [
3
{
4
"type": "text",
5
"message": "Hey! Wat is jouw naam?",
6
"url": null,
7
"image": null
8
}
9
],
10
"id": "5b964f67d98c420500a507c6",
11
"session": "12345",
12
"environment": "production",
13
"type": "out",
14
"takeover": null,
15
"quickReplies": null,
16
"locale": "nl-BE",
17
"metadata": {
18
"state": "start",
19
"label": "junk",
20
"sentence": "hallo",
21
"tokens": [
22
"smalltalk"
23
],
24
"entities": [
25
{
26
"label": "smalltalk",
27
"value": "hallo"
28
}
29
],
30
"context": {
31
"contextVariables": null,
32
"entities": [],
33
"label": null,
34
"dialogStack": []
35
},
36
"firedRules": [
37
{
38
"id": "5aa13e5910dacb0005283089",
39
"dialog": "5aa13e5910dacb0005283088",
40
"score": 20,
41
"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"
42
}
43
],
44
"responseId": "5aa13e5910dacb0005283089",
45
"dialogId": "5aa13e5910dacb0005283088",
46
"times": {
47
"preprocessing": 0.39,
48
"labeling": 3.74,
49
"context": 1.66,
50
"response_time": 52.45,
51
"error_time": 0
52
},
53
"estimates": [
54
{
55
"label": "delivery",
56
"probability": 0.03134429808020906
57
},
58
{
59
"label": "takeover",
60
"probability": 0.030097189565634896
61
},
62
{
63
"label": "forget",
64
"probability": 0.027379667383734985
65
},
66
{
67
"label": "joke",
68
"probability": 0.0234291049512257
69
},
70
{
71
"label": "login",
72
"probability": 0.015157726679018692
73
},
74
{
75
"label": "documents",
76
"probability": 0.013203320682452972
77
}
78
],
79
"variables": null
80
},
81
"processed": "58.48 milliseconds",
82
"time": 64,
83
"queue": "oswald-out-df1fc523-1492-4ba0-9f30-81518bcda343",
84
"chatbotId": "5aa1258c10dacb0005283005",
85
"chatbotName": "Demo chatbot"
86
}
Copied!
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 2yr ago