firebase - Google DialogFlow V2 履行中出现神秘错误(Google Assistant 模拟器空响应、请求、错误选项卡)

标签 firebase google-cloud-platform dialogflow-es actions-on-google dialogflow-es-fulfillment

我的应用程序中遇到了一个神秘的错误。 (Google Assistant + Fulfillment 用 NodeJS 编写,在 Firebase 上运行)我的应用程序是关于购买汽油的。 如果你想买其他东西,比如苹果,它会询问。 如果想第二次购买其他东西,例如 7 梅,它会将您重定向到默认意图。它应该是这样工作的。 但取而代之的是(见截图) flow

奇怪的是请求和响应以及错误选项卡为空:(对于其他用例,它们永远不会为空) Empty request tab Empty response tab Empty errors tab

在 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"  
}

Full error log

它之所以神秘是因为,例如,如果我先说 7 李子,它会接受,然后说 7 苹果,它会转到默认意图。为什么?我不知道。如果我输入像 3 Sadjhb 这样的随机文本,它也会询问,并且第二次它会转到默认意图。我知道这不是问题的正确描述,但我觉得它不能始终如一地工作。

我也可以复制此意图的实现代码,但现在我认为它与此无关。 我希望你们中有人曾经遇到过这种行为。 感谢您的阅读!

编辑:

我有一个后备意图,每次未找到意图时都应运行该意图 fallback intent definition 以及意图实现

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”。

关于firebase - Google DialogFlow V2 履行中出现神秘错误(Google Assistant 模拟器空响应、请求、错误选项卡),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56549604/

相关文章:

ios - Fabric 回答舍入 Int 值

android - 返回 RESULT_CANCELED 的 Google 登录 fragment

android - 使用 Google Natural Language API 时 PERMISSION_DENIED

javascript - 是否可以在对话框流内联编辑器中使用外部库?

javascript - Dialogflow企业版不显示访问 token key

actions-on-google - 对话流 JSON 中的 LanguageCode 不适用于 Google 上的 Actions

java - 如何在返回语句之前从 FirebaseFirestore 获取所有数据

java - 在 flutter 中添加Firebase包时出错

kubernetes - 如何使用 terraform 限制 kubernetes 集群上的磁盘使用

kubernetes - Kubectl无法描述HPA