セッション管理 API を使用して会話履歴とコンテキストを保存および取得する - Amazon Bedrock

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

セッション管理 API を使用して会話履歴とコンテキストを保存および取得する

注記

セッション管理 API はプレビュー版であり、変更される可能性があります。

セッション管理 API を使用すると、LangGraph や LlamaIndex などのオープンソースフレームワークで構築された生成 AI アプリケーションで進行中の会話のチェックポイントを保存できます。API を使用すると、複数ステップの生成 AI ワークフロー全体の状態と会話のコンテキストを安全に管理できます。状態とコンテキストの永続性のためにカスタムバックエンドソリューションを構築、維持、または拡張する必要はありません。

セッション管理 API を使用すると、次のことができます。

  • 反復テストとヒューマンインザループワークフローのチェックポイントワークフロー ステージ。

  • 中断した時点から会話とタスクを再開します。

  • セッションログを確認して、ワークフローステージを分析し、障害をデバッグします。

セッションは Amazon Bedrock のリソースであるため、AWS Identity and Access Management (IAM) を使用してセッションへのアクセスを制御できます。デフォルトでは、Amazon Bedrock はセッションメタデータを含むセッション暗号化に AWS 管理キーを使用しますが、独自の AWS KMS キーを使用することもできます。詳細については、「セッションの暗号化」を参照してください。

Amazon Bedrock API または AWS SDK を使用して、Amazon Bedrock セッションを作成および管理できます。LangGraph 上に構築されたアプリケーションの場合、langgraph_checkpoint_aws.saver ライブラリの BedrockSessionSaver クラスを使用できます。これは、LangGraph CheckpointSaver のカスタム実装です。詳細については、LangChain GitHub レポジトリの「langgraph-checkpoint-aws」を参照してください。

注記

セッションを使用して、オープンソースフレームワークで構築された生成 AI アプリケーションの状態と会話履歴を保存します。Amazon Bedrock エージェントの場合、サービスは会話コンテキストを自動的に管理し、InvokeAgent API オペレーションで指定したエージェント固有の sessionId に関連付けます。

ユースケースの例

LangGraph エージェントを使用して顧客の旅行日程の計画を支援するアプリケーションを持っているかもしれません。ユーザーはこのエージェントとの会話を開始して、目的地、希望するホテル、フライトの詳細を追加し、今後の旅行の日程を作成できます。

セッション管理 API を使用すると、エージェントは拡張された複数ステップのやり取り全体で中間状態と永続的コンテキストを保存できます。エージェントは、Amazon Bedrock セッションを使用して、各宛先が追加された後にその状態をチェックポイントとして設定し、顧客の設定に関する詳細を保存できます。

会話が中断または失敗した場合、エージェントはテキストや画像などのコンテキストを保持したまま、後でセッションを再開できます。これにより、エージェントは顧客に情報を繰り返してもらう必要なく続行できます。また、障害が発生した場合は、セッションの詳細を調査して原因をデバッグできます。

ワークフロー

セッション管理 API を使用するワークフローは次のとおりです。BedrockSessionSaver ライブラリの使用の詳細については、「BedrockSessionSaver LangGraph ライブラリを使用してセッションを管理する」を参照してください。

  • セッションを作成する – エンドユーザーが初めて会話を開始するときは、CreateSession API オペレーションを使用してセッションを作成し、セッションの ID を指定します。この ID は、会話状態を保存および取得するときに使用します。

  • 会話とコンテキストを保存する – エンドユーザーが生成 AI アシスタントを操作するときに、CreateInvocation API を使用してセッション内でのインタラクションのグループを作成します。呼び出しごとに、PutInvocationStep API オペレーションを使用して、インタラクションごとにテキストや画像を含むきめ細かな状態チェックポイントを保存します。

  • 会話履歴とコンテキストを取得するGetSessionListInvocationsGetInvocationStep API オペレーションを使用して、セッションメタデータとインタラクションの詳細を取得します。

  • セッションを終了する – セッションが完了したら、EndSession API オペレーションでセッションを終了します。セッションを終了しても、そのコンテンツにはアクセスできますが、追加することはできません。セッションとそのコンテンツを削除するには、DeleteSession API オペレーションを使用します。

考慮事項

セッションを作成および管理する前に、次の点に注意してください。

  • Amazon Bedrock API と AWS SDK を使用してセッションを作成および管理できます。AWS マネジメントコンソールを使用してセッションを管理することはできません。

  • LangGraph 上に構築されたエージェントアプリケーションの場合、langchain-aws ライブラリから BedrockSessionSaver クラスを使用できます。これは、LangGraph CheckpointSaver のカスタム実装です。BedrockSessionSaver ライブラリの使用の詳細については、「BedrockSessionSaver LangGraph ライブラリを使用してセッションを管理する」を参照してください。コードを直接表示するには、LangChain GitHub リポジトリの「langgraph-checkpoint-aws」を参照してください。

  • セッションの作成時にカスタマーマネージド AWS KMS キーを指定する場合、そのセッションを作成するユーザーまたはロールには、キーを使用するためのアクセス許可が設定されている必要があります。詳細については、「セッションの暗号化」。

  • セッション管理 API には次のクォータがあります。

    • すべての呼び出しにわたる 1 つのセッションでの呼び出しステップの数 – 1,000

    • 呼び出しステップごとの最大サイズ – 50 MB

    • IdleSession タイムアウト – 1 時間

    • 保持期間 – セッションデータは 30 日後に自動的に削除されます