我想了解最佳方法来解析dialogflow v2的detectIntent的响应。
dialogflow v2的响应包括在协议缓冲区中定义的struct对象。例如,queryResult中的参数。
我知道这是可能通过使用分析它structToJson包含在dialogflow V2 SDK用于Node.js的示例代码。因此,我当前的代码如下所示。
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;
});
}
Run Code Online (Sandbox Code Playgroud)
我正在使用示例代码后的 structProtoToJson()手动解析响应,但这是不切实际的,因为我不仅必须对参数进行响应,而且还必须对实现和其他以struct格式化的对象进行响应。
我想知道什么是解析Node.js应用程序中detectIntent响应的最佳实践。