

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

# Slots
<a name="intent-slots"></a>

슬롯은 의도를 이행하기 위해 사용자가 제공하는 값입니다. 슬롯에는 두 가지 유형이 있습니다.
+ **내장 슬롯 유형** - 내장 슬롯 유형을 사용하여 전화번호, 이름, 도시와 같은 표준 값을 캡처할 수 있습니다. 지원되는 내장 슬롯 유형 목록은 [내장 슬롯 유형](built-in-slots.md) 단원을 참조하세요.
+ **사용자 지정 슬롯 유형** - 사용자 지정 슬롯 유형을 사용하여 의도와 관련된 사용자 지정 값을 캡처할 수 있습니다. 예를 들어, 사용자 지정 슬롯 유형을 사용하여 계좌 유형을 “당좌 예금” 또는 “예금”으로 캡처할 수 있습니다. 자세한 내용은 [사용자 지정 슬롯 유형](custom-slot-types.md) 단원을 참조하세요.

의도에서 슬롯을 정의하려면 다음을 구성해야 합니다.
+ **슬롯 정보** - 이 필드에는 슬롯의 이름과 설명(선택 사항)이 포함되어 있습니다. 예를 들어 슬롯 이름을 “AccountNumber”로 제공하여 계좌 번호를 캡처할 수 있습니다. 의도를 이행하기 위한 대화 흐름의 일부로 슬롯이 필요한 경우 필수로 표시해야 합니다.
+ **슬롯 유형** - 슬롯 유형은 슬롯이 받아들일 수 있는 값 목록을 정의합니다. 사용자 지정 슬롯 유형을 생성하거나 사전 정의된 슬롯 유형을 사용할 수 있습니다.
+ **슬롯 프롬프트** - 슬롯 프롬프트는 정보를 수집하기 위해 사용자에게 제기되는 질문입니다. 정보 수집에 사용되는 재시도 횟수와 각 재시도에 사용되는 프롬프트의 변화를 구성할 수 있습니다. 또한 각 재시도 후에 Lambda 함수 호출을 활성화하여 캡처된 입력을 처리하고 유효한 입력으로 확인을 시도할 수 있습니다.
+ **대기 및 계속(선택 사항)** - 이 동작을 활성화하면 사용자가 “잠시만 기다려주세요”와 같은 문구를 말하여 봇이 정보를 찾아 제공할 때까지 기다리게 할 수 있습니다. 이 기능은 대화 스트리밍에만 사용할 수 있습니다. 자세한 내용은 [일시 중지 동안 사용자가 추가 정보를 제공할 때까지 Amazon Lex V2 봇의 대기 설정 활성화](wait-and-continue.md) 단원을 참조하세요.
+ **슬롯 캡처 응답** - 사용자 입력에서 슬롯 값을 캡처한 결과를 기반으로 성공 응답과 실패 응답을 구성할 수 있습니다.
+ **조건부 분기** – 초기 응답을 재생한 후 조건을 적용할 수 있습니다. 조건이 true로 평가되면 정의한 작업이 수행됩니다. 자세한 내용은 [조건을 추가하여 대화 분기 설정](paths-branching.md) 단원을 참조하세요.
+ **대화 코드 후크** - Lambda 코드 후크를 사용하여 슬롯 값을 검증하고 비즈니스 로직을 실행할 수도 있습니다. 자세한 내용은 [대화 코드 후크 간접 호출](paths-code-hook.md) 단원을 참조하세요.
+ **사용자 입력 유형** - 봇이 특정 양식을 받아들일 수 있도록 입력 유형을 구성할 수 있습니다. 기본적으로 오디오 및 DTMF 양식 모두 허용됩니다. 오디오 전용 또는 DTMF 전용을 옵션으로 설정할 수 있습니다.
+ **오디오 입력 시간 제한 및 길이** - 음성 시간 제한 및 사일런스 시간 제한을 비롯한 오디오 시간 제한을 구성할 수 있습니다. 또한 최대 오디오 길이를 설정할 수 있습니다.
+ **DTMF 입력 시간 제한, 문자 및 길이** – 삭제 문자 및 종료 문자와 함께 DTMF 시간 제한을 설정할 수 있습니다. 또한 최대 DTMF 길이를 설정할 수 있습니다.
+ **텍스트 길이** – 텍스트 양식의 최대 길이를 설정할 수 있습니다.

슬롯 프롬프트가 재생된 후 사용자는 슬롯 값을 입력으로 제공합니다. Amazon Lex V2는 사용자가 제공한 슬롯 값을 인식하지 못하는 경우 값을 이해하거나 슬롯에 대해 구성한 최대 재시도 횟수를 초과할 때까지 슬롯 사용을 재시도합니다. 고급 재시도 설정을 사용하여 시간 제한을 구성하고, 입력 유형을 제한하고, 초기 프롬프트 및 재시도에 대한 인터럽트를 활성화 또는 비활성화할 수 있습니다. 입력 캡처를 시도할 때마다 Amazon Lex V2는 재시도를 위해 제공된 호출 레이블을 사용하여 봇용으로 구성된 Lambda 함수를 호출할 수 있습니다. 예를 들어, Lambda 함수를 사용하여 비즈니스 로직을 적용하고 유효한 값으로 확인하려고 시도할 수 있습니다. 이 Lambda 함수는 슬롯 프롬프트의 **고급 옵션** 내에서 활성화할 수 있습니다.

![\[봇이 정보를 끌어내도록 슬롯 프롬프트를 설정하세요.\]](http://docs.aws.amazon.com/ko_kr/lexv2/latest/dg/images/response-slot-prompt.png)


슬롯 값을 입력하거나 최대 재시도 횟수를 초과한 경우 봇이 사용자에게 보내야 하는 응답을 정의할 수 있습니다. 예를 들어 자동차 예약 서비스를 위한 봇의 경우 차량 식별 번호(VIN)를 입력하면 사용자에게 메시지를 보낼 수 있습니다.


|  | 
| --- |
| 차량의 VIN 번호를 제공해 주셔서 감사합니다. 이제 약속을 잡도록 하겠습니다. | 

다음과 같은 두 가지 응답을 생성할 수 있습니다.
+ **성공 응답** – Amazon Lex V2가 슬롯 값을 인식할 때 전송됩니다.
+ **실패 응답** – 최대 재시도 횟수에도 Amazon Lex V2가 사용자의 슬롯 값을 이해할 수 없을 때 전송됩니다.

값을 설정하고, 다음 단계를 구성하고, 각 응답에 해당하는 조건을 적용하여 대화 흐름을 설계할 수 있습니다.

조건이 없거나 명시적인 다음 단계가 없는 경우 Amazon Lex V2는 우선순위에 따라 다음 슬롯으로 이동합니다.

![\[슬롯 응답을 위한 고급 옵션.\]](http://docs.aws.amazon.com/ko_kr/lexv2/latest/dg/images/response-slot.png)


Lambda 함수를 사용하여 사용자가 입력한 슬롯 값을 검증하고 다음 작업을 결정할 수 있습니다. 예를 들어 검증 함수를 사용하여 입력한 값이 올바른 범위에 속하는지 또는 형식이 올바른지 확인할 수 있습니다. Lambda 함수를 활성화하려면 **대화 코드 후크** 섹션에서 **Lambda 함수 간접 호출** 확인란과 **활성** 버튼을 선택합니다. 대화 코드 후크에 대한 간접 호출 레이블을 지정할 수 있습니다. 이 간접 호출 레이블은 Lambda 함수에서 슬롯 추출에 해당하는 비즈니스 로직을 작성하는 데 사용할 수 있습니다.

![\[대화 코드 후크 옵션.\]](http://docs.aws.amazon.com/ko_kr/lexv2/latest/dg/images/response-dialog-code-hook.png)


의도에 필요하지 않은 슬롯은 기본 대화 흐름에 포함되지 않습니다. 하지만 사용자 발언에 봇이 선택적 슬롯에 해당하는 것으로 식별하는 값이 포함되어 있는 경우 해당 슬롯을 해당 값으로 채울 수 있습니다. 예를 들어 비즈니스 인텔리전스 봇에 선택 사항인 `City` 슬롯이 있고 **What is the sales for April in San Diego?** 사용자 발화가 있으면 봇이 선택 사항 슬롯을 **San Diego**로 채웁니다. 옵션 슬롯 값(있는 경우)을 사용하도록 비즈니스 로직을 구성할 수 있습니다.

의도에 필요하지 않은 슬롯은 다음 단계를 사용하여 끌어낼 수 없습니다. 이러한 단계는 이전 예와 같이 의도 유도 중에만 채우거나 Lambda 함수 내에서 대화 상태를 설정하여 수행할 수 있습니다. Lambda 함수를 사용하여 슬롯을 유도하는 경우 슬롯 추출이 완료된 후 Lambda 함수를 사용하여 대화의 다음 단계를 결정해야 합니다. 봇을 구축하는 동안 다음 단계에 대한 지원을 활성화하려면 슬롯을 의도에 필요한 것으로 표시해야 합니다.

**참고**  
2022년 8월 17일, Amazon Lex V2는 사용자와의 대화를 관리하는 방식에 대한 변경 사항을 발표했습니다. 이번 변경을 통해 사용자가 대화를 통해 이동하는 경로를 더 효과적으로 제어할 수 있게 되었습니다. 자세한 내용은 [Amazon Lex V2의 대화 흐름 변경 사항](understanding-new-flows.md) 단원을 참조하세요. 2022년 8월 17일 이전에 생성된 봇은 대화 코드 후크 메시지, 값 설정, 다음 단계 구성, 조건 추가를 지원하지 않습니다.

다음 항목에서는 이미 채워진 슬롯 값을 다시 불러오도록 봇을 구성하는 방법과 여러 값으로 구성된 슬롯을 만드는 방법을 설명합니다.

**Topics**
+ [슬롯 재유도](reelicit-slots.md)
+ [슬롯에서 여러 값 사용](multi-valued-slots.md)

# 슬롯 재유도
<a name="reelicit-slots"></a>

 이미 채워진 슬롯을 다시 유도하도록 봇을 구성하려면 해당 슬롯 값을 **null**로 설정하고 대화의 다음 단계에서 해당 슬롯을 다시 유도하도록 반복하도록 설정하면 됩니다. 예를 들어, 다음 대화에서처럼 고객이 추가 정보를 근거로 슬롯 유도 확인을 거부한 후에 슬롯을 다시 유도하는 것이 좋습니다.

![\[음식 주문 시 고객의 육류 선호도를 유도하는 대화.\]](http://docs.aws.amazon.com/ko_kr/lexv2/latest/dg/images/slots/order-food.png)


의도 편집기 또는 [시각적 대화 빌더 사용](visual-conversation-builder.md)를 사용하여 슬롯을 다시 유도하도록 확인 응답에서 루프를 구성할 수 있습니다.

**참고**  
미리 해당 슬롯 값을 **null**로 설정해 두었다면 대화의 어느 지점에서든 루프백하여 슬롯을 다시 유도할 수 있습니다.

**의도 편집기로 위 예제 재현**

1. 의도 편집기의 **확인** 섹션에서 **의도를 확인하는 프롬프트** 옆의 오른쪽 화살표를 선택하여 섹션을 확장합니다.

1. 하단에서 **고급 옵션**을 선택합니다.

1. **거부 응답** 섹션에서 **값 설정** 옆의 오른쪽 화살표를 선택하여 섹션을 확장합니다. 아래 이미지와 같이 다음 단계로 이 섹션을 채우십시오.

   1. 다시 유도할 슬롯 값을 **null**로 설정합니다. 이 예제에서는 `Meat` 슬롯을 다시 유도하고 싶으므로 **슬롯 값** 섹션에 **\$1Meat\$1 = null**을 입력합니다.

   1. **대화의 다음 단계** 아래에 있는 드롭다운 메뉴에서 **슬롯 유도**를 선택합니다.

   1. **슬롯** 섹션이 나타납니다. 그 아래의 드롭다운 메뉴에서 다시 유도하려는 슬롯을 선택합니다.

   1. **업데이트 옵션**을 선택하여 변경 사항을 확인합니다.  
![\[음식 주문 시 고객의 육류 선호도를 유도하는 대화.\]](http://docs.aws.amazon.com/ko_kr/lexv2/latest/dg/images/slots/decline-food.png)

**시각적 대화 빌더를 사용하여 위의 예 재현**

1. **확인** 블록의 **아니요** 포트에서 **슬롯 값 가져오기: Meat** 블록의 수신 포트로의 연결을 생성합니다.  
![\[확인 프롬프트의 거부에서 Meat 슬롯 유도 블록으로의 연결.\]](http://docs.aws.amazon.com/ko_kr/lexv2/latest/dg/images/slots/vcb-reelicit-slot-loop.png)

1. **확인** 블록의 오른쪽 상단에 있는 **편집** 아이콘을 선택합니다.  
![\[확인 블록의 오른쪽 상단 모서리에 있는 편집 아이콘.\]](http://docs.aws.amazon.com/ko_kr/lexv2/latest/dg/images/slots/vcb-reelicit-slot-confirmation-edit.png)

1. **거부 응답** 섹션에서 봇 응답 옆에 있는 톱니바퀴 아이콘을 선택합니다.  
![\[거부 응답 섹션의 봇 응답 옆에 있는 기어 아이콘\]](http://docs.aws.amazon.com/ko_kr/lexv2/latest/dg/images/slots/vcb-reelicit-slot-confirmation.png)

1. **값 설정** 섹션에서 **슬롯 값** 상자에 "\$1Meat\$1 = null"을 추가합니다.  
![\[값 설정 섹션의 슬롯 값 상자에서 다시 유도할 슬롯 값을 null로 설정합니다.\]](http://docs.aws.amazon.com/ko_kr/lexv2/latest/dg/images/slots/vcb-reelicit-slot-set-slot-null.png)

1. **의도 저장**을 선택합니다.

# 슬롯에서 여러 값 사용
<a name="multi-valued-slots"></a>

**참고**  
다중 값 슬롯은 영어(미국) 언어로만 지원됩니다.

일부 의도의 경우 단일 슬롯에 대해 여러 값을 캡처하고 싶을 수 있습니다. 예를 들어 피자 주문 봇은 다음과 같은 발화의 의도를 가지고 있을 수 있습니다.

```
I want a pizza with {toppings}
```

의도는 고객이 피자에 올리고 싶어하는 토핑 목록(예: '페퍼로니와 파인애플')이 `{toppings}` 슬롯에 포함되어 있을 것으로 예상합니다.

여러 값을 캡처하도록 슬롯을 구성하려면 슬롯의 `allowMultipleValues` 필드를 true로 설정합니다. 콘솔을 사용하거나 [CreateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateSlot.html) 또는 [UpdateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateSlot.html) 작업을 사용하여 필드를 설정할 수 있습니다.

사용자 지정 슬롯 유형이 있는 슬롯만 다중 값 슬롯으로 표시할 수 있습니다.

다중 값 슬롯의 경우 Amazon Lex V2는 [RecognizeText](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html) 또는 [RecognizeUtterance](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeUtterance.html) 작업에 대한 응답으로 슬롯 값 목록을 반환합니다. 다음은 OrderPizza 봇에서 “페퍼로니와 파인애플을 곁들인 피자를 원해요”라는 문구에 대해 반환된 슬롯 정보입니다.

```
    "slots": {
        "toppings": {
            "shape": "List",
            "value": {
                "interpretedValue": "pepperoni and pineapple",
                "originalValue": "pepperoni and pineapple",
                "resolvedValues": [
                    "pepperoni and pineapple"
                ]
            },
            "values": [
                {
                    "shape": "Scalar",
                    "value": {
                        "interpretedValue": "pepperoni",
                        "originalValue": "pepperoni",
                        "resolvedValues": [
                            "pepperoni"
                        ]
                    }
                },
                {
                    "shape": "Scalar",
                    "value:": {
                        "interpretedValue": "pineapple",
                        "originalValue": "pineapple",
                        "resolvedValues": [
                            "pineapple"
                        ]
                    }
                }
            ]
        }
    }
```

다중 값 슬롯은 항상 값 목록을 반환합니다. 발화에 하나의 값만 포함된 경우 반환된 값 목록에는 하나의 응답만 포함됩니다.

Amazon Lex V2는 공백, 쉼표(,) 및 ‘and’ 접속사로 구분된 여러 값을 인식합니다. 다중 값 슬롯은 텍스트 및 음성 입력 모두에 사용할 수 있습니다.

프롬프트에 다중 값 슬롯을 사용할 수 있습니다. 예를 들어 의도에 대한 확인 프롬프트를 다음과 같이 설정할 수 있습니다.

```
Would you like me to order your {toppings} pizza?
```

Amazon Lex V2가 사용자에게 메시지를 보내면 “페퍼로니와 파인애플 피자를 주문하시겠습니까?” 라는 메시지가 표시됩니다.

다중 값 슬롯은 단일 기본값을 지원합니다. 여러 기본값이 제공되는 경우 Amazon Lex V2는 사용 가능한 첫 번째 값만 슬롯을 채웁니다. 자세한 내용은 [Lex V2 봇에서 의도에 기본 슬롯 값 사용](context-mgmt-default.md) 단원을 참조하십시오.

슬롯 난독화를 사용하여 대화 로그에 있는 다중 값 슬롯의 값을 마스킹할 수 있습니다. 슬롯 값을 난독화하면 각 슬롯 값의 값이 슬롯의 이름으로 대체됩니다. 자세한 내용은 [Lex V2에서 대화 로그의 슬롯 값 가리기](monitoring-obfuscate.md) 단원을 참조하십시오.