데이터 엔지니어링 프로젝트 및 인강/2. RASA chatbot Project

RASA 오픈소스 를 통해 간단한 챗봇 구축하고 훈련하기 02

쟈누이 2020. 3. 6. 11:19
반응형

이번에는 간단하게 자신이 원하는 챗봇을 만들어보겠습니다.

일단 저의 경우에는 챗봇을 구축하면서 RASA 오픈 소스를 이해하는 것에 방점을 두었기 때문에

빠르게 챗봇에 대한 뼈대를 구축하고자 했습니다

 

우선, RASA 를 통해 어떻게 챗봇을 만드는지 과정을 간단하게 설명해드리겠습니다.

간단하게 개인적으로 유튜브에 업로드 해놓은 동영상을 참고해주시기 부탁드릴게요

(채널홍보가 아니며, 추후에 저도 접근이 쉬운 플랫폼인 유튜브 채널을 선택하게 되었어요!)

 

https://youtu.be/-eeshd7p0FQ

챗봇을 만드는 법에 대해서 제가 직접 간단하게 촬영해본 영상입니다 ^^ㅎㅎ

 

먼저, stories.md 파일을 열어서 만들고 싶은 스토리를 설정을 해주세요!

출처 : 직접촬영한 동영상 캡쳐

챗봇의 경우에는 '내가 어떻게 이야기를 진행시킬 것인가'가 매우 중요한 것 같다라고 생각을 많이 했습니다.

사용자를 내가 설계한 스토리로 끌여들여 프로세스를 진행시키는 것도 중요하지만, 그것이 잘 설계되지 않았다면,

챗봇을 만드는 의미가 없을 것 같아요. 

특히 스토리가 헷갈려서 원하는 대로 스토리를 진행시키지 못하면..

있으나 마나한 챗봇이 되기 때문에.. 챗봇을 좀 더 세세하게 구축할 수록 스토리를 만들고 관리하는 게 무엇보다도

중요하다고 생각이 들었습니다.

 

참고로, md 파일은 마크다운의 형태이며, 저는 파이참(pycharm)을 통해서 마크다운을 편집했습니다!

 

그 다음으로는, domain.yml 파일을 열어서 스토리에 설정한 인텐트와 말뭉치(utter_)들을 등록해주세요

출처 : 직접촬영한 동영상 캡쳐

RASA 챗봇의 경우, 이 domain.yml 파일의 역할이 매우 중요한 것 같았습니다..

stories.md 파일에 스토리를 구축하더라도 domain 파일에 스토리에 쓰인 인텐트와 말뭉치(utter_)를 등록하지 않으면

rasa 가 train을 할때, 아예 train 시작을 하지 않거나 제대로 훈련이 되지를 않습니다. 

스토리를 만들고 난 후에는 반드시 domain 파일에 먼저 인텐트와 말뭉치(utter_)가 등록이 되어 있는지 체크해주세요!

 

인텐트에 대한 컴퓨터의 답변이라고 할 수 있는 말뭉치(utter_)는 따로 등록하는 파일이 없기 때문에, domain.yml 파일의 responses 란을 만들고 utter_(붙이고 싶은 이름) 을 만들고 위 이미지와 동영상과 같이 출력될 말을 적어주어야 합니다.

 

이제, NLU.md 파일로 가서 인텐트를 기입해줍니다.

출처 : 직접촬영한 동영상 캡쳐

RASA 챗봇은 사람이 챗봇에 어떤 말을 기입할 지 미리 등록한 NLU.md 파일의 인텐트 섹션을 통해 학습하고 예측합니다. 인텐트는 최대한 많이 있을 수록 좋습니다(약 70개 정도를 권장합니다)

개발자가 NLU.md 파일에 인텐트들을 등록해 놓으면 rasa 는 이를 바탕으로 챗봇을 훈련시키며, domain의 파일이 nlu.md 파일을 참고하여 인텐트를 스토리.md 파일을 통해 실행시키는 프로세스로 흘러갑니다.

 

마지막으로, cmd 창을 열어서 RASA 챗봇이 설치되어 있는 경로로 들어가 RASA 챗봇을 훈련시켜줍니다.

 

https://youtu.be/Q5yXzl0Nvao

챗봇을 만드는 법에 대해서 제가 직접 간단하게 촬영해본 영상입니다 ^^ㅎㅎ

훈련시킨 이후에는 rasa shell 명령어를 입력하여 챗봇을 실행시키고 자신이 입력한 스토리가 잘 되는지 확인해주시면 됩니다! 위 영상을 참고해주세요!

 

제가 직접 만든 챗봇을 캡쳐한 사진입니다. 위 이미지와는 다른 스토리입니다.

이와 같이 잘 실행이 되면 여러분만의 챗봇 만들기 첫 단추를 잘 끼우신 겁니다!

 

 

반응형