

지원 종료 공지: 2025년 9월 15 AWS 일에는 Amazon Lex 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) 참조하세요.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 2b단계(선택 사항): 입력한 정보 흐름의 세부 정보 검토(콘솔)
<a name="gs-bp-details-part1"></a>

이 섹션에서는 클라이언트가 `PostText` API를 사용하여 요청을 보낼 때의 클라이언트와 Amazon Lex 간의 정보 흐름에 대해 설명합니다. 자세한 내용은 [PostText](API_runtime_PostText.md)을 참조하세요.

1. 사용자의 입력: 꽃을 주문하고 싶습니다

   1. 클라이언트(콘솔)는 Amazon Lex에 다음 [PostText](API_runtime_PostText.md) 요청을 보냅니다.

      ```
      POST /bot/OrderFlowers/alias/$LATEST/user/4o9wwdhx6nlheferh6a73fujd3118f5w/text
      "Content-Type":"application/json"
      "Content-Encoding":"amz-1.0"
      
      {
          "inputText": "I would like to order some flowers",
          "sessionAttributes": {}
      }
      ```

      요청 URI 및 본문 모두 Amazon Lex에 다음 정보를 제공합니다.
      + 요청 URI – 봇 이름(`OrderFlowers`), 봇 별칭(`$LATEST`), 사용자 이름(사용자를 식별하는 임의 문자열)을 제공합니다. 후행 `text`는 이것이 `PostText` API 요청(`PostContent`가 아님)임을 나타냅니다.

         
      + 요청 본문 – 사용자 입력(`inputText`)과 빈 `sessionAttributes`를 포함합니다. 클라이언트가 첫 번째 요청을 한 경우 세션 속성이 없습니다. Lambda 함수는 이를 나중에 초기화합니다.

   1. `inputText`에서 Amazon Lex는 의도(`OrderFlowers`)를 감지합니다. 이 의도에는 사용자 입력 또는 이행의 초기화/검증을 위한 코드 후크(즉, Lambda 함수)가 없습니다.

      Amazon Lex는 값을 유도할 의도 슬롯 중 하나(`FlowerType`)를 선택합니다. 또한 슬롯의 값 유도 프롬프트 중 하나(모두 의도 구성에 포함)를 선택한 다음, 클라이언트에 다음 응답을 다시 보냅니다. 콘솔은 사용자에 대한 응답에 다음과 같은 메시지를 표시합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/lex/latest/dg/images/gs-1-details-10.png)

      클라이언트는 응답에 메시지를 표시합니다.

1. 사용자의 입력: 장미

   1. 클라이언트(콘솔)는 Amazon Lex에 다음 [PostText](API_runtime_PostText.md) 요청을 보냅니다.

      ```
      POST /bot/OrderFlowers/alias/$LATEST/user/4o9wwdhx6nlheferh6a73fujd3118f5w/text
      "Content-Type":"application/json"
      "Content-Encoding":"amz-1.0"
      
      {
          "inputText": "roses",
          "sessionAttributes": {}
      }
      ```

      요청 본문에서 `inputText`는 사용자 입력입니다. `sessionAttributes`는 비어있습니다.

   1. Amazon Lex는 먼저 현재 의도의 컨텍스트에서 `inputText`를 해석합니다(이 서비스는 특정 사용자에게 `FlowerType` 슬롯에 대한 정보를 요청했음을 기억). Amazon Lex는 먼저 현재 의도의 슬롯 값을 업데이트하고, 또 다른 슬롯(`PickupDate`)을 해당 슬롯을 위한 ``로서 프롬프트 메시지 중 하나(언제 장미를 픽업하고 싶으세요?)를 선택합니다.

      그런 다음 Amazon Lex는 다음 응답을 반환합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/lex/latest/dg/images/gs-1-details-20.png)

      클라이언트는 응답에 메시지를 표시합니다.

1. 사용자의 입력: 내일

   1. 클라이언트(콘솔)는 Amazon Lex에 다음 [PostText](API_runtime_PostText.md) 요청을 보냅니다.

      ```
      POST /bot/OrderFlowers/alias/$LATEST/user/4o9wwdhx6nlheferh6a73fujd3118f5w/text
      "Content-Type":"application/json"
      "Content-Encoding":"amz-1.0"
      
      {
          "inputText": "tomorrow",
          "sessionAttributes": {}
      }
      ```

      요청 본문에서 `inputText`는 사용자 입력입니다. `sessionAttributes`는 비어있습니다.

   1. Amazon Lex는 먼저 현재 의도의 컨텍스트에서 `inputText`를 해석합니다(이 서비스는 특정 사용자에게 `PickupDate` 슬롯에 대한 정보를 요청했음을 기억). Amazon Lex는 현재 의도의 슬롯(`PickupDate`) 값을 업데이트합니다. (`PickupTime`)의 값을 유도할 또 다른 슬롯을 선택합니다. 클라이언트에 값 유도 `` 프롬프트 중 하나(2017-01-05 몇 시에 장미를 배송하시겠습니까?)를 반환합니다.

      그런 다음 Amazon Lex는 다음 응답을 반환합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/lex/latest/dg/images/gs-1-details-30.png)

      클라이언트는 응답에 메시지를 표시합니다.

1. 사용자의 입력: 6 pm

   1. 클라이언트(콘솔)는 Amazon Lex에 다음 [PostText](API_runtime_PostText.md) 요청을 보냅니다.

      ```
      POST /bot/OrderFlowers/alias/$LATEST/user/4o9wwdhx6nlheferh6a73fujd3118f5w/text
      "Content-Type":"application/json"
      "Content-Encoding":"amz-1.0"
      
      {
          "inputText": "6 pm",
          "sessionAttributes": {}
      }
      ```

      요청 본문에서 `inputText`는 사용자 입력입니다. `sessionAttributes`는 비어있습니다.

   1. Amazon Lex는 먼저 현재 의도의 컨텍스트에서 `inputText`를 해석합니다(이 서비스는 특정 사용자에게 `PickupTime` 슬롯에 대한 정보를 요청했음을 기억). Amazon Lex는 먼저 현재 의도의 슬롯 값을 업데이트합니다. 이제 Amazon Lex는 모든 슬롯에 대한 정보를 갖고 있음을 감지합니다.

      `OrderFlowers` 의도는 확인 메시지로 구성됩니다. 따라서 Amazon Lex는 의도를 이행하기 전에 사용자의 명시적 확인이 필요합니다. Amazon Lex는 꽃을 주문하기 전에 확인을 요청하는 다음 메시지를 클라이언트에게 보냅니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/lex/latest/dg/images/gs-1-details-40.png)

      클라이언트는 응답에 메시지를 표시합니다.

1. 사용자의 입력: 예

   1. 클라이언트(콘솔)는 Amazon Lex에 다음 [PostText](API_runtime_PostText.md) 요청을 보냅니다.

      ```
      POST /bot/OrderFlowers/alias/$LATEST/user/4o9wwdhx6nlheferh6a73fujd3118f5w/text
      "Content-Type":"application/json"
      "Content-Encoding":"amz-1.0"
      
      {
          "inputText": "Yes",
          "sessionAttributes": {}
      }
      ```

      요청 본문에서 `inputText`는 사용자 입력입니다. `sessionAttributes`는 비어있습니다.

   1. Amazon Lex는 현재 의도를 확인하는 컨텍스트에서 `inputText`를 해석합니다. 사용자가 주문을 진행하기를 원한다고 이해합니다. `OrderFlowers` 의도는 이행 활동인 `ReturnIntent`로 구성됩니다(의도를 이행할 Lambda 함수가 없음). 따라서 Amazon Lex는 클라이언트에 슬롯 데이터를 반환합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/lex/latest/dg/images/gs-1-details-50.png)

      Amazon Lex는 다음과 같이 `dialogState`을 `ReadyForFulfillment`로 설정했습니다. 그러면 클라이언트는 의도를 이행할 수 있습니다.

1. 이제 봇을 다시 테스트합니다. 이를 위해서는 콘솔에서 **지우기** 링크를 선택하여 새 (사용자) 컨텍스트를 설정해야 합니다. 이제 꽃 주문 의도에 대한 데이터를 제공할 때 잘못된 데이터를 제공해 봅니다. 예제: 
   + 재스민을 꽃 유형으로 입력(재스민은 지원되는 꽃 유형이 아님)
   + 어제를 꽃을 찾아갈 날로 입력

   사용자 데이터를 초기화 및 검증할 코드가 없으므로 봇은 이러한 값을 수락합니다. 다음 섹션에서는 Lambda 함수를 추가하여 이를 수행합니다. 다음은 Lambda 함수에 대한 참고 사항입니다.
   + Lambda 함수는 각 사용자의 입력 후 슬롯 데이터를 검증합니다. 마지막에 의도를 이행합니다. 즉, 봇은 꽃 주문을 처리한 후 클라이언트에 슬롯 데이터를 반환하는 대신에 사용자에게 메시지를 반환합니다. 자세한 내용은 [Lambda 함수 사용](using-lambda.md)을 참조하세요.
   + Lambda 함수는 세션 속성도 설정합니다. 세션 속성에 대한 자세한 내용은 [PostText](API_runtime_PostText.md) 섹션을 참조하십시오.

      시작하기 섹션을 완료한 후 추가 연습([추가 예제: Amazon Lex 봇 생성](additional-exercises.md))을 할 수 있습니다. [여행 예약](ex-book-trip.md)에서는 세션 속성을 사용하여 의도 전반에 걸쳐 정보를 공유함으로써 사용자와의 동적 대화에 참여합니다.

**다음 단계**  
[3단계: Lambda 함수 만들기(콘솔)](gs-bp-create-lambda-function.md)