앞서 Chatbot과 관련된 Conversation API 간단하고 쉽게 이용해보기’ (1편)을 소개해드렸습니다.


‘과일가게’라는 상황을 설정하여 IntentsEntity에 대한 정의와 이해를 위한 시간이 이었다면, 이번 시간에는 직접 대화 셋을 구성하는 방법과 직접 테스트를 해보며 더 쉽게 이해해보며 이용하는 방법을 소개해 드릴게요. 진행하는 방법은 지난 시간과 동일한 상황과 SaaS 상에서 제공되는 API 개발 툴을 이용하여 진행해보도록 하겠습니다.  


자! 그럼, 시작해 볼까요?


 

1. 대화 셋 사고 정리도 그리기.

온라인상의 툴에서도 비슷한 그림을 그려 설정할 수 있지만, 먼저 대화 셋을 구성하는 사고 정리를 위해 미리 그림을 그려 정리한 후 진행해 보도록할게요. 여러분도 직접 그려보며 정리하는것이 훨씬 더 편하실 거예요! 



제가 그린 정리도는 위와 같습니다. 간단하게 설명을 하면, 프로그램에서의 일관성을 위해 ‘#’으로 Intents를 표현했으며, ‘@‘로 Entity를 표현하여 정리했습니다. 진행 Flow는 파란색 선으로 자연스럽게 흘러가는 정방향 진행, 오렌지(주황색) 선은 Jump to으로 표현했습니다. 이외 필요한 IntentsEntity는 추가로 생성했습니다. 제가 만들어갈 대화셋이 조금 이해되시나요?   어떻게 만들지 결정했으니 이제 실제 Node를 작성해보도록 할게요. 


 

2. Node 작성하기.

먼저 Dialog를 선택할 경우 다음과 같은 창이 나옵니다. 




아직 Dialog 화면에 아무것이 나오지 않죠?


저는 1편에서 먼저 진행한 IntentsEntity를 완성해 놓았다고 가정하고 진행하도록 할게요. 초록색으로 Create라고 되어있는 버튼을 누르시면, 아래 그램과 같이 기본적으로 2개의 Node가 자동으로 생성되어 있는 것을 볼 수 있습니다. 





2개의 노드는 ‘환영인사’와 ‘기타’입니다. ‘환영인사’는 대화 모드에 접속을 하는 순간 환영인사를 하도록 설정되어 있기 때문에 나오는 것입니다. 같이 환영인사 노드를 살펴볼까요?


‘환영인사’ 노드를 클릭하시면 다음과 같은 화면이 나옵니다. 





‘환영인사’노드를 천천히 살펴볼게요.


제일 위 환영 인사 라는 글자를 볼 수 있는데, 이것은 단순히 해당 Node의 이름입니다. 그러니 직접 분류하기 쉽고 이름만 봐도 내용을 알 수 있게 설정하는 것이 좋습니다.


만약 여럿이서 대화 모델을 함께 개발해야 한다면 개발 프로젝트에서 하듯 Node 별로 Naming Rules를 정해 놓고 진행하시는 것이, 추후에 추가되는 Node로 인한 혼란이 줄어들 것입니다. 하지만 혼자 대화 모델을 개발한다면 본인만 알 수 있도록 설정해도 괜찮겠죠?


 

Node의 제목 하단에는 ‘If bot recognizes’라고 되어있습니다. 그 아래는 ‘welcome’이라는 조건이 있습니다. 이 ‘welcome’은 기본적으로 제공되는 조건으로, 누군가 API를 사용하기 위해 접근을 하면 이를 인지해서 먼저 환영 혹은 용건에 대해서 말할 수 있습니다.  


지금 보시는 Node에서는 누군가 접근을 하게 되면 “안녕하세요? 무엇을 도와드릴까요?”라고 대답하도록 설정이 되어있습니다. 그 아래로 하고 싶은 말들을 추가할 수 있으며, 이렇게 추가해 놓은 대답을 순차적으로 혹은 임의 선택 적으로 대답할 수 있도록 설정할 수 있습니다.


또는 화면에서 직접 입력을 할 수도 있고, 대답 옆 작은 동그라미 3개로 된 아이콘 클릭하여 Jason 형태로 직접 코딩할 수도 있습니다. 추가적으로 ‘welcome’처럼 ‘anything_else’라는 조건도 기본적으로 제공이 되는데, 이 경우에 IntentsEntities를 인지하지 못하거나 혹은 인지하더라고 Node로 설정해 놓지 않은 조건들일 때 ‘anything_elseNode로 이동하게 되어있습니다. 


Coding에서는 보통 예외 처리라고 이야기하는 부분으로 아무리 대화를 잘 구성한다고 하더라도 모든 IntentsEntities를 사전에 다 입력할 수가 없기 때문에 이와 같은 예외 처리가 필요하며, 보통은 “잘 이해하지 못했습니다. 다시 한번 말씀해 주세요” 등과 같이 처리하는 경우가 많습니다.

 



3. Node 기능 활용하기

지금부터는 Node 간 기능들을 알아 보도록 할게요.


‘환영 인사’ Node 옆에 보면 작은 동그라미 3개로 된 아이콘을 클릭해봅니다. 이곳을 클릭하게 되면 아래와 같은 Node 간 설정에 관련된 메뉴를 볼 수 있습니다. 





설정 메뉴에서는 하위 노드(child node)를 추가할 수도 있고, 상위 노드(Above node), 그리고 같은 Depth의 다른 조건인 노드(node below)를 추가할 수 있습니다. 


또한 Node를 다른 곳으로 이동시키거나 삭제 등을 할 수 있습니다 저는 먼저 [Move]를 클릭해보았습니다. 아래 그림은 [Move]를 선택할 경우 확인할 수 있습니다. 


현재는 Node가 많지 않아서 잘 느껴지지 않을 수 있지만 Nodedepth나 흐름상 어색하다고 느낄 경우, 새로 만들지 않고 이동을 통해 대화의 흐름을 바로잡을 수 있어 꽤 편리하고 많이 쓰게 되는 기능 중 하나입니다.





다음은 [Jump to] 기능을 살펴볼게요. [Jump to]는 한 Node가 끝나거나대화의 의도가 노드들 간에서 흘러가는 도중 흐름에 맞지 않다고 판단되면 맞는 Node로 보내 주는 역할을 할 수 있습니다. 아래 조금 더 복잡한 대화를 예를 들어보았으니 같이 한번 보시면 좀 더 이해하기 쉬우실 거예요! 





위 대화에서 보시면 사과를 사고 싶은 거라고 생각했는데, 사과가 아닐 경우 처음에 과일을 다시 선택 할 수 있도록 ‘Anything_else’ 조건이 있는 Node로 흘러가도록 되어 있습니다.  [Jump to]를 사용하는 경우에 조건을 선택할 수가 있는데 이동한 Node의 대답 중 하나를 할 수 있게 하거나 혹은 해당 Node로 이동하여 대화를 진행을 이어 갈 수 있도록 해주는 조건 등이 있습니다. 이는 해당 대화 용도에 맞는 조건으로 설정하여 진행하시면 됩니다. 




4. 대화 테스트해보기.

위에 설명 드린 내용으로 천천히 Dialog 부분까지 완성하셨다면 이제 만들어진 대화를 테스트해 볼 수 있습니다. 툴이 없었다면 귀찮아도 화면을 구성해서 확인해봐야 되겠지만 에이브릴 Conversation API 상에서는 바로 확인해 볼 수 있도록 화면이 제공되어 있습니다. 즉 스마트폰처럼 익숙한 UI 상에서 편한 테스트가 가능한 것이죠.





 테스트해보기 위해 대화 말풍선 안의 작은 동그라미 3개로 된 아이콘을 클릭합니다. 그럼 아래와 같은 그림을 볼 수 있습니다. 





우측에 대화창이 열린 것이 보이시나요? 화면에서 볼 수 있듯이 화면을 열자마자 welcome’ 조건에서 설정해 두었던 인사말이 먼저 나오네요.


해당 대화 창이 열리면 지금까지 만들어 놓은 대화셋을 테스트해볼 수 있으며, 어떤 Intents와 Entities를 인지했는지 확인 할 수 있고 이를 통해 간단한 수정과 학습이 가능합니다.  


저는 먼저 대화를 입력해보겠습니다. “새콤한 과일이 먹고 싶어요”





Aibril은 해당 내용 속에서 ‘#먹다라는 Intents‘@사과:새콤한 라는 Entities를 인지하였네요.  따라서 해당 내용을 인지한 Bot이 “사과가 드시고 싶은 것 같은데, 맞나요?”라는 대답을 하였습니다.   역시 똑똑하죠? 이렇게 개발하며 대화 테스트가 가능하며, 잘못 이해하는 경우 대화 창에서 인지한 Intents를 수정할 수 있도록 되어 있습니다.


SaaS 상에서 제공되는 API 개발 툴을 활용하면 이렇게 간단하고 쉽게 개발하고 테스트까지 해볼 수 있으니 정말 편리하지 않나요?  


지금까지 Conversation API 간단하고 쉽게 이용하는 방법을 소개했습니다. 저와 함께 Conversation API로 챗봇을 구성하는 기본적인 것들을 알았으니 지금부터 여러분의 챗봇을 제작해보세요!






저작자 표시 비영리 변경 금지
신고

티스토리 툴바