如何从 ApiAiApp 或 ActionsSdkApp 获取 conversationId?



我试图在ApiAiApp和ActionsSdkApp的文档中找到,它们没有获取conversationID的属性或函数。我可以从 JSON 请求中看到这一点。我是否必须自己解析请求才能获取对话 ID? 对话 ID 应该是常用的。

尽管没有记录,但有一个getConversationId()ActionsSdkApp对象的一部分,但不是ApiAiApp对象的一部分。但是,如果您使用的是 Node.js(如果您使用库,则会如此(,那么处理 JSON 对象也应该很容易。对于 API。AI 你应该在originalRequest.data.conversation.conversationId中找到它.

但请记住,对话没有"结束"事件。因此,虽然您将知道何时有新对话以及何时更新,但您将不知道用户何时停止该特定对话。

根据您的需要,您可能希望使用用户标识而不是对话标识。它不提供有关对话何时结束的信息,但它可以在不同的会话和设备之间跟踪同一用户。

对于大多数用户(在您的情况下可能不是(,对话 ID 可能不像您想象的那么常用。虽然将其用作在数据库中保存状态或类似内容的键可能是有意义的,但让 Google 保存状态本身更容易。

您可以将状态保存在 API 的上下文中。使用app.setContext( name, lifespan, parametersObject )方法的 AI。下次通过时,您可以从app.getContext()方法获取数据。

在 ActionsSdkApp 对象中,可以使用dialogState对象执行等效操作,该对象是大多数类似 ask 的方法(如app.ask()方法(的最后一个参数。然后,这将在您通过app.getDialogState()方法进行的下一次调用中可用。(此页面还讨论了可用于同一事物的app.data字段,但我找不到更多有关它的文档。

最新更新