会话表示 Dialogflow 代理与最终用户之间的对话。您在对话开始时创建会话,并在每个对话回合中使用该会话。对话结束后,您将停止使用该会话。
在同一时间与不同最终用户进行对话时,不应使用同一个会话。在会话的最后一个请求发送后的 30 分钟内,会话将保持活动状态并且其数据会被保存。
每个会话均由系统生成的会话 ID 唯一确定。 您可以通过在检测意图请求和其他会话方法中提供新的会话 ID 来创建新会话。会话 ID 是一个字符串,最长 36 个字节。 系统负责生成不重复的会话 ID。 它们可以是随机数字、经过哈希处理的最终用户标识符或任何其他便于生成的值。
如需了解会话名称中的位置 ID 值,请参阅区域化文档。
长时间会话
目前,Dialogflow 不支持保持会话数据超过 30 分钟。但是,您可以通过在 DetectIntentRequest
中设置 QueryParameters.current_page
和 QueryParameters.parameters
来恢复先前的会话状态。
该工作流的示例如下:
- 最终用户在会话 A 下与代理进行通信。
- 您的代码记录了与 API 响应中返回的会话 A 关联的状态(即
QueryResult.current_page
和QueryResult.parameters
)。 - 50 分钟后,最终用户停止与代理互动。
- 最终用户再次与代理进行通信。
- 您的代码会发送最终用户输入以及之前在请求中记录的
QueryParameters.current_page
和QueryParameters.parameters
,以使用之前的会话状态检测意图。您无需使用会话 A 所用的会话 ID。
引用
如需了解会话价格,请参阅价格页面。
如需详细了解会话,请
为会话参考选择协议和版本:
协议 | V3 | V3beta1 |
---|---|---|
REST | 会话资源 | 会话资源 |
RPC | 会话接口 | 会话接口 |
C++ | SessionsClient | 不可用 |
C# | SessionsClient | 不可用 |
Go | SessionsClient | 不可用 |
Java | SessionsClient | SessionsClient |
Node.js | SessionsClient | SessionsClient |
PHP | 不可用 | 不可用 |
Python | SessionsClient | SessionsClient |
Ruby | 不可用 | 不可用 |