0

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

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

使用 Rasa
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

使用 Watson
https://www.youtube.com/watch?v=no0R0bSkHXc

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

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

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

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

似乎还有一个新的 Google Actions Console,并且actions.intent.TEXT不再可用。

我的操作是连接到我的服务器的 webhook,但我无法弄清楚如何获得action.intent.TEXT包含和工作。

我找到的一切,即使在这里

在没有 Dialogflow 的情况下在 google 上发布操作 是预版本更新并遵循相同的模式。

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

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

4

1 回答 1

2

是否可以返回并使用 2.1?

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

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

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

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

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

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

    随便哪种

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

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

    matchAny Intent

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

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

    匹配任何场景

这似乎是很多工作。不是有某种方法可以从命令行完成所有这些吗?

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

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

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

于 2021-04-12T15:34:10.173 回答