0

我们想构建一个机器人,它会向用户提问,然后记录他们的回答。此问答将根据用户的回答智能完成。

目前我们没有几个初步的问题;

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

  2. 我们希望将来自一些 DB[RDBMS 或 NOSQL] 的问题提供给我们的 Bot,因为它将来会很大,哪个 api 最适合。

  3. 我们希望使用用户 ID 将用户响应存储到数据库。

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

您能否建议,如果这可以使用任何一种 Bot API 来完成,并且应该首选哪一个。

谢谢你,阿米特

4

1 回答 1

1

在您的 4 个条件下,都可以使用 IBM Watson 完成。

1: 使用对话服务创建聊天机器人,您可以使用context变量保存所有用户输入。

IBM Watson 提供了一些PythonNode 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 Watson 对话:

context.conversation_id

4:您可以使用 IBM Watson 的其他服务,但我建议:AlchemyAPI 或 Discovery,取决于您真正要做什么。但是看看两者,我相信他们会帮助你。

于 2017-01-30T16:32:17.717 回答