← 돌아가기

5.챗봇 5단계 완성


기본 챗봇 만들기 (5단계)

  • 1 단계 : 스토리[챗봇작업공간] 만들기
  • 2 단계 : MINDMAP[대화] 만들기
  • 3 단계 : #INTENT[의도] 만들기
  • 4 단계 : @ENTITY[대상객체] 만들기
  • 5 단계 : 챗봇 테스트 및 공개 챗봇 만들기

 MINDMAP.AI을 이용하여 나만의 챗봇이 어떻게 유저의 의도에 맞게 자연어 처리가 되는지 차례대로 간단히 보여줄 예정입니다. 따라해 보시면 금방 간단히 될 수 있음을 느끼게 될 것입니다.

혹시, 1.챗봇대화? 2.AI에디터사용법 3.#INTENT만들기 4.@ENTITY만들기의 사용법을 보지 못하신 분들은 
최소한 1.챗봇 대화란? 을 정독 후에 여기로 와주세요^^

먼저, 사이트의 메인화면 상단의 MINDMAP.AI에디터 메뉴텝을 클릭하여 스토리관리화면으로 이동합니다.

1 단계: 스토리[챗봇작업공간] 만들기


1) MINDMAP.AI에서의 스토리란

앱, 디바이스 등에 대화인터페이스를 제공하기 위한 하나의 챗봇작업공간이라는 개념을 가지고 있으며, 스토리내에서  MINDMAP, INTENT, ENTITY등을 만들고 이를 이용하여 사용자와의 대화를 위한 스토리(챗봇)를 만드는 작업공간이기도 합니다.

또한 스토리를 통해서 서비스개시(Publish), 외부채널과 통합, 공유하여 협업으로 제작할 수 있는 공간입니다. 

 

2) 스토리 만들기

먼저, 메인페이지 > Mindmap.AI에디터 메뉴를 클릭하면 스토리리스트 페이지가 나타납니다.

+ 아이콘을 클릭하여 새 스토리를 구성하는

  • 타이틀
  • 설명
  • 언어

등을 입력 후 아래의 작성하기 버튼을 클릭하면, 다음단계인 MINDMAP에디터가 나타납니다.(2 단계: MINDMAP 만들기)

다시 스토리관리 화면으로 가기 위해서는 MINDMAP에디터 왼쪽 상단에 있는 "< 타이틀명" 을 클릭하면 됩니다.   

2 단계: MINDMAP[대화] 만들기


1) MINDMAP 이란

스토리를 구성하는데 가장 중요한 것은 대화의 흐름이며, 다른말로 대화관리라고 합니다.            즉 챗봇과 사용자의 질문 및 응답에 필요한 것을 관리하는 곳으로 사용자가 질문 시 사용자의 의도(INTENT)와 의도를 구체화하는데 필요한 개체(ENTITY)를 파악하고, 필요한 답변(OUTPUT:대화표시)과 여러 설정(컨텍스트, 링크설정)들을 이용하여 정보를 설정하여 대화를 관리하는 대화매니저라고도 표현하기도 합니다.

2) MINDMAP 만들기

마인드맵 형태로 되어 있는 MINDMAP에디터에 들어가면, 왼쪽 상단에 MINDMAP, #INTENT, @ENTITY 3개의 탭이 있습니다. 

간단한 예로, 사용자가 처음 챗봇과 대화를 시작할 때 사용자에게 보내는 멘트를 입력해 보겠습니다.

 

챗봇 시작 멘트 만들기

  • 루트노드(M)의 자식노드 중 '.start' 노드 클릭
  • .start 노드 선택된 상태에서 오른쪽의 대화표시 클릭
  • Mr.대화에디터 팝업
  • 대화표시 output> text 필드에 "안녕하세요. 만나서 반갑습니다."라고 입력
  • [전체저장] 클릭 후 닫기 아이콘(x) 클릭
  • MINDMAP 페이지 왼쪽 하단 Run 버튼 클릭

위의 과정으로 가장 간단한 챗봇 시작 멘트를 만들어 보았습니다. 

다음은 사용자의 의도를 파악해서 대답하는 기능을 만들어 보도록 하겠습니다.

3 단계: INTENT[의도] 만들기


 1) INTENT 란
사용자의 의도를 규정한 것으로, 이를 통해 대화 상에서 사용자의 말하는 의도를 파악할 수 있습니다. MINDMAP에디터에서는 INTENT를 '#단어'로 작성합니다.                                                 예를 들어 '#인사'라는 INTENT는 사용자와의 대화에서 인사와 관련된 의도를 정의합니다.
2) INTENT 만들기
  • 왼쪽 상단의 #INTENT 탭을 클릭하면 INTENT 창이 팝업
  • 루트 노드에서 자식노드를 만들고 '#+의도명'을 입력합니다. (ex.#인사)
  • #인사 노드에서 자식노드를 여러 개 만들고, 사용자의 예상 예문을 입력. (ex. 하이)
  • 입력 후 우측상단의 √ 버튼 클릭으로 저장
  • 왼쪽 하단의 Run 버튼을 클릭하여 "하이"등으로 테스트 및 확인

Tip. 하나의 INTENT는 5개 이상의 예문이 필요하며, 다양한 예문을 많이 만 의도를 보다 정확하게 판별해 내는데 도움이 됩니다.

 

 4 단계: ENTITY[대상객체] 만들기


 1) ENTITY 란
사용자와의 대화에서 의도를 보다 상세히 구분하기 위해, 의도 내에서 대상이 되는 객체를 규정한 것을 말합니다. MINDMAP에디터에서는 ENTITY를 '@단어' 로 표시합니다.                              사용자의 말하는 의도를 ENTITY와 함께 사용하여 보다 구체화 할 수 있는 이점이 있습니다.
예를 들어, #날씨 라는 의도에 '@시간' 또는 '@장소' 라는 ENTITY를 추가하여, 사용자가 알고자 하는 날씨에서 시간 또는 지역을 확실히 구분하여 응답할 수 있습니다.
2) ENTITY 만들기
  • 왼쪽 상단 @ENTITY 탭을 클릭하면 @ENTITY창이 팝업
  • ENTITY창의 루트노드에 자식노드를 만들고 '@+개체명' 입력 (ex.@시간)
  • '@시간' 에서 다시 자식노드를 여러개 만들고 시간의 예문을 입력 (ex.오늘,내일)
  • '오늘' 노드에서 다시 자식노드를 만들고 :오늘 의 동의어를 기입, 예:투데이
  • @지역 노드에서 자식노드를 만들고 시간의 예문을 기입 (ex.서울, 수도권)
  • 입력 완료되었으면 우측상단의 √ 버튼(저장기능) 클릭으로 저장

3) MINDMAP에 ENTITY추가하기 

  • MINDMAP 페이지에서 M 루트노드에 자식노드 '#날씨'를 추가
  • #날씨 노드에 @시간:오늘 의 자식노드를 추가
  • @시간:오늘 노드를 클릭하고 오른쪽 대화표시를 클릭
  • 대화에디터창에서 OUTPUT>text 필드에 '오늘의 날씨 입니다.' 입력
  • #날씨 노드에 자식노드 '@시간:내일' 추가
  • @시간:내일 노드를 클릭하고 오른쪽 대화표시를 클릭
  • 대화에디터창에서 OUTPUT>text 필드에 '내일의 날씨 입니다.' 입력
  • 왼쪽아래에 Run버튼 클릭하여 "오늘 날씨는?"등으로 테스트

ENTITY를 통해서 의도를 보다 상세하게 구분할 수 있으며, 보다 정확하게 유저의 의도를 판별해 낼 수 있습니다.

 

5 단계: 챗봇 테스트 및 공개챗봇만들기


1) 챗봇 테스트하기

1 단계~4단계를 통해서 만들어진 챗봇을 왼쪽 하단 [Run] 버튼을 클릭하여 테스트 합니다. 

 

2) 공개챗봇만들기

앞에서 만든 챗봇을 공개적으로 만드는 방법은 다음과 같습니다.

  • 스토리리스트로 가기
  • 각각의 스토리 오른쪽 상단 있는 …아이콘을 클릭
  • 두번째 메뉴인 채널을 선택
  • 채널화면에서 Unpublished를 Published로 변경
  • 아래에 있는 설정하기 버튼을 클릭
  • 공개챗봇리스트 페이지를 클릭하여 확인하기

 

그외의 다른채널에 챗봇을 공개하기 위해서는 다른 사용법을 참조해 주세요.