2017-01-30 96 views
1

我们想要构建一个Bot,它会向用户提问,然后 将记录他们的回应。这个Q & A将基于来自用户的响应而智能地完成。与大型数据库集成的Chatbot

我们此时有几个最初的问题;

  1. 已经有很多API可用于bot创建,如api.ai,wit.ai,botkit,IBM Watson,Microsoft Bot框架。从Java或Node.Js或Python的开发角度来看,哪一个最好。此外,从控制数据和完整流程的角度来看。

  2. 我们想提供一些数据库[RDBMS或NOSQL]给我们的机器人的问题,因为它将来会很大,哪一个api最适合我们。

  3. 我们想用userid存储用户对数据库的响应。

  4. 根据存储在数据库中的用户响应,根据bot提出的问题,我们希望对其执行分析。

如果可以使用Bot API中的任何一种,并且应该首选哪一种,你能建议吗?

谢谢 阿米特

回答

1

在你的四个条件,都可以使用IBM沃森来完成。

1: 使用会话业务用于创建一个聊天机器人,你可以保存所有的用户输入与context变量。

IBM Watson在Python,Node JSJava SDK中提供了一些示例,只需点击一些编程语言查看示例和所有代码即可。

2: 本示例使用来自Conversation Simple Node.js链接的Cloudant DB(nosql),但您可以使用其他。

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:所有通话谈话有一定的ID,您可以用context变量访问此。例如(在IBM沃森谈话:

context.conversation_id 

4:您可以使用其他的服务从IBM沃森它,但我建议:AlchemyAPI或发现,取决于你真正要做的,但需要。看看这两个,我敢肯定他们倾向于帮助你

+1

谢谢你Sayuri。 – Amit

+0

不客气 –

+0

你的答复为我清除了几件事我还有一个问题,我会非常感激,如果你我可以将AI添加到这个对话服务中,以便它可以根据用户的响应提出问题。但是,如果我[管理员]想要分析用户的响应,我会ss我需要在DB中的用户答案之上添加额外的分析引擎。IBM Watson是否提供任何响应分析服务,还是需要使用单独的技术? – Amit