【发布时间】:2018-11-29 01:08:31
【问题描述】:
我想知道解析dialogflow v2的detectIntent响应的最佳实践。
dialogflow v2 的响应包括在 Protocol Buffer 中定义的struct 对象。比如queryResult中的参数。
我知道可以使用 structToJson 来解析它,它包含在适用于 Node.js 的 dialogflow v2 SDK 中作为示例代码。所以我现在的代码是这样的。
const dialogflow = require("dialogflow");
const structjson = require("./dialogflow/structjson");
identify_intent(sentence, options){
const session_path = this._sessions_client.sessionPath(this._project_id, options.session_id);
// The text query request.
const request = {
session: session_path,
queryInput: {
text: {
text: sentence,
languageCode: this._language
}
}
};
// Send request and log result
return this._sessions_client.detectIntent(request).then(responses => {
let result = responses[0].queryResult;
if (result.parameters){
result.parameters = structjson.structProtoToJson(result.parameters);
}
return result;
});
}
我正在使用 sample code 之后的 structProtoToJson() 手动解析响应,但这不切实际,因为我不仅要为参数而且还要为实现和其他在结构中格式化的对象这样做。
我想知道在 Node.js 应用程序中解析来自 detectIntent 的响应的最佳做法是什么。
【问题讨论】:
-
问题解决了吗?我面临同样的问题。如果您使用自定义有效负载作为响应,则结果 json 很难解析。
标签: dialogflow-es