セッションは、Dialogflow エージェントとエンドユーザー間の会話を表します。会話の始めにセッションを作成し、会話のターンごとにセッションを使用します。会話が終了すると、セッションの使用も終了します。
同じセッションを別のエンドユーザーとの同時会話には使用しないでください。セッションはアクティブのままで、そのセッションへの最後のリクエストの送信から 30 分間、データが保存されます。
各セッションは、システムによって生成されたセッション ID によって一意に判別されます。 新しいセッションを作成するには、インテント検出リクエストなどのセッション メソッドに新しいセッション ID を指定します。セッション ID は最大 36 バイトの文字列です。 システムによって固有のセッション ID が生成されます。 この ID には、乱数、ハッシュ化されたエンドユーザー ID など、生成しやすい任意の値を使用できます。
セッション名のロケーション ID 値の詳細については、リージョン指定のドキュメントをご覧ください。
長期にわたるセッション
Dialogflow はデフォルトで 30 分間セッション データを保持します。セッションの有効期間を延長するには、次の 2 つの方法があります。
- (推奨)
QueryParameters.session_ttl
を使用してセッション TTL を設定します。最大許容値は 24 時間です。 ただし、
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 | 提供なし | 利用できません |