2017-01-30 16 views
1

Мы хотим построить Bot, который задаст вопросы пользователю, а затем запишет свой ответ. Это Q & A будет разумно сделано на основе ответов от пользователя.Chatbot с большой интеграцией БД

В настоящий момент у нас мало первоначальных вопросов;

  1. Там было много API, для создания бота, как api.ai, wit.ai, botkit, IBM Watson, рамки Bot Microsoft. Какой из них лучше всего с точки зрения разработки в Java или Node.Js или Python. Кроме того, с точки зрения контроля над данными и полного потока.

  2. Мы хотим предоставить вопросы из некоторых БД [RDBMS или NOSQL] в наш бот, поскольку в будущем это будет большим, что было бы лучше всего для этого.

  3. Мы хотим сохранить ответ пользователя в базе данных с помощью userid.

  4. Основываясь на ответе пользователя, хранящемся в БД, на вопросы, заданные ботом, мы хотим выполнить аналитику на нем.

Можете ли вы предложить, если это можно сделать с использованием любого из API Bot и который должен быть предпочтительнее.

Спасибо, Amit

ответ

1

В ваших 4 условиях, все это может быть сделано с помощью IBM Watson.

1: Использование диалог Служба для создания Chatbot, и вы можете сохранить все вводимые пользователем с context переменными.

IBM Watson представили некоторые примеры в Python, Node JS и Java SDK, просто нажмите на каком-либо языке программирования для проверки на примере и все коды.

2: Этого примера использование Cloudant DB (NoSQL) от разговора Простой ссылки Node.js, но вы можете использовать другие.

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: Все вызов разговора есть идентификатор, вы можете получить доступ к этому с context переменными. Пример (с IBM Watson разговора:

context.conversation_id 

4: Вы можете использовать другие службы от IBM Watson для него, но я рекомендую: AlchemyAPI или Discovery, зависит от того, что вы действительно собираетесь делать Но взять. посмотрите на то, что я уверен, что они помогли вам.

+1

Большое спасибо Sayuri. – Amit

+0

Добро пожаловать. –

+0

Ваш ответ очищает пару вещей для меня. У меня есть еще один вопрос, я был бы очень признателен, если бы вы может помочь на одном и том же. Я думаю, я могу добавить ИИ в эту службу разговоров, чтобы он мог задать вопрос в ответ пользователя. Однако, если я [администратор] хочет проанализировать ответ пользователей, ss Я бы потребовал добавить дополнительный аналитический движок поверх ответов пользователей в БД.У IBM Watson есть какая-либо услуга для аналитики ответов или мне нужно использовать отдельные технологии? – Amit