대화에서 추출한 정보나, 설정된 값을 가지고 대화 흐름을 진행합니다.
Edit
화면 위치 : 챗봇 만들기 > 챗봇 제작 > 주요 대화 > 대화 흐름


파라미터(Parameter)란?

우리말로 매개변수라고 합니다. 고정적인 정보가 아닌, 상황에 따라 달라지는 정보(변수)를 처리하기 위한 단위입니다.

파라미터를 사용하는 경우 2가지

(1) 사용자에게 입력을 받아 ➡️ 시스템에 전달하거나 분기되는 경우

(2) 시스템에서 고정적인 정보가 아닌 변화하는 값을 받아 ➡️ 챗봇이 답을 하거나 분기되는 경우

하나씩 살펴보도록 하겠습니다.

(1) 사용자로 부터 입력받아 시스템에 전달 또는 분기

사용자가 챗봇에게 질문하거나 명령을 할 때, 파라미터를 활용해 ‘대화 의도’ 분류를 합니다.

예를 들어 “양념치킨이랑 콜라 하나 배달해주세요” 라고 말했다면 ➡️ 대화의도는 ‘배달 주문’입니다.

이 짧은 문장 하나에 여러 요소가 있는데요. 챗봇은 뜻을 정확히 파악하기 위해 각 단어들을 엔티티를 통해 분류해서 정리합니다. 엔티티를 간단하게만 설명하면, 특정값을 추출하기 위해 설정한 ‘단어군’이라고 할 수 있겠습니다

위 문장에서 보면

엔티티 = 메뉴

파라미터: 양념치킨, 후라이드치킨, 간장치킨

엔티티 = 사이드

파라미터: 콜라, 사이다, 제로콜라, 맥주

엔티티 = 갯수

파라미터: 하나, 둘, 셋, 넷 …

엔티티 = 어디서 (장소)

파라미터: 배달, 매장식사, 포장픽업

이렇게 정리할 수 있겠습니다.

이때 같은 대화의도를 가진 질문이어도, 파라미터값이 무엇이냐에 따라 다른 답변이 나갈 수 있습니다. 예를 들어 ‘양념치킨’은 주문이 가능하니까 “네~ 주문되었습니다” 라고 답변이 나가지만, ‘간장치킨’은 소스가 다 떨어져서 “재료소진으로 주문이 불가능합니다. 다른 메뉴를 이용해주세요”라고 답변이 나갈 수 있는 것입니다.

이와 같이 파라미터값에 따라 답변결과가 다르게 나가도록 분기처리를 하기도 합니다.

(2) 시스템으로 변화하는 값을 받아 챗봇이 답하거나 분기하는 경우

기본적인 원리는 앞에서 말씀드린 바와 같습니다.

쇼핑몰 챗봇에게 ‘홍길동’이라는 사용자가 ‘장바구니 보여줘’ 했을 때, 챗봇은 ‘홍길동’ 회원의 장바구니를 보여줘야 합니다. 만약 ‘성춘향’의 장바구니를 보여준다면 낭패겠죠?

홍길동 사용자가 ‘홍길동의 장바구니를 보여줘’라고 하지 않아도, 챗봇은 ‘홍길동’이라는 사실을 알고 있어야 합니다. 이런 경우 시스템에서 자체적으로 파라미터를 설정하여 가지고 있어서, 값을 연결해 결과를 출력하기도 합니다.

파라미터 사용시 생각할 점

  1. 파라미터명엔티티'반드시' 설정되어야 합니다. 엔티티는 변수 타입(집합), 파라미터명은 변수 개체의 이름 (원소)의 관계로 이해할 수 있습니다.
  2. 파라미터가 필요없는 대화도 있습니다. “안녕? 반가워” ➡️ “나도 반가워!”같은 단순한 반응을 요구하는 대화의도에 파라미터는 불필요합니다. 이런 경우 대화콘텐츠 구조를 복잡하게 하기보다는, 간단한 간편답변 형태로 처리하는 것이 좋습니다.
  3. 파라미터 추출이 안된 경우, Slot노드를 활용해 사용자에게 파라미터 정보를 요구할 수 있습니다.

    예를 들어 예약상황에서, “3시까지 갈게요”라고 한 번에 필요한 정보를 다 말할 수도 있지만 “오후에 갈게요”라고 하는 경우도 있게죠? 이때 챗봇은 정확한 시간정보에 해당하는 파라미터값을 필수적으로 요청할 필요가 생깁니다. “오후 몇시쯤에 오시나요?” 하고 추가질문을 하게 되는 것이지요.

  4. 파라미터의 기본값을 설정할 수 있습니다. 디폴트(default)값은 아무런 정보가 들어오지 않았을 때, 파라미터에 담겨있는 값입니다. 이것은 엔티티에 담겨 있는 값들과는 상관없이 설정 가능합니다.

파라미터의 종류

파라미터의 종류는 크게 두가지로 나눌 수 있습니다

(1) 대화 흐름 파라미터 / 이벤트 파라미터

(2) 세션 파라미터

하나씩 살펴보도록 하겠습니다.

(1) 대화 흐름 파라미터 / 이벤트 파라미터

이 두 파라미터는 대화 흐름 시작부터 값이 생성되고, 대화 흐름이 끝날 때까지만 값을 유지합니다. 대화 흐름 내에서만 필요한 정보를 담아놓을 필요가 있을 때 이용하는 파라미터입니다.

대화 흐름 파라미터

대화 의도와 연결되어 있는 파라미터입니다. 의도 추론률에 영향을 줍니다. 따라서 대화 흐름 파라미터의 수정은 대화 의도 화면에서 직접 하도록 되어있습니다.

이벤트 파라미터

코드를 통해 호출되는 대화 흐름에서 사용되는 파라미터입니다. 생성과 삭제가 자유롭습니다.

(2) 세션 파라미터

세션 파라미터는 대화 흐름 완료 여부와 상관없이, 사용자 세션동안 값을 계속해서 저장하고 있는 파라미터입니다.

사용자 세션의 길이는 채널별로 상이합니다. 어떤 사이트는 30분 정도 다른 것 하다 와서 보니 저절로 로그아웃되어있기도 하고, 어떤 사이트는 하루종일 켜놔도 그대로인 경우가 있습니다. 세션값이 달라서 그렇습니다.

이를 유념하여, 채널별 세션 정책을 확인하신 후 대화 흐름를 계획하시는 것이 좋습니다. 단비 자체적으로는 매일 새벽 3시, 세션 파라미터를 일괄 초기화합니다.

파라미터 생성

파라미터를 생성할 때는 다음과 같은 제약사항이 존재합니다.

  • 파라미터명에는 띄워쓰기를 허용하지 않는다.

  • 파라미터명에는 $와 _를 제외한 특수문자를 허용하지 않는다.

  • 파라미터명은 유일해야 한다. (중복 불가)

  • 최대 50자까지 허용한다.

파라미터 등록 방법으로는 크게 2가지가 있습니다.

  • [대화의도]에서 등록하기

  • [대화흐름]의 파라미터관리 패널에서 생성

대화의도에서 등록할 경우, 사용자가 입력할 것으로 예상되는 ‘예문’을 드래그하여 설정할 수 있습니다. 예문에서 정보추출에서 자세하게 설명하고 있으니 참고하세요.

파라미터 관리 패널

대화 흐름 상세페이지 왼쪽 하단에서 찾으실 수 있습니다.

보통은 Slot 노드에서 간단한 분기처리를 위한 파라미터를 만들거나, API노드 활용시 사용할 파라미터를 빠르게 등록하는 용도로 사용합니다.

여기서 등록한 파라미터는 대화의도에서도 사용가능합니다. 대화의도와 연결된 대화흐름인 경우 의도 파라미터를, 함수를 통해 호출되는 이벤트플로우일 경우 이벤트 파라미터를 생성하고 관리하게 됩니다.

대화 흐름 파라미터, 이벤트 파라미터를 생성할 때는 각 파라미터 성격에 맞는 엔티티를 설정해야 합니다.

엔티티에 대한 자세한 내용은 여기에서 확인하실 수 있습니다.

파라미터의 활용

등록된 파라미터는 Slot노드에서 질문 파라미터로 설정하기. Speak노드나 Slot노드, Carousel노드에서 파라미터 본문에 입력하는 용도로 사용하기, Split노드에서 분기하는 기준으로 활용하기 등 다양하게 사용될 수 있습니다.

파라미터의 구체적인 활용법은 대화 흐름 설명 페이지에서 이어서 확인하실 수 있습니다.

특수 파라미터

단비Ai에서는 다음과 같은 특수한 파라미터를 제공하고 있습니다. 사용하고 계시는 요금제에 따라 사용이 제한될 수도 있습니다. (감성분석 기능은 제휴를 한 사용자를 대상으로만 서비스 됩니다.)

파라미터명 엔티티 기능
positive sys.any 감성 분석 결과 긍정도를 제공
negative sys.any 감성 분석 결과 부정도를 제공
neutral sys.any 감성 분석 결고 중립도를 제공

대화 의도에 위 파라미터들을 추가해두고 [챗봇 추론설정 > 대화평가 > 감성분석]을 하시면 해당 특수 파라미터를 사용할 수 있습니다. 해당 파라미터들을 통해 대화 흐름 속에서 사용자의 감성을 분석하여 긍정, 부정, 중립에 대한 정도를 수치로 제공받을 수 있습니다. ​


함께해요! 챗봇시대 :)

모든 사물, 디지털 매체와 말이 통하는 시대! 단비Ai와 함께 반드시 오게될 챗봇시대를 열어갔으면 좋겠습니다.


인공지능 챗봇빌더 단비Ai 시작하기

혹시 서비스 소개서를 찾고 있나요?

단비Ai 서비스 소개서는 아래 링크를 클릭해 다운로드 하실 수 있습니다.
서비스 소개서 다운로드

챗봇을 교육용도로 활용하고 싶으신가요?

단비Ai를 기반으로 만들어진 Ai교육, 에이아이런을 만나보세요 :)

Tags: nlu basic