Actions on google 什么';Google Assistant的ActionsSDK应用程序和DialogflowApp之间的区别是什么

Actions on google 什么';Google Assistant的ActionsSDK应用程序和DialogflowApp之间的区别是什么,actions-on-google,Actions On Google,为了构建谷歌助手应用程序,谷歌提供: 有一个共同的界面,但我不明白两者之间有什么区别,以及为什么我会使用其中一个。简而言之,这两个对象提供了类似(尽管不完全相同)的方法来处理请求,并提供谷歌允许您为助手构建操作的两种默认方式的结果 对话框FlowApp对象是您可能在大多数情况下使用的对象。它旨在与Dialogflow工具一起工作,让它处理自然语言处理(NLP)组件,并在适当的情况下将结果传递给webhook。它提供了一些特定于Dialogflow功能(如上下文)的方法,并将其他内容映射到

为了构建谷歌助手应用程序,谷歌提供:


有一个共同的界面,但我不明白两者之间有什么区别,以及为什么我会使用其中一个。

简而言之,这两个对象提供了类似(尽管不完全相同)的方法来处理请求,并提供谷歌允许您为助手构建操作的两种默认方式的结果

对话框FlowApp
对象是您可能在大多数情况下使用的对象。它旨在与Dialogflow工具一起工作,让它处理自然语言处理(NLP)组件,并在适当的情况下将结果传递给webhook。它提供了一些特定于Dialogflow功能(如上下文)的方法,并将其他内容映射到Dialogflow期望的响应格式

如果您使用自己的NLP,并且您的webhook直接从Google获取内容(不使用Dialogflow),则可以使用
ActionsSdkApp
。如果您需要构建一个
actions.json
文件,那么您将使用actions SDK

两者都有共同的方法和习惯用法,例如
app.ask()
app.tell()
和将
app.data
映射到会话存储等等,即使每种类型的实现细节不同

您应该使用与您正在使用的工具相匹配的工具。对于大多数新用户,这可能是Dialogflow和
DialogflowApp
对象

更新

请注意,问题中的API、询问的特定对象以及我在回答中提到的特定方法都是针对库的早期版本的

当前库中何时使用ActionSDK vs Dialogflow对象的概念仍然存在,因此这个问题和答案背后的概念仍然有效,但技术细节已经改变

更新-2020年6月


该库现在已被弃用,因为它不再适用于Google上当前版本的Actions(Actions Builder/SDK AoG v3)。它仍然适用于Dialogflow(使用AoG v2),如果您仍然使用AoG v2 Actions SDK。

简单来说

对一次性应用程序使用Actions SDK。这些应用程序在被调用后直接提供所需答案,然后停止。他们只给你这个结果。一个典型的例子是将计时器设置为10分钟


对所有其他应用程序使用Dialogflow,对于那些真正对话的应用程序,在这些应用程序中有多条路径可供遵循,并且您希望用户在对话过程中提供更多信息。

您可以使用actionssdk进行更多操作。它可以像Dialogflowsdk一样处理更长的对话,您只需要将它与另一个NLP集成,如囚犯的回答中所述。