Donc la première chose à comprendre est que la conversation a de bons et de mauvais cas d'utilisation.
Si votre utilisateur peut entrer des données structurées, il est préférable d'utiliser un formulaire. Que ce soit dans la fenêtre de conversation (comme Watson Virtual Agent), ou un formulaire sur votre site/application. Donc, votre exemple ne ressemble pas à un bon cas d'utilisation.
Cela dit ...
Avec votre exemple, il est possible que si vos éléments principaux sont des entités, et vous Haver entité système @sys-number
activé. Vous pouvez ensuite vérifier le tableau entities
pour voir la distance entre eux.
Exemple
créé les entités suivantes.
@PizzaType
@PizzaTopping
@Drinks
Quand je demande à votre question, l'objet entities
renvoie les éléments suivants:
[
{
"entity": "Drinks",
"location": [
104,
114
],
"value": "diet coke",
"confidence": 1
},
{
"entity": "PizzaType",
"location": [
72,
81
],
"value": "Pepperoni",
"confidence": 1
},
{
"entity": "Drinks",
"location": [
123,
128
],
"value": "beer",
"confidence": 1
},
{
"entity": "PizzaType",
"location": [
88,
94
],
"value": "Regina",
"confidence": 1
},
{
"entity": "PizzaTopping",
"location": [
46,
52
],
"value": "cheese",
"confidence": 1
},
{
"entity": "PizzaType",
"location": [
15,
24
],
"value": "Margarita",
"confidence": 1
},
{
"entity": "sys-number",
"location": [
13,
14
],
"value": "2",
"confidence": 1,
"metadata": {
"numeric_value": 2
}
},
{
"entity": "sys-number",
"location": [
31,
34
],
"value": "1",
"confidence": 1,
"metadata": {
"numeric_value": 1
}
},
{
"entity": "sys-number",
"location": [
101,
102
],
"value": "3",
"confidence": 1,
"metadata": {
"numeric_value": 3
}
},
{
"entity": "sys-number",
"location": [
119,
122
],
"value": "2",
"confidence": 1,
"metadata": {
"numeric_value": 2
}
}
]
Un résumé qui est:
Vous pouvez voir tout de suite il y a quelques problèmes là-bas. Si l'utilisateur ne mentionne pas de numéro, vous devez en tenir compte. Aussi quelque chose comme cette question le briserait aussi (à moins que vous ne vous en occupiez).
I would like margarita pizzas (two).
Mais le point important est de construire votre système avec des questions représentatives. Votre exemple de question ne peut jamais être demandé par un utilisateur final, ou vous pouvez même façonner la conversation pour empêcher une telle entrée.
Avez-vous vérifié les boîtes à outils et les SDK pour Watson Conversation? Vous pouvez effectuer des pré et post-traitement d'entrée, utiliser le service NLU et d'autres pour annoter et augmenter l'entrée, passer des variables dans et hors du traitement de dialogue. –