지금까지 Tech Blog를 통해서 다양한 챗봇(Chatbot)’ 이야기를 해보았는데요. 앞서 다룬 이야기들로 챗봇을 개념적으로 이해하기 쉽고 실제 활용해 봄으로써 이렇게 만들 수 있구나’ , ‘이런 식으로 동작 하는구나라는 기본적인 감(?)은 잡으셨죠? 하지만, 실제 개발을 진행하면서 어렵고 답답한 부분도 있으셨을 것이라 생각합니다. 오늘은 이전보다 한 단계 심화하여 활용해 볼 수 있는 이야기를 하려고 하는데요. 먼저 챗봇을 구성하는 구성 요소를 살펴보면 다음과 같습니다. 



위 그림을 보면, 이전 컨텐츠를 통해 다루었던 #Intent, @Entity, Dialog가 보이시죠? 이제는 많은 익숙한 단어들 입니다. 이를 제외하면 ‘$Context’라는 생소한 단어가 보이실겁니다. 오늘 함께 살펴볼 것이 바로 ‘$Context’인데요. 대화를 통해 도출되는 ‘$Context’ 관련 내용과, 그런 ‘$Context’를 쉽게 사용하는데 도움을 줄 수 있는 ‘Slot’이라는 기능도 함께 알아보도록 하겠습니다. 


[$Context]

‘Context’는 대화 서비스(Watson Conversation)의 대화 중에 언급된 ‘Intent’ , ‘entity’ 등을 개체화하여 저장하고 나중에 필요할 때 해당 내용을 다시 확인하고 사용할 수 있게 해주는 역할을 합니다. 대화 중에 해당 ‘Context’를 이용해 대답을 할 수 있습니다. ‘Context’를 지칭하는 부분은 ‘$’를 사용하며, 이는 인텐트의 ‘#’ 그리고 엔티티의 ‘@’과 같은 역할을 해주죠. 다음과 같은 형태로 사용할 수 있습니다. 


Context Set 하기

먼저 Dialog Node에서 Edit with Jason을 클릭해주면 뜨는 검은 창을 열어 주세요.

1. 대화 노드 설정에 대답을 입력하는 란에 Open Json editor Click 해주세요.



2. 이후 나오는 검은 창에 아래와 같이 타이핑해주면 됩니다.

“context” : { “과일”:”<?@과일?>”}

여기서 앞에 따옴표 속의 과일은 쉽게 말하면 변수 선언이라고 생각해주면 되고 @과일은 발생한 Entity의 값을 넣어 주겠다는 뜻이죠.

이렇게 처리해 주면, 해당 노드에서 발생한 @과일의 Entity과일이라는 변수 안에 저장됩니다. 이제 넣은 변수를 가져다 쓰는 방법은 아래와 같습니다. 


Context Get 하기

훨씬 더 간단합니다. <?$과일?>이라고 대화 중에 불러오기만 하면 됩니다. Jason Editor 창을 열지 않고, 바로 대답에 형태만 맞게 작성해도 동작이 됩니다. 이게 적용되었는지 확인을 하고 싶다면, 테스트 대화창의 상단을 보면 확인 가능합니다. 



여기서 Manage Context를 클릭해 주면 다음과 같이 나타나는데요. 



여기서 보면 Context가 잘 들어간걸 확인해 볼 수 있습니다. 실제 입력한 부분을 보면 다음과 같습니다. 



이렇게 사용할 수 있도록 설정이 됩니다. 여기서 ‘Slot’ 기능을 활용하면, 사용은 더 간편해지는데요. 노드 설정 화면에서 아래와 같이 사용할 수 있습니다. 


이렇게 ‘Slot’ 기능을 On해주고, 적용하시면 됩니다. 



‘Slot’을 통해 ‘Context’를 사용할 수 있습니다. 또한 ‘Slot’을 사용할 경우 여러 가지 Node에서 얻어야 될 정보를 한 Node에서 얻을 수 있어 굉장히 사용이 편리합니다. Slot은 한 개 이상도 추가가 가능합니다.

Context를 이용하게 되면 훨씬 더 다양한 대답을 적은 Node로 처리할 수 있어 Node의 효율 자체를 많이 올려줄 수 있어 기대가 됩니다.

대화서비스(Watson Conversation)API Tool에 점점 더 많은 기능이 생기고 계속해서 발전해나가고 있는 것 같아서 다음에는 어떤 기능이 추가될지 기대가 됩니다.

여러분도 AIBRIL의 대화서비스(Watson Conversation)API로 똑똑한 챗봇만들어 보시길 바랍니다



티스토리 툴바