将IBM Watson Assistant与Watson音调分析器集成

时间:2018-08-01 14:00:12

标签: angularjs api ibm-watson watson-conversation tone-analyzer

我正在尝试将Watson Assistant与Watson音调分析器集成以分析用户输入,但是我想缺少一些东西,因为我的控制台中始终出现错误“控制器中的toneAnalyzer.tone”,但未定义。  我正在使用angularjs开发Web应用程序

错误:

ReferenceError: toneAnalyzer is not defined
  at Object.toneanalyzer (conversation.service.js:54)
  at Conversation.sendMessage.then.data (chat.controller.js:43)
  at angular.js:17000
  at m.$digest (angular.js:18182)
  at m.$apply (angular.js:18480)
    at l (angular.js:12501)
    at XMLHttpRequest.s.onload (angular.js:12655) "Possibly unhandled 
   rejection: {}"

这是我的 app.js

 var ToneAnalyzerV3 = require('watson-developer-cloud/tone-analyzer/v3');
 var toneAnalyzer = new ToneAnalyzerV3({
   version_date: '2016-05-19',
   version: '2017-09-21'
 });  

这是 service.js

function tone_analyzer(contents) {
  toneAnalyzer.tone({
      text: contents
    },
    function(err, tone) {
      if (err)
        console.log(err);
      else
        var tone = JSON.stringify(tone, null, 2);
      //this is the JSON response (tone analysis) that you 
      can view in terminal
      console.log(JSON.stringify(tone, null, 2));
    });
  return tone;
}

这是我的 controller.js

Conversation.sendMessage(message.content).then(data => {
  if (data) {
    var reply = {};
    reply["recipient"] = "watson";
    if (data.intents[0].intent == 'emotion') {
      reply["content"] = Conversation.toneanalyzer(message.content)
    } else {
      reply["content"] = data.output.text[0];
    }
    vm.messages.push(reply);
  }
});

我认为我应该在我的 routes.js 中使用此功能,但是无论是否我都感到困惑

app.post('/api/tone', function(req, res, next) {
  toneAnalyzer.tone(req.body, function(err, data) {
    if (err) {
      return next(err);
    }
    return res.json(data);
  });
})

0 个答案:

没有答案