Google Actions CLI 3.1.0 版本和 actions.intent.TEXT

问题描述

我希望能够与 Google 助理交谈,但将 Actions 项目直接连接到我已经在我的服务器上运行的 NLP 服务。换句话说,不要使用对话流。

以下所有示例都展示了如何执行此操作。

和拉萨一起
https://blog.rasa.com/going-beyond-hey-google-building-a-rasa-powered-google-assistant/

使用 LUIS
https://www.grokkingandroid.com/using-the-actions-sdk/
https://dzone.com/articles/using-the-actions-sdk-for-google-assistant-develop

与沃森
https://www.youtube.com/watch?v=no0R0bSkHXc

他们使用 actions.intent.MAIN 作为调用,而 actions.intent.TEXT 用于说话者的所有其他话语。

这正是我需要的。我不想在 Action 中创建大量带有话语短语的意图,因为我只想将说话者所说的所有短语传递到我的服务器,并让我的 NLP 服务处理它们。

所以我建立了一个新的 Action 项目,安装了 Actions CLI,然后花了 3 天时间尝试所有可能的组合,但没有成功,因为所有这些示例都使用 gactions cli 2.1.3,而 Google 现在已转向 gactions cli 3.1。 0.

不仅命令发生了变化,文件格式和结构也发生了变化。

似乎还有一个新的 Google 操作控制台,并且 actions.intent.TEXT 不再可用。

我的操作是连接到我的服务器的 webhook,但我不知道如何将 action.intent.TEXT 包含在内并正常工作。

我能找到的一切,甚至在这里

Publishing Actions on google without Dialogflow 是预版本更新并遵循相同的模式。

谁能指出有关如何将所有谈话者短语发送到非对话流的 NLP 的最新版本、v3.1.0、讨论、教程或示例,或者 Google 是否关闭了该途径?

是否有可能以某种方式返回并使用 2.1 CLI 与新控制台或恢复控制台。 (我有两个 CLI 版本,我可以看到它们的命令有多么不同)

解决方法

是否可以返回并使用 2.1?

无法返回到 AoG 2。您可能也不想这样做 - v2 不提供更新的功能,只有 v3 提供。

我可以在 v3 中使用我自己的 NLP 吗?

是的,虽然不那么明显,而且语义上有一些变化。

作为概述,您需要做的是:

  • 创建一个可以接受“自由格式文本”的类型。我通常称这种类型为“任何”。

    在控制台中,它看起来像这样:

    Any Type

  • 创建一个自定义意图,该意图具有此 Any Type 的单个参数和至少一个捕获此参数所有内容的短语。 (因此您应该添加一个训练短语,突出显示整个短语,并将其设置为参数。有时我还会添加包含我不想捕获的词的其他短语。)我通常将 Intent 称为“matchAny”,而参数“任何”。

    在控制台中,它可能是这样的:

    matchAny Intent

  • 最后,您将拥有一个从 Main 调用过渡到的场景。当它匹配“matchAny”意图时,它应该使用处理程序名称调用您的 webhook。您的 webhook 将使用用户话语设置的“any”参数进行调用。 (请注意,JSON 也发生了变化。

    同样,控制台可能看起来像这样:

    MatchAny Scene

这看起来工作量很大。不是只有某种方法可以从命令行完成所有这些操作吗?

是的。您可以在 CLI 访问的配置文件中完成所有这些操作,然后将其上传。 (如有必要,您还可以使用控制台查看配置,以确保它们按预期进行配置。您可以根据需要在它们之间来回切换。)

Google 也有一个 github repository,其中包含为此类设置预先配置的大部分文件。

您需要更新存储库中的配置以正确处理 Webhook(其中包含使用内联代码编辑器说明正在发生的情况的代码)并添加您的项目 ID。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...