2017-01-30 4 views
1

Nous voulons construire un Bot, qui posera des questions à l'utilisateur, puis enregistrera leur réponse. Ce Q & A sera fait intelligemment en fonction des réponses de l'utilisateur.Chatbot avec grande intégration de base de données

Nous avons peu de questions initiales en ce moment;

  1. Il y a eu beaucoup de disponibles API pour la création de bot comme api.ai, wit.ai, botkit, IBM Watson, framework Microsoft Bot. Lequel est le meilleur du point de vue du développement en Java ou Node.Js ou Python. Aussi, du point de contrôle sur les données et de flux complet.

  2. Nous voulons fournir les questions de certains DB [SGBDR ou NOSQL] à notre Bot car il sera grand à l'avenir, ce qui serait mieux pour le même.

  3. Nous voulons stocker la réponse de l'utilisateur à la base de données avec userid.

  4. Basé sur la réponse de l'utilisateur stockée dans DB, aux questions posées par bot, nous voulons effectuer l'analyse sur elle.

Pouvez-vous suggérer, si cela peut être fait en utilisant l'un de l'API Bot et lequel devrait être préféré.

Merci, Amit

Répondre

1

Dans vos 4 conditions, tout peut être fait en utilisant IBM Watson.

1: Utilisation Service Conversation pour créer un Chatbot, et vous pouvez enregistrer toutes les entrées utilisateur avec des variables context.

IBM Watson a fourni quelques exemples dans Python, Node JS et Java SDK, il suffit de cliquer dans un langage de programmation pour vérifier l'exemple et tous les codes.

2: Cet exemple utilise Cloudant DB (NoSQL) de conversation simple lien Node.js, mais vous pouvez utiliser d'autres.

function log(input, output) { 
    if (logs) { 
    // If the logs db is set, then we want to record all input and responses 
    var id = uuid.v4(); 
    logs.insert({'_id': id, 'request': input, 'response': output, 'time': new Date()}); 
    } 
} 

if (cloudantUrl) { 
    // If logging has been enabled (as signalled by the presence of the cloudantUrl) then the 
    // app developer must also specify a LOG_USER and LOG_PASS env vars. 
    if (!process.env.LOG_USER || !process.env.LOG_PASS) { 
    throw new Error('LOG_USER OR LOG_PASS not defined, both required to enable logging!'); 
    } 
    // add basic auth to the endpoints to retrieve the logs! 
    var auth = basicAuth(process.env.LOG_USER, process.env.LOG_PASS); 
    // If the cloudantUrl has been configured then we will want to set up a nano client 
    var nano = require('nano')(cloudantUrl); 
    // add a new API which allows us to retrieve the logs (note this is not secure) 
    nano.db.get('car_logs', function(err) { 
    if (err) { 
     console.error(err); 
     nano.db.create('car_logs', function(errCreate) { 
     console.error(errCreate); 
     logs = nano.db.use('car_logs'); 
     }); 
    } else { 
     logs = nano.db.use('car_logs'); 
    } 
    }); 

3: Toutes les conversations d'appel ont une identité, vous pouvez accéder à cette avec la variable context. Exemple (Avec la conversation IBM Watson:

context.conversation_id 

4: Vous pouvez utiliser d'autres services d'IBM Watson, mais je recommande: AlchemyAPI ou Discovery, dépend de ce que vous allez vraiment faire, mais prendre un. Regardez les deux que je suis sûr qu'ils ont poussé à vous aider

+1

Merci beaucoup Sayuri – Amit

+0

De rien –

+0

Votre réponse efface quelques choses pour moi.J'ai encore une question, j'apprécierais vraiment si vous Je suppose que je peux ajouter l'IA à ce service de conversation afin qu'il puisse poser la question selon la réponse de l'utilisateur.Cependant, si [admin] veut analyser la réponse des utilisateurs ss je aurais besoin d'ajouter un moteur analytique supplémentaire au-dessus des réponses des utilisateurs dans DB.IBM Watson a-t-il un service d'analyse des réponses ou dois-je utiliser une technologie distincte? – Amit