我正在使用MS BotFramework函数构建一个机器人,并且尝试将Dialogflow与MS BotFramework一起使用,但设置设置失败。 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中的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?
谢谢
答案 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解决了两个软件包dialogflow
和uuid
,而没有错误,因此问题丢失了package.json中的recognizer
条目。
尝试在package.json中添加包。