# 슬롯

* 슬롯은 사용자의 발화로부터 대화를 추출하거나 값을 저장하기 위한 용도로 사용됩니다.
* `계좌 이체`를 수행하는 플로우에서 챗봇은 사용자로부터 수신인 및 금액을 묻고, 사용자가 대답을 하면 사용자의 발화로부터 값을 추출해야 합니다.
* 만약 사용자가 값을 말하지 않았다면 재질의하거나, 태스크를 수행하는데 있어서 필수 슬롯이 아니라면 기본값을 사용할 수 있어야 합니다.
* 슬롯을 생성하고 플로우에 포함하면 이러한 기능을 수행할 수 있습니다.

## 슬롯 생성

* 태스크플로우 빌더 상세 페이지에서 `슬롯 목록` > `슬롯 생성` 버튼을 통해 슬롯을 생성할 수 있습니다.

<figure><img src="https://content.gitbook.com/content/PMWE5xDpFGaoNrxQEI5D/blobs/oFFF5bsqd3l9YdB7jwkM/generate_slot.png" alt="" width="70%"><figcaption></figcaption></figure>

* 슬롯 생성 버튼을 누르면 슬롯을 생성하기 위한 팝업이 노출됩니다.
  * 제목: 슬롯의 영문 제목
  * 상세 설명: 발화에 대한 설명. 사용자가 발화를 구별하기 위해 사용하는 메모 용도로, 프롬프트에 입력되지 않습니다.
  * 유형: 슬롯의 데이터 타입입니다. `Text`, `Boolean`, `Categorical`, `Any`, `List` 타입 중 선택할 수 있습니다.
  * 초기값: 생성한 슬롯에 초기값을 넣을 수 있습니다. 플로우의 `정보 수집`은 슬롯에 값이 존재하지 않을 경우에만 사용자에게 되묻기 때문에, 사용자에게 반드시 수집해야하는 필수 슬롯이 아니라면 초기값을 할당해주세요. 자세한 내용은 플로우의 [정보 수집 노드](https://genos-docs.gitbook.io/default/v1.6.7-bok/undefined/manual/builder/flow/undefined/collect)를 참조해주세요.
  * 프롬프트에 반영: Taskflow의 `명령 생성 단계` 에서는 사용자의 발화 입력 시 플로우 분류와 함께 해당 플로우에서 `정보 수집` 과 연관이 있는 슬롯들을 프롬프트에 넣고 추출합니다. 만약 이 값이 False 이면 플로우의 `정보 수집` 노드에서 사용하더라도 `명령 생성 단계` 에서 추출하지 않습니다. 자세한 내용은 [명령 생성 단계](https://genos-docs.gitbook.io/default/v1.6.7-bok/undefined/manual)와 [정보 수집 노드](https://genos-docs.gitbook.io/default/v1.6.7-bok/undefined/manual/builder/flow/undefined/collect)를 참조해주세요.
  * 매핑 타입: 슬롯에 값을 넣는 방식을 정의합니다. 이후 버전에서 사라질 기능입니다(To be deprecated)
    * from\_llm: LLM 을 통해 값을 수집합니다.
    * custom: 액션을 통해 값을 수집합니다.

<figure><img src="https://content.gitbook.com/content/PMWE5xDpFGaoNrxQEI5D/blobs/vcqOTLdMQubkfxy2B4cl/generate_slot_popup.png" alt=""><figcaption></figcaption></figure>
