我想了解最佳方法来解析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响应的最佳实践。
您不需要执行任何操作即可将queryResult.parameters对象转换为可用的形式。它是一个具有以下结构的 JavaScript 对象:
{
fields: {
paramName1: { stringValue: 'value1', kind: 'stringValue' },
paramName2: { stringValue: 'value2', kind: 'stringValue' }
}
}
Run Code Online (Sandbox Code Playgroud)
意图的参数列表中的每个参数都会有一个键/值对。
| 归档时间: |
|
| 查看次数: |
838 次 |
| 最近记录: |