为了构建Google应用程序,谷歌提供了两个不同的APIs作为它们在google上的node.js操作库的一部分:
有一个共同的接口,但我不明白两者之间有什么区别,以及为什么我要使用其中一个。
发布于 2017-12-18 13:30:26
简而言之,这两个对象提供了类似(尽管不是完全相同)的方法来处理请求,并为Google允许您为助手构建一个Action的两种默认方法提供结果。
DialogflowApp
对象是您可能用于大多数目的的对象。它的目的是使用对话框流工具,让它处理自然语言处理(NLP)组件,并酌情将结果传递给您的web钩子。它提供了一些特定于对话框流特性(如上下文)的方法,并将其他内容映射到Dialogflow所期望的响应格式。
如果您正在使用自己的NLP,并且您的web钩子直接从Google获得东西(不使用对话流),ActionsSdkApp
就会被使用。如果您需要构建一个actions.json
文件,则需要使用Actions。
两者都有共同的方法和习惯用法,例如app.ask()
和app.tell()
,以及将app.data
映射到会话存储等等,即使每种类型实现这些方法的细节不同。
您应该使用与您所使用的工具相匹配的工具。对于大多数新用户来说,这可能是对话框流和DialogflowApp
对象。
更新
请注意,问题中的API、询问的特定对象以及我在回答中提到的特定方法都适用于库的前一个版本。
当前库中何时使用ActionSDK与对话框对象的概念仍然有效,因此这个问题和答案背后的概念仍然有效,但技术细节已经发生了变化。
更新-2020年6月
这个库现在不再受欢迎了,因为它不再适用于当前版本的Google上的操作(Actions /SDK AoG v3)。它仍然适用于对话框流(它使用AoG v2),如果您仍然在使用AoG v2 Actions SDK。
发布于 2018-05-25 05:18:31
(简写为)
将动作SDK用于一次性应用程序。这些应用程序在被调用后直接提供所需的答案,然后停止。他们只给了你一个结果。一个典型的例子是将计时器设置为10分钟。
为所有其他应用程序使用对话框流,对于那些真正具有会话性的应用程序,在这些应用程序中有多条路径可遵循,并且您希望用户在对话期间提供更多信息。
https://stackoverflow.com/questions/47876438
复制