

サポート終了通知: 2025 年 9 月 15 日、 AWS は Amazon Lex V1 のサポートを終了します。 V1 2025 年 9 月 15 日を過ぎると、Amazon Lex V1 コンソールまたは Amazon Lex V1 リソースにはアクセスできなくなります。Amazon Lex V2 を使用している場合は、代わりに [Amazon Lex V2 ガイド](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html)を参照してください。

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

# 旅行を予約する
<a name="ex-book-trip"></a>

この例では、複数のインテントをサポートするように設定されているボットの作成を示しています。この例では、クロスインテント情報共有のためのセッション属性の使用方法も示しています。ボットを作成した後で、Amazon Lex コンソールでテストクライアントを使用してボット (BookTrip) をテストします。クライアントでは、[PostText](API_runtime_PostText.md) ランタイム API オペレーションを使用して、各ユーザー入力に対するリクエストが Amazon Lex に送信されます。

この例の BookTrip ボットは、2 つのインテント (BookHotel と BookCar) を使用して設定されています。例えば、ユーザーが最初にホテルを予約するとします。その操作中に、ユーザーはチェックイン日時、場所、宿泊数などの情報を指定します。インテントが達成されると、クライアントではセッション属性を使用してこの情報を保持できます。セッション属性の詳細については、「[PostText](API_runtime_PostText.md)」を参照してください。

次に、そのユーザーが引き続き車を予約するとします。前の BookHotel インテントでユーザーが提供した情報 (つまり、目的地、およびチェックイン/チェックアウトの日時) を使用して、BookCar インテントを初期化および検証するように設定されたコードフック (Lambda 関数) によって、BookCar インテント用のスロットデータ (つまり、目的地、受け取り場所、受け取り日付、および返却日時) が初期化されます。これは、クロスインテント情報共有によって、ユーザーと動的に会話できるボットを構築する方法を示しています。

この例では以下のセッション属性を使用しています。セッション属性を設定および更新できるのはクライアントと Lambda 関数だけであり、Amazon Lex はクライアントと Lambda 関数の間でセッション属性を渡すだけです。Amazon Lex では、セッション属性が保持および変更されることはありません。
+ `currentReservation` – 進行中の予約とその他の関連情報のスロットデータが含まれています。クライアントから Amazon Lex へのリクエストの例を次に示します。この例では、リクエストボディに `currentReservation` セッション属性が含まれています。

  ```
  POST /bot/BookTrip/alias/$LATEST/user/wch89kjqcpkds8seny7dly5x3otq68j3/text
  "Content-Type":"application/json"
  "Content-Encoding":"amz-1.0"
  
  {
     "inputText":"Chicago",
     "sessionAttributes":{
         "currentReservation":"{\"ReservationType\":\"Hotel\",
                                \"Location\":\"Moscow\",
                                \"RoomType\":null,
                                \"CheckInDate\":null,
                                \"Nights\":null}"
     }
  }
  ```

   
+ `lastConfirmedReservation` – 前のインテントでの類似した情報が含まれています (該当する場合)。例えば、ユーザーがホテルを予約した後に車を予約中である場合、このセッション属性には前の BookHotel インテントのスロットデータが格納されています。

   
+ `confirmationContext` – Lambda 関数では、前の予約のスロットデータ (存在する場合) に基づいて一部のスロットデータを事前入力する際に、これが `AutoPopulate` に設定されます。これにより、クロスインテント情報共有が可能になります。例えば、ユーザーがホテルを予約した後に車を予約しようとしている場合、Amazon Lex では、ホテルの予約と同じ場所と日時で車を予約することを確認 (または拒否) するようにユーザーに指示できます。





この演習では、設計図を使用して Amazon Lex ボットと Lambda 関数を作成します。設計図の詳細については、「[Amazon Lex と AWS Lambda ブループリント](lex-lambda-blueprints.md)」を参照してください。





**次のステップ**  
[ステップ 1: この演習で使用する設計図を確認する](ex-book-trip-blueprints.md)