寻求解决 Dialogflow 流用户会话在同一站点上的每个新页面重置的问题,并且当用户继续对话时不会保存其进度。阅读类似的请求,并想知道这是我们端可配置的东西,还是 Dialogflow 不具备在不同页面之间的一个域上进行连续用户交互的功能?
https://cloud.google.com/dialogflow/es/docs/integrations/dialogflow-messenger
不幸的是,推荐的文章没有帮助,但我希望我能找到解决方案。
在 Dialogflow ES 中保持同一站点的不同页面之间的用户会话连续性确实可以通过保留会话 ID 来实现。 Dialogflow ES 版本使用会话 ID 来识别和维护与用户的对话状态。
由于您使用的是 Dialogflow Messenger,因此您可以通过
df-messenger
HTML 标签控制会话 ID。通过在站点上的不同页面上重复使用相同的会话 ID 值,您可以保持对话的连续性。
以下是实施方法:
生成并存储唯一的会话ID:当用户开始对话时,生成唯一的会话ID并将其存储在用户的会话存储或cookie中。该 ID 对于用户来说应该是唯一的,但在各个页面上是一致的。
df-messenger
标签中设置会话ID:在每个页面上初始化df-messenger
标签时使用存储的会话ID。您可以将 session-id
属性设置为存储的会话 ID 值。例如:
<df-messenger
intent="WELCOME"
chat-title="Your Chat Title"
agent-id="your-agent-id"
language-code="en"
session-id="your-stored-session-id">
</df-messenger>
此外,如果您有现有方法来维护用于用户识别的唯一会话 ID,则可以使用它。例如,在我的实现中,会话 ID 是在服务器端生成和管理的。