저번 포스트까지는 기본 챗봇을 만들 수 있는 방법을 알려드렸습니다.
이번 포스트는 저번 포스트를 기반으로 챗봇을 조금이나마 한단계 업그레이드 할 수 있는 단계로
반드시, 따라하지 않으셔도 됩니다.
Response Selector NLU component 는 사람들끼리 간단하게 할 수 있는 일상 대화와 자주 물어보는 간단한 FAQ 관련 메시지들을 처리하기 위해 사용되는 RASA 챗봇의 요소 중 하나인데요.
이 기능을 사용하면 챗봇과 유저간에 일어날 수 있는 수많은일상적인 대화들과 FAQ 들을 처리하기 위한 스토리들과 인텐트들을 다 만들지 않고 간편하게 해결할 수 있어서 괜찮은 기능이라고 생각해요.
유저들은 챗봇에게 이런 저런 질문이나 시시콜콜한 이야기등을 하는데요. 라사 챗봇은 그렇게 들어오는 인텐트들을 ask_channels, ask_languages 그리고 ask_rasax 등의 말뭉치를 통해서 해결합니다
(여기서 위의 3개의 제목은 꼭 이렇게 써야 되는 것이 아니고 임의로 지정해놓은 이름입니다.)
우선, NLU.md 파일에 접미사 ' faq/ '로 시작하는 인텐트를 만들어줍니다.
여기서 이러한 간단한 대화를 처리할 때 가장 중요한 것은 ' faq/ ' 접두사를 인텐트를 만들 때 꼭 붙여주어야 한다는 것입니다.
(제가 잘못될 수도 있어서, 혹시 잘못된 것을 발견해주신 분은 댓글 남겨주시면 바로 수정하겠습니다)
' faq/ ' 접두사를 붙여주면 챗봇이 후에 이를 인지하고 관련 대답을 맞추어서 출력하게 됩니다.
두번째로 responses.md 파일을 data/ 디렉토리 내에 생성해줍니다.
response.md 파일은 ' faq/ ' 인텐트에 대한 컴퓨터의 답변이 담긴 말뭉치 들입니다.
그리고 난 후, Response Selector 를 사용하기 위한 파이프라인 설정을 해주어야 합니다.
config.yml 파일은 RASA 챗봇을 훈련시키기 위한 워드 임베딩 토큰들을 설정하고 담는 파일입니다.
pipeline 맨 아래에 response.md 파일을 Response Selector로 인식하고 훈련하는 토큰인 ResponseSelctor 를 추가해주면 됩니다. 처음에 제가 만든 이미지와 같이 토큰들을 추가하셔시고 진행을 하셔도 상관없습니다.
config파일 파이프라인에 대해서 자세하게 이해를 하고 싶으신 분은 아래의 rasa 유저 가이드 링크에 접속하시면 됩니다
https://rasa.com/docs/rasa/nlu/choosing-a-pipeline/
그 다음에는 domain.yml 파일을 통해 생성한 response 파일과 ' faq/ ' 인텐트를 도메인이 인식켜줍니다.
인텐트에는 faq 를 등록하고 actions 부분에는 respond_faq 를 등록해줍니다. 이대 action 부분에는 'respond_' 접두사를 붙여줘야 도메인에서 기존에 먼저 만들어둔 responses.md 파일을 인식할 수 있습니다.
마지막으로, faq 를 처리할 수 있는 간단한 스토리를 만들어줍니다.
그러고 난 뒤에 rasa train 을 사용하여 챗봇을 훈련시킨 후에,
잘 적용이 되었는지 확인하면 됩니다.
'데이터 엔지니어링 프로젝트 및 인강 > 2. RASA chatbot Project' 카테고리의 다른 글
RASA 오픈소스 를 통해 간단한 챗봇 구축하고 훈련하기 04 (0) | 2020.03.06 |
---|---|
RASA 오픈소스 를 통해 간단한 챗봇 구축하고 훈련하기 02 (0) | 2020.03.06 |
RASA 오픈소스 를 통해 간단한 챗봇 구축하고 훈련하기 01 (0) | 2020.03.04 |
화장품 챗봇 설계 - 프로젝트 챗봇 시나리오 설계 (0) | 2020.02.17 |
챗봇에 대한 간단한 개념 등 정리 - 프로젝트 전 사전 스터디4 (0) | 2020.02.14 |