대화 컴포넌트

대화 컴포넌트는 자연어 기반 챗봇 엔진의 특성을 잘 이해한 후 꼭 필요한 곳에만 써야 효과적입니다.

대화 생성 방법에 익숙해졌다면 고급 기능인 대화 컴포넌트를 활용해 보세요. 대화 컴포넌트는 기능은 챗봇의 답변에서 좀 더 사용자 친화적인 답변을 할 수 있도록 도와주는 기능입니다.

네이버 클라우드 플랫폼 챗봇은 3가지의 대화 컴포넌트를 제공합니다.

  • 엔티티 : 인명, 기관명, 장소, 날짜와 상품명 등 도메인 특화된 단어들이 등록된 사전을 의미합니다.
  • 액션메소드: 외부의 URL을 호출하여 그 응답 결과값을 답변에 포함하여 제공하는 기능입니다.
  • 폼: 객관식 선택지를 제공하거나 주관식 답변을 유도하여, 그에 따른 피드백으로 시나리오를 이어가는 기능입니다.

엔티티

엔티티는 인명, 기관명, 장소, 날짜와 상품명 등 도메인 특화된 단어들이 등록된 사전을 의미합니다.

엔티티에는 빌트인으로 등록되어 모든 도메인에서 공통으로 사용 가능한 시스템 엔티티와, 작업자가 직접 등록하여 특정 도메인에서만 사용 가능한 도메인 엔티티로 나눌 수 있습니다. 엔티티를 생성, 수정, 삭제한 후에는 빌드 또는 변경된 설정 적용을 완료해야 모델에 반영되니 참고해주세요.

① 도메인 엔티티

chatbot-03-019.png

엔티티 생성 버튼을 클릭하여 엔티티를 생성할 수 있습니다.

chatbot-03-020.png

  • 엔티티 이름 : 엔티티의 이름을 입력합니다.
  • 엔티티 코드 : 해당 엔티티에 부여된 코드가 노출됩니다.
  • 대표어 : 엔티티에 등록할 대표어를 입력합니다.
  • 유사어 : 다양한 표현의 유사어를 입력합니다. 복수의 유사어를 입력하는 경우 콤마 (,)로 구분합니다.

도메인 엔티티 내에서 중복되는 단어를 대표어 또는 유사어로 등록할 수 없으니 주의해야합니다.

② 시스템 엔티티

chatbot-03-020a.png

  • 해당 도메인에서 사용할 시스템 엔티티를 활성화 시킬 수 있습니다.
  • 만약 태스크 또는 정규식 질문에서 해당 시스템 엔티티를 참조하고 있는 경우 비활성화 할 수 없습니다.

③ 엔티티 태깅

등록된 엔티티는 대화의 일반 질문에 태깅할 수 있습니다. 엔티티를 등록한 후 모델 빌드가 완료되었다면, 일반 질문 입력 시 자동으로 해당하는 엔티티가 태깅됩니다. 만약 수동으로 엔티티를 태깅하기 위해서는 다음과 같은 방법을 따릅니다.

  1. 먼저 '포테이토 피자'를 마우스로 끌어 선택합니다.
  2. 엔티티 선택 창이 나타나면 태깅하고자하는 엔티티를 선택합니다.
  3. 새로운 대표어로 추가하거나, 이미 등록된 대표어의 유의어로 추가할 수 있습니다.
  4. 만약 엔티티가 없는 경우 엔티티 생성을 클릭하여 신규 생성합니다.

chatbot-03-062.png

엔티티가 태깅된 경우에는 대화의 질문에 엔티티가 파란색으로 표시됩니다. 이렇게 엔티티가 태깅된 질문은 모델 학습에 반영되어 사용자의 발화를 인식하는데 도움을 줍니다.

액션메소드

액션메소드는 ${ActionMethodName}의 형태로 정의되며 GET과 JSON(POST) 그리고 LINE PAY, 총 세 가지 방식을 제공합니다.

① GET 방식

chatbot-03-021.png

GET 방식은 먼저 액션메소드명을 정의하고 외부 URL을 정의합니다. GET 방식의 액션메소드는 URL 호출의 결과 값이 답변의 내용으로 들어갑니다.

예를 들어 답변을 "현재 정자동의 날씨는 ${weather}도입니다."라고 정의한 경우, ${weather}의 값은 정의한 URL을 호출해서 Response로 돌아오는 정보입니다. 이 값이 '24'이면 챗봇은 "현재 정자동의 날씨는 24도입니다."라고 답변합니다.

② JSON(POST) 방식

JSON(POST) 방식은 GET 방식과 동일하나, URL 호출에 데이터를 포함하여 보낼 수 있습니다. 데이터를 보내는 형식은 JSON 형태입니다.

chatbot-03-022.png

③ LINE PAY

LINE PAY 액션메소드를 통해 간편하게 LINE PAY로 결제하는 시나리오를 구성할 수 있습니다.

LINE PAY 연동 가이드를 참고하여 LINE PAY 서비스를 연동한 후에 사용해주세요.

  • 가격 입력형

    chatbot-2-8-06.png

    • 입력된 가격으로 LINE PAY 결제를 진행합니다. 가격의 변동이 없는 상품을 결제할 때 활용하는 것을 권장합니다.

    • 이름 : 가격 입력형의 경우 액션메소드의 이름을 직접 입력하지 않습니다. 가격정보와 상품명을 입력하면 액션메소드 이름이 자동완성됩니다.

    • 가격정보 : 결제할 가격을 입력합니다. 기준 통화는 엔(¥) 입니다.

    • 상품명 : 결제할 상품의 이름을 입력합니다.

  • API 연동형

    chatbot-03-029.png

    • 입력된 외부 URL을 호출하여 확인된 가격으로 LINE PAY 결제를 진행합니다. 가격이 고정되어있지 않거나, 사용자가 선택한 슬롯 정보에 따라 가격이 변동되는 경우 활용하는 것을 권장합니다.
    • 이름 : 액션 메소드의 이름을 입력합니다.
    • URL : 가격정보를 확인할 수 있는 외부 URL을 입력합니다.

예를 들어 사용자가 콤비네이션 피자 S사이즈 2판을 주문하였다면, 아래의 슬롯 정보를 외부 URL로 전달합니다. Response로 돌아오는 값이 '49900'이라면, 챗봇은 49,900원을 LINE PAY를 통해 결제합니다.

@피자 : 콤비네이션 피자
@피자 사이즈 : S사이즈
@피자 수량 : 2판

폼은 사용자의 질문에 따라서 객관식 및 주관식의 질문을 제공하고, 그 답변에 따른 피드백으로 대화를 이어갈 수 있게 하는 기능입니다.

폼 이름을 정의하면, 답변에서 #{FormName}의 형태로 컴포넌트를 사용할 수 있습니다.

폼은 다음의 두 가지 타입을 제공합니다.

  • 객관식: 객관식 버튼 중에 하나의 버튼을 선택하도록 합니다.

chatbot-03-023.png

예를 들어 고객에게 확인받는 Yes/No를 객관식 폼으로 만들었다면 이 컴포넌트를 다양한 경우에 사용할 수 있습니다. 폼을 적용하려면 1) 객관식 답변 유형을 선택하여 폼을 불러오거나, 2) 답변 입력창에서 #을 입력하고 폼 목록이 보이면 상황에 맞게 선택하여 적용합니다.

  • 주관식: 챗봇의 질문에 사용자의 Text 응답을 받아서 답변을 제공하도록 합니다.

주관식 폼에서는 먼저 사용자가 질문을 하면 먼저 주관식 폼의 안내 문구를 먼저 응답합니다. 그리고 사용자의 입력이 있으면 주관식 폼의 답변을 챗봇에서 내보냅니다. 응답 흐름은 다음과 같습니다.

사용자: 견적 문의하기

챗봇 답변: 안내 메일을 받을 수 있는 이메일을 입력해주세요. 입력한 정보는 담당자에게 전달됩니다.     
==> (FORM의 안내문구)

사용자: abc@navercorp.com

챗봇 답변:  담당자에게 이메일 주소를 전달했습니다. 감사합니다. 
==> (FORM의 답변)

chatbot-03-023.png

주관식 폼 답변이 나가는 경우 해당 메시지에 액션메소드가 존재한다면, 해당 액션메소드의 헤더에 X-KAA-USERMSG를 key로 하여 utf-8로 인코딩된 메시지가 전달됩니다.

chatbot-03-023.png

연관 정보 바로가기

도메인 생성, 대화 목록과 컴포넌트 관리 및 통계 관리와 관련하여 아래 사용 가이드를 참고하실 수 있습니다.

""에 대한 건이 검색되었습니다.

    ""에 대한 검색 결과가 없습니다.

    처리중...