如何使用dialogflow-nodejs-client-v2将Dialogflow API v2与MS BotFramework集成

问题描述 投票:2回答:1

我正在使用MS BotFramework函数构建一个机器人,我正在尝试使用带有MS BotFramework的Dialogflow,但我没有设置配置。 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中的recognizer.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行将使bot工作。

知道如何使用MS BotFramework函数配置Dialogflow v2吗?

谢谢

node.js azure botframework azure-functions dialogflow
1个回答
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中保存最新的包。

看来你已经得到两个包dialogflowuuid使用npm解决没有错误,所以问题是缺少package.json中的recognizer条目。尝试在package.json中添加包。

© www.soinside.com 2019 - 2024. All rights reserved.