Dialogflow Client API (NodeJS) 能否以无状态方式工作?

Can the Dialogflow Client API (NodeJS) work in a stateless manner?

我正在考虑使用 Dialogflow 开发一个解决方案,其中用户界面事件(例如键入的用户输入)将作为 http REST 事件到达。

这个问题是 Dialogflow 客户端 API(注意:这与实现 API 不同)看起来是有状态的:https://github.com/googleapis/nodejs-dialogflow

(...但我可能是错的...)

在大多数(所有?)任何理智的人都可能使用的现代无服务器范例中,有状态是很难的。主要是 - 没有保证后续事件将在相同的 运行 时间实例到达。

有点令人气愤的是,尽管上面的回购协议中提供了许多示例,但 none 其中看起来像现实的(但很小的)应用程序,处理多会话、多回合(甚至 2-3 回合) ) 用户输入。

任何 运行 时间实例 could/would 调用 new dialogflow.SessionsClient(); 的想法只是每次运行时初始化(不是每个会话)初始化 API,然后其他一切都通过 like await sessionClient.detectIntent(request); ???

完成

现在我已经输入了这个,我非常确信这是正确的。但如果有人能确认那就太好了!

底层 Dialogflow 会话 API 本身是无状态的 - 做出的任何有状态决策都必须包含在您对 detectIntent 的调用中。 JavaScript 库也反映了这种无状态场景。

SessionsClient 构造函数设置连接和身份验证信息,但不维护任何其他会话 状态。因此,您可以使用同一个对象来管理多个对话。

请注意,这仍然意味着 需要维护会话状态(会话 ID、上下文中返回的值和生命周期等)以便将其传递给 detectIntent作为请求的一部分。