【问题标题】:How do you get arguments of correct type in Google Actions SDK?您如何在 Google Actions SDK 中获得正确类型的参数?
【发布时间】:2017-01-26 16:14:18
【问题描述】:

Google 的 action api 似乎在我的意图中找到了正确的模式并绑定到正确的类型,但不返回解析的类型数据。例如,如果我在我的 actions.json 文件中定义了下面的意图:

   {
     "description": "",
      "initialTrigger": {
        "intent": "RepeatIntent",
        "queryPatterns": [
          {
            "queryPattern": "say $SchemaOrg_Number:mynumber"
          },
          {
            "queryPattern": "say $SchemaOrg_Date:mydate"
          },
          {
            "queryPattern": "say $SchemaOrg_Time:mytime"
          }
        ]
      },
      "httpExecution": {
        "url": "https://myurl/repeat"
      }
    }

然后我在模拟器中输入“at my action say tomorrow”,我收到以下参数:

"arguments": [
    {
        "name": "mydate",
        "raw_text": "tomorrow",
        "text_value": "tomorrow"
    },
    {
        "name": "trigger_query",
        "raw_text": "say tomorrow",
        "text_value": "say tomorrow"
    }
]

请注意,动作 SDK 正确地将“tomorrow”识别为类型“$SchemaOrg_Date”并将其绑定到 mydate 变量,但是,它没有返回“date_value”元素文档中指定的返回 json。我本来希望“date_value”元素包含已解析的日期结构(根据文档)。

数字也是如此,尽管它们的行为略有不同。例如,如果我使用短语“at my action say 50”,我将收到以下论点:

"arguments": [
    {
        "name": "mynumber",
        "raw_text": "50",
        "text_value": "50"
    },
    {
        "name": "trigger_query",
        "raw_text": "say fifty",
        "text_value": "say fifty"
    }
]

请注意,$SchemaOrg_Number 已被识别,并且“五十”被正确解析为“50”,但 int_value 并未根据文档填充到参数 json 中。

Google 正在积极解析这些复杂类型,并记录了它们应该被返回,所以我不想自己去解析它们的麻烦。关于这个问题是否会很快得到解决有任何想法吗?

【问题讨论】:

    标签: actions-on-google google-assistant-sdk


    【解决方案1】:

    Actions SDK 不支持对动作进行 NLU。你必须使用自己的 NLU。如果您没有自己的 NLU,我们建议使用 API.AI。

    【讨论】:

    • 我在其他地方看到过同样的答案,但它与谷歌文档不一致。鉴于您的头衔,我可以假设您的回答代表了 Google 的官方立场吗?是否会更新文档以反映 API 的实际操作?谷歌似乎已经完成了一半的 NLP 处理,但结果根本就不见了。我正在开发一个框架(在 Go 中)并且不想复制 Google 可能即将支持的功能,因此任何澄清都会非常有帮助。谢谢,
    • 据我所知文档是正确的。你能指出你认为不一致的地方吗?
    • 莱昂,感谢您的回复。请参阅 HTTP 请求 developers.google.com/actions/reference/conversation#Inputs 参考的参数部分。文档引用了 int_value、bool_value、date_value、time_value 和 location_value,并说当遇到适当的 $SchemaOrg_XXXXX 值时应该返回它们。它们永远不会填充在 JSON 中(请参阅我上面的问题)。类型是正确的,所以谷歌正在做一些 NLP,但从未提供过实际值。我需要了解这是否是设计使然。
    • raw_texttext_value 将在未来得到支持,对吧?不只是raw_text
    猜你喜欢
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    • 2023-02-22
    • 2020-01-20
    • 1970-01-01
    相关资源
    最近更新 更多