我正在使用MS BotFramework函数构建一个机器人,我正在尝试使用带有MS BotFramework的Dialogflow,但我没有设置配置。 dialogflow-nodejs-client-v2库要求设置GOOGLE_APPLICATION_CREDENTIALS环境变量。我相信我设置:
我也手动上传了conf文件,我认为是工作目录
然而机器人仍然失败。我尝试了各种路径作为变量的值,包括绝对路径: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应用程序,错误似乎都很简单。您正在使用声明:
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中保存最新的包。
看来你已经得到两个包dialogflow
和uuid
使用npm解决没有错误,所以问题是缺少package.json中的recognizer
条目。尝试在package.json中添加包。