如何使用dialogflow-nodejs-client-v2

时间:2018-08-21 06:16:36

标签: node.js azure botframework azure-functions dialogflow

我正在使用MS BotFramework函数构建一个机器人,并且尝试将Dialogflow与MS BotFramework一起使用,但设置设置失败。 dialogflow-nodejs-client-v2库要求设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量。我相信我设置了:

enter image description here

我还手动将conf文件上传到了我认为是工作目录的

enter image description here

然而,机器人仍然失败。我尝试了各种路径作为变量的值,包括绝对路径:D:\home\site\wwwroot\messages\test-0691d01dae88.json

仍然没有运气。

我遇到的错误非常隐秘:

Exception while executing function: Functions.messages. mscorlib: One or more errors occurred. Error: package.json does not exist at D:\home\site\wwwroot\package.json
at Object.module.exports.exports.find (D:\home\site\wwwroot\.funcpack\index.js:272715:15)
at Object.module.exports.exports.status.OK (D:\home\site\wwwroot\.funcpack\index.js:51739:12)
at __webpack_require__ (D:\home\site\wwwroot\.funcpack\index.js:21:30)
at Object.<anonymous> (D:\home\site\wwwroot\.funcpack\index.js:271412:12)
at __webpack_require__ (D:\home\site\wwwroot\.funcpack\index.js:21:30)
at Object.module.exports.module.exports (D:\home\site\wwwroot\.funcpack\index.js:84837:27)
at __webpack_require__ (D:\home\site\wwwroot\.funcpack\index.js:21:30)
at Object.<anonymous> (D:\home\site\wwwroot\.funcpack\index.js:260961:14)
at __webpack_require__ (D:\home\site\wwwroot\.funcpack\index.js:21:30)
at new GrpcClient (D:\home\site\wwwroot\.funcpack\index.js:132359:25).

这表明缺少package.json,但是仅当我尝试使用特定的对话框流时才出现此错误,我需要index.js中的ognitor.js文件。

var apiairecognizer_v2 = require('./recognizer');

它的内容是:

"use strict";
const dialogflow = require('dialogflow').v2beta1;
const uuid = require('uuid');
// next line causes error 
const sessionClient = new dialogflow.SessionsClient();

var ApiAiRecognizer = function(){
};

ApiAiRecognizer.prototype.recognize = function (context, done){
}

module.exports = ApiAiRecognizer;

注释sessionClient行将使机器人工作。

有什么想法如何使用MS BotFramework函数配置Dialogflow v2?

谢谢

1 个答案:

答案 0 :(得分:1)

对于任何node.js应用程序,错误似乎都是直截了当的。您正在使用语句:

var apiairecognizer_v2 = require('./recognizer');

因此,应用程序需要package.json文件来安装以下软件包:

{
  "name": "abc",
  "devDependencies": {
     "dialogflow":"^0.6.0",
     "uuid":"^3.3.2",
     "recognizer":"^0.0.2"
  }
}

用于npm安装软件包。

错误是它期望 package.json ,其中在位置D:\home\site\wwwroot\package.json处有所有引用和依赖的软件包

您可以手动添加该文件,或者如果已安装节点并使用npm,则尝试转到该文件夹​​,请尝试

npm install --save recognizer 

npm install --save-dev recognizer

它将最新的程序包保存在package.json中。

似乎您已经使用npm解决了两个软件包dialogflowuuid,而没有错误,因此问题丢失了package.json中的recognizer条目。 尝试在package.json中添加包。