会话

会话表示 Dialogflow 代理与最终用户之间的对话。您在对话开始时创建会话,并在每个对话回合中使用该会话。对话结束后,您将停止使用该会话。

在同一时间与不同最终用户进行对话时,不应使用同一个会话。在会话的最后一个请求发送后的 30 分钟内,会话将保持活动状态并且其数据会被保存。

每个会话均由系统生成的会话 ID 唯一确定。 您可以通过在检测意图请求和其他会话方法中提供新的会话 ID 来创建新会话。会话 ID 是一个字符串,最长 36 个字节。 系统负责生成不重复的会话 ID。 它们可以是随机数字、经过哈希处理的最终用户标识符或任何其他便于生成的值。

如需了解会话名称中的位置 ID 值,请参阅区域化文档。

长时间会话

默认情况下,Dialogflow 会将会话数据保留 30 分钟。您可以通过以下两种方式延长会话的生命周期:

  • (首选)使用 QueryParameters.session_ttl 设置会话 TTL。允许的最大值为 24 小时。
  • 您可以通过在 DetectIntentRequest 中设置 QueryParameters.current_pageQueryParameters.parameters 来恢复之前的会话状态。

    该工作流的示例如下:

    1. 最终用户在会话 A 下与代理进行通信。
    2. 您的代码记录了与 API 响应中返回的会话 A 关联的状态(即 QueryResult.current_pageQueryResult.parameters)。
    3. 50 分钟后,最终用户停止与代理互动。
    4. 最终用户再次与代理进行通信。
    5. 您的代码会发送最终用户输入以及之前在请求中记录的 QueryParameters.current_pageQueryParameters.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 不可用 不可用