Google DialogFlow V2 实现神秘错误(Google Assistant simulator empty response, request, error tab)
Google DialogFlow V2 mysterious error in fulfillment (Google Assistant simulator empty response, request, error tab)
我的应用程序遇到了一个神秘的错误。 (Google Assistant + Fulfillment 用 NodeJS 运行ning 在 Firebase 上编写)我的应用程序是关于购买汽油的。
如果你想买其他东西,比如苹果,它会问回来。
如果想第二次购买其他东西,例如 7 plum,它会将您重定向到默认意图。这就是它应该如何工作的。
但取而代之的是(见截图)
奇怪的是请求和响应以及错误选项卡是空的:(对于其他用例,它们永远不会为空)
在 firebase 函数中我没有看到错误日志,但在 GCP 日志下我看到一个错误:
{
insertId: "1fmi9ryg1rc8hud"
labels: {
channel: "preview"
querystream: "GOOGLE_USER"
source: "JSON_RESPONSE_VALIDATION"
}
logName: "projects/xxxxxx/logs/actions.googleapis.com%2Factions"
receiveTimestamp: "2019-06-11T17:10:13.712416274Z"
resource: {
labels: {
action_id: "actions.intent.TEXT"
project_id: "xxxxxx"
version_id: ""
}
type: "assistant_action"
}
severity: "ERROR"
textPayload: "MalformedResponse: ErrorId: 113661de-882c-4238-a67a-f324359004a4. Failed to parse Dialogflow response into AppResponse because of invalid platform response. : Could not find a RichResponse or SystemIntent in the platform response for agentId: d7069fa0-5691-4104-848a-56f78e3007c4 and intentId: "
timestamp: "2019-06-11T17:10:13.699816952Z"
trace: "projects/xxxxxxx/traces/ABwppHEdFw2KY23BcC1eOVrIkgUCPC0ae2Sa39ixR7r1mUexFYRhdj2pH-BHNkXky1s9cgLGSw"
}
它之所以神秘,是因为如果我先说 7 plum 它会接受,然后说 7 apple 它会转到默认意图。为什么?我不知道。如果我输入像 3 sadjhb 这样的随机文本,它也会询问回来,并且第二次它会转到默认意图。我知道这不是对问题的正确描述,但我觉得它无法始终如一地工作。
我也可以复制此意图的实现代码,但现在我认为它与此无关。
我希望你们中的一个人以前遇到过这种行为。
感谢阅读!
编辑:
我有一个后备意图,每次找不到意图时都应该 运行
以及意图实现
app.intent('service.addgasoline.getinput', (conv, params) => {
if (params.value && params.unittype) {
const outmessage = 'So buy gas for - ' + params.value + ' ' + params.unittype;
conv.ask(outmessage);
conv.ask(new Suggestions(['Yes', 'No']));
} else {
conv.ask('How much gas you want to buy? For example, you can say 1 L or 1 gallon.');
}
});
我刚刚在我的应用程序中修复了一个类似的问题。
我的问题出在 DialogFlow 意图的训练短语中。实体的解析值与预期不完全一致。
例如,整个短语“7 plum”可能被错误地解析为值,而不仅仅是其中的“7”。
我的应用程序遇到了一个神秘的错误。 (Google Assistant + Fulfillment 用 NodeJS 运行ning 在 Firebase 上编写)我的应用程序是关于购买汽油的。
如果你想买其他东西,比如苹果,它会问回来。
如果想第二次购买其他东西,例如 7 plum,它会将您重定向到默认意图。这就是它应该如何工作的。
但取而代之的是(见截图)
奇怪的是请求和响应以及错误选项卡是空的:(对于其他用例,它们永远不会为空)
在 firebase 函数中我没有看到错误日志,但在 GCP 日志下我看到一个错误:
{
insertId: "1fmi9ryg1rc8hud"
labels: {
channel: "preview"
querystream: "GOOGLE_USER"
source: "JSON_RESPONSE_VALIDATION"
}
logName: "projects/xxxxxx/logs/actions.googleapis.com%2Factions"
receiveTimestamp: "2019-06-11T17:10:13.712416274Z"
resource: {
labels: {
action_id: "actions.intent.TEXT"
project_id: "xxxxxx"
version_id: ""
}
type: "assistant_action"
}
severity: "ERROR"
textPayload: "MalformedResponse: ErrorId: 113661de-882c-4238-a67a-f324359004a4. Failed to parse Dialogflow response into AppResponse because of invalid platform response. : Could not find a RichResponse or SystemIntent in the platform response for agentId: d7069fa0-5691-4104-848a-56f78e3007c4 and intentId: "
timestamp: "2019-06-11T17:10:13.699816952Z"
trace: "projects/xxxxxxx/traces/ABwppHEdFw2KY23BcC1eOVrIkgUCPC0ae2Sa39ixR7r1mUexFYRhdj2pH-BHNkXky1s9cgLGSw"
}
它之所以神秘,是因为如果我先说 7 plum 它会接受,然后说 7 apple 它会转到默认意图。为什么?我不知道。如果我输入像 3 sadjhb 这样的随机文本,它也会询问回来,并且第二次它会转到默认意图。我知道这不是对问题的正确描述,但我觉得它无法始终如一地工作。
我也可以复制此意图的实现代码,但现在我认为它与此无关。 我希望你们中的一个人以前遇到过这种行为。 感谢阅读!
编辑:
我有一个后备意图,每次找不到意图时都应该 运行
app.intent('service.addgasoline.getinput', (conv, params) => {
if (params.value && params.unittype) {
const outmessage = 'So buy gas for - ' + params.value + ' ' + params.unittype;
conv.ask(outmessage);
conv.ask(new Suggestions(['Yes', 'No']));
} else {
conv.ask('How much gas you want to buy? For example, you can say 1 L or 1 gallon.');
}
});
我刚刚在我的应用程序中修复了一个类似的问题。
我的问题出在 DialogFlow 意图的训练短语中。实体的解析值与预期不完全一致。
例如,整个短语“7 plum”可能被错误地解析为值,而不仅仅是其中的“7”。