ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 서버리스 카카오톡 챗봇 만들기: 3. 비정형 응답 받아내기
    주제탐구/튜토리얼 2020. 7. 21. 22:28

    저번 글에서는 엔티티를 등록하고, 등록한 엔티티로 바로연결을 구성한 뒤,

    엔티티를 기반으로 날씨 파라미터값을 받아내는 부분까지 다루었다.

     

    이번 글에서는 드디어 마지막으로! 일기의 제목과 내용을 받아내는 부분을 완성해 보려고 한다.

    정말 기본적인 뼈대가 완성되는 것이다. 👾

     

    오늘 만들 부분!

    시작하기 전에

    기존 카카오i 오픈빌더의 포럼이 사라지고, 대신 챗봇과 고객센터가 운영된다고 한다.

    특히 챗봇은 Q&A 데이터가 학습되어 있다고 하니 도움이 필요한 경우 이용해 보아도 좋을 것 같다.

     

    고객센터의 문의 창구도 열려 있다

    비정형 응답을 파라미터로 받는 방법

    지금까지 챗봇에 추가했던 날짜, 날씨값과 달리 제목, 내용은 정해진 형식이 없다.

    유저가 입력하는 대로 받아서 제목과 내용으로 삼아야 한다.

     

    아무말이나 입력해도 받아주어야 한다.

    어떻게 하면 유저의 아무말을 파라미터값으로 받을 수 있을까?

    아무말이니 패턴도 없고, 사용자 발화에서 태깅해서 입력받을 수도 없다.

     

    따라서 (눈치챘겠지만) 필수 파라미터로 지정하고 되묻기 질문을 통해서 받아야 한다.

    저번 글에서 마지막으로 수정했던 블록, '날씨 입력 완료'로 돌아가서 필수 파라미터를 추가해 보자.

    파라미터명은 적당히 title이라고 입력해 두면 되는데... 어떤 엔티티를 사용해야 할까?

    이전에 시스템 엔티티 목록을 꼼꼼히 읽었다면 눈치챘겠지만...

    오픈빌더에서는 이런 비정형 응답을 받기 위해 활용할 수 있는 @sys.text라는 엔티티가 있다.

    위 글에서 @sys.text를 찾아 설명을 보면, 이렇게 쓰여 있다.

     

    되묻기 상황에서 '유저가 입력한 문장 전체'를 태깅합니다.

     

    말 그대로 되묻기 질문을 던졌을 때 유저가 어떤 말을 입력하면, 그 말 전체를 태깅해서 파라미터값으로 삼는 엔티티이다.

    바로 써 보자. 그런데 파라미터 만들기 화면에서 엔티티 목록을 아무리 스크롤해도 @sys.text가 보이지 않는다.

    이것은 @sys.text가 기본적으로 비활성화되어 있기 때문이다.

    사용하고 싶으면 시스템 엔티티 관리에서 해당 엔티티를 활성화해 주어야 한다.

     

    우상단 엔티티 버튼을 눌러 엔티티 관리 화면을 띄우고, '시스템 엔티티' 탭을 눌러 시스템 엔티티 관리 화면으로 들어가자.

     

    이렇게 생긴 엔티티 버튼을 찾아보자.

    시스템 엔티티 관리 화면을 스크롤해 보면 '기타' 섹션에 @sys.text가 보일 것이다.

    토글을 눌러 활성화하면 사용 준비가 끝난다.

     

     

    다시 파라미터 만들기 화면으로 돌아오면 @sys.text가 엔티티 목록에 잘 뜰 것이다.

    이제 파라미터 등록을 계속 진행할 수 있다. 값에 $title을 넣어 주고 확인 버튼을 눌러 등록하자.

     

    바로 되묻기 질문을 입력해 보자.

     

    일기의 제목을 한 줄로 입력해 주시겠어요?

     

    확인 버튼을 눌러 되묻기 질문을 등록하고, 블록을 저장하고, 바로 테스트해 보자.

    위의 과정을 거쳤다면 정상적으로 $title에 입력값이 들어올 것이다.

     

    그럴듯하다...!

    내용 파라미터도 똑같은 방법으로 추가해 주자. 아래와 같이 적당한 되묻기 질문을 사용한다.

     

    마지막으로 내용을 입력해 주세요.

     

    마지막으로 블록의 응답을 작별인사로 바꿔주면, 일기 쓰기 플로우가 끝이 난다!

     

    일기가 저장되었습니다. 오늘 하루도 고생 많으셨어요. 🤗
    내일 다시 뵈어요.

     

     

    바로 테스트해 보면, 정상적으로 내용값도 들어오는 것을 확인할 수 있다. 👏

     

    저장 플로우 완료!

    아직 남아있는 과제들

    카카오톡 챗봇을 이미 만들어본 경우라면 뭔가 부족하다는 것을 느낄지도 모른다.

    사실 일기 쓰기 플로우에서 사용되는 블록들 사이에는 컨텍스트를 설정해 주어야 한다.

    다만 백엔드와 연동한 상태에서 컨텍스트를 설명하는 것이 좀 더 와닿을 것 같기 때문에,

    우선 이번 글에서는 컨텍스트 설정까지 하지는 않았다.

     

    컨텍스트가 무엇인지는 백엔드를 구성하면서 설명할 예정이다.

    지금은 그냥 백엔드를 만들면서, 오픈빌더에서 좀 더 작업할 부분이 있다고 생각해 주시면 될 것 같다.

     

    다음 글부터는 챗봇이 말만 '저장되었습니다'라고 하지 않도록...

    AWS를 사용하여 챗봇의 백엔드를 구성하고, 오픈빌더와 연동하는 작업을 진행해 볼 예정이다.

Designed by Tistory.