Comment puis-je détecter un texte brut ou un texte de forme libre dans le robot de discussion en utilisant IBM Watson comme exemple lorsque l'utilisateur dit "obtenir un ticket avec l'identifiant KMN849SDA" que "KMN849SDA" est l'ID de ticket, s'il y a un moyen possible de le faire, sinon comment puis-je le gérer avec le codagecomment détecter du texte brut ou une forme libre dans chatbot en utilisant ibm watson
0
A
Répondre
0
dans ce cas, SI votre ID a une valeur par défaut, par exemple: chaque ID de démarrage avec KMN, vous pouvez utiliser REGEX
pour obtenir l'ID et enregistrer dans votre variable context
dans le service de conversation Watson.
Par exemple, mon regex maintenant essayer de trouver 11 numéros:
input.text.find('^[^\d]*[\d]{11}[^\d]*$')
Et pour enregistrer cette valeur dans une variable context
, vous pouvez utiliser:
"context": {
"ticketID": "<?input.text.extract('^[^\\d]*[\\d]{11}[^\\d]*$',0)?>"
}
Pour utiliser dans votre application, vous devez accéder au retour de la méthode d'appel de message de conversation, quelque chose comme:
//add inside your call, like:
conversation.message(payload, function (err, data) {
console.log(data.context.ticketID); //your ticketID here
if (err) {
return res.status(err.code || 500).json(err);
}
updateMessage(payload, data, req, res);
});
});
Et pour utiliser dans votre application pour vérifier avec l'utilisateur si ce protocole est correct, vous pouvez utiliser:
if bot recognizes input.text.find('^[^\d]*[\d]{11}[^\d]*$') response "Your ticket is is $tickedID?"