2016-07-12 5 views
4

J'utilise Wit.ai pour mon chatbot. Le problème est que mon bot essaie toujours de répondre à quelque chose. Je ferai seulement ma réponse de bot si elle a réellement compris ce qui était demandé. Je sais que c'est possible, mais si j'ai un bot avec très peu de réponses, il semble qu'il choisit toujours l'une des réponses même si on lui demande quelque chose de complètement différent.Faire chatbot (wit.ai) répondre qu'il n'a pas une bonne réponse

J'imagine qu'il est possible de lui faire répondre quelque chose comme "Je suis désolé, je ne sais pas ce que vous demandez, je peux vous aider avec .....".

Peut-être que je devrais utiliser la valeur de confiance que je peux récupérer, et m'assurer qu'il est au-dessus d'un certain seuil?

Répondre

4

Actuellement, la meilleure façon de résoudre ce problème est de créer un ou plusieurs articles avec des requêtes hors champ, et d'ajouter une entité "catchall" avec la stratégie "trait" au message de l'utilisateur (plus de détails here) .

Dans le cas le plus simple, votre entité "catchall" aura une seule valeur. Vous pouvez avoir plusieurs valeurs, par exemple si vous voulez des réponses différentes pour différents types de demandes hors champ, mais gardez à l'esprit que plus votre bot est complexe, plus vous aurez besoin d'histoires et de données ça fonctionne correctement.

Nous travaillons également sur une solution plus élégante. Restez à l'écoute ici: https://github.com/wit-ai/wit

+0

On dirait que "Stories" sont obsolètes dans wit.ai - existe-t-il une solution différente? –

2

Une solution simple est de créer une histoire sans intention, avec le robot répondant à quelque chose comme « Je ne comprends pas »

Cette histoire sera lancé quand aucune autre intention est pertinente. Cela fonctionne plutôt bien selon notre expérience.

0

Vous pouvez créer une fonction pour gérer l'intention du message d'entrée utilisateur.

function handleIntent(intent, sender) { 
    switch(intent) { 
    case "jokes": 
     //Do Something 
     break; 
    case "greeting": 
     //Do Something 
     break; 
    case "identification": 
     //Do Something 
     break; 
    case "movie": 
     //Do Something 
     break; 
    default: // Any other intensions go here.. 
     sendTextMessage(sender, "I couldn't understand that one :(") 
     break; 

    } 
} 

Espérons que l'idée vous aide! :)