你好!
我们可以提供 Dialogflow V2 API 示例吗?
谢谢!
问候! 如果您使用的是 Dialogflow,我强烈建议您改用此库 :)
https://github.com/dialogflow/dialogflow-nodejs-client-v2
@JustinBeckwith dialogflow-nodejs-client-v2 存在问题,我们发现一个问题是我们无法在没有大量解决方法的情况下在 AWS Lambda 上使用它,因为我们正在对我们的 deps 进行 webpacking 以最小化它们的大小。
google-api-nodejs-client 都是 Axios REST,因此不需要从文件系统上的位置动态加载 protobuf 文件,因此使用它而不是复杂的 Webpack 配置/文件复制是有意义的。
@joseparoli这是一个简单的例子。 我花了很长时间才弄清楚如何做到这一点 - 路径参数令人困惑,因为您期望它只是 [projectId](请参阅父参数)……但它更像是一个 url 路径:/projects/[projectId]。 一旦你明白了,你总是可以在文档的顶部找到它们,例如这里
````
'使用严格';
const {google} = require('googleapis');
const path = require('path');
异步函数 runSample() {
const 客户端 = 等待 google.auth.getClient({
keyFile:path.join(__ dirname,'key.json'),
范围:'https://www.googleapis.com/auth/cloud-platform'
});
const dialogflow = google.dialogflow({
版本:'v2',
身份验证:客户端
});
const 结果 = 等待 dialogflow.projects.getAgent({
父:'项目/
});
控制台日志(结果。数据);
}
如果(模块 === require.main){
runSample().catch(console.error);
}
//导出以进行单元测试
module.exports = { runSample };
````
感谢分享代码示例,感谢分享你的推理。 提醒一下 - 现在我们提供了 TypeScript 类型,您可以随时查看类型化参数对象以找出应该传递给这些方法的内容:)
@joseparoli我现在要关闭它。 如果您需要任何其他帮助...请告诉我们!
最有用的评论
@JustinBeckwith dialogflow-nodejs-client-v2 存在问题,我们发现一个问题是我们无法在没有大量解决方法的情况下在 AWS Lambda 上使用它,因为我们正在对我们的 deps 进行 webpacking 以最小化它们的大小。
google-api-nodejs-client 都是 Axios REST,因此不需要从文件系统上的位置动态加载 protobuf 文件,因此使用它而不是复杂的 Webpack 配置/文件复制是有意义的。
@joseparoli这是一个简单的例子。 我花了很长时间才弄清楚如何做到这一点 - 路径参数令人困惑,因为您期望它只是 [projectId](请参阅父参数)……但它更像是一个 url 路径:/projects/[projectId]。 一旦你明白了,你总是可以在文档的顶部找到它们,例如这里
````
'使用严格';
const {google} = require('googleapis');
const path = require('path');
异步函数 runSample() {
const 客户端 = 等待 google.auth.getClient({
keyFile:path.join(__ dirname,'key.json'),
范围:'https://www.googleapis.com/auth/cloud-platform'
});
const dialogflow = google.dialogflow({
版本:'v2',
身份验证:客户端
});
const 结果 = 等待 dialogflow.projects.getAgent({'
父:'项目/
});
控制台日志(结果。数据);
}
如果(模块 === require.main){
runSample().catch(console.error);
}
//导出以进行单元测试
module.exports = { runSample };
````