본문 바로가기
끄적끄적/후기

[코멘토] (3주차) 인공지능을 활용한 챗봇 구축 기획부터 설계, 구현 A to Z - Dialogflow 사용 준비 및 구축

by EunjiBest 2022. 2. 15.

[코멘토] (3주차) 인공지능을 활용한 챗봇 구축 기획부터 설계, 구현 A to Z - Dialogflow 사용 준비 및 구축

 

 

 

3주차

 

딱히 한 건 없는데 벌써 3차 과제를 

제출해야하는 시기!

 

- 챗봇 빌더 : 형태소 분석, 인텐트, 엔티티 생성등 챗봇을 쉽게 구축할 수 있는 툴

 

이번에는 Dialogflow라는 툴을 이용해서

실제 챗봇 서비스를 구축을한다.

 

아무래도 기획에 관한 캠프이다 보니 

코딩이 필요하지 않은 툴을 사용해서 구축을 하는 것같다.

 

전에 SQL캠프와는 다르게

섹션 시간에 툴에 대해서 자세하게 설명을 해주셨다.

그런데 

생소하고 처음 사용해보는 툴이다보니 살짝 어려운감이

없지 않아 있었다.

 

 

 

 

Dialoglflow

 

Dialogflow는 구글에서 지원하는 툴이다.

사용이 간단하고 무료 지원을 하기 때문에 

초보자들에게 접근성이 좋은 것같다.

 

한국어를 지원하고, 다양한 메신저와 연계가 되어있어서

한국기업에서 사용한 사례가 다양한다.

 

 

챗봇 구축을 위한 기본적인 용어

 

- Intents :  문장의 의도 및 대답을 처리

- Entities : 문장 안에 들어있는 개체 정보

- Knowledge : 웹페이지에서 정보를 찾아서 전달.

- Fulfillment : 외부 서버와 Restful API로 정보를 주고받음

- Intergrations : 메신저나 웹, 음성비서와 연동

 

https://cloud.google.com/dialogflow/es/docs/concepts

사이트에서 더 자세한 정보를 얻을 수 있다.

 

 

 

1. Intents 

 

Training phrases창에서 문장을 학습시킬 수 있다.

학습을 할 문장들을 예측해서 써준다.

 

train set을 만드는 과정같다.

이 과정이 있으면 persona나 설문조사 등 사용자연구가

앞선 기획 과정에 더 있었으면 좋았을 것같다.

 

시간상 모르고 안하는 것은 아니였겠지만 조금 아쉬웠다.

나에게 주어진 프로젝트이니 하라는 것만 한 내 잘못이지ㅎ

입력을 하면 형태소가 자동으로 형형색색 분류가되고

인식할 Entitiy가 자동 선택 된다.

내가 클릭해서 수정이 가능하다.

 

 

당연한 말이지만 다양한 문장들을 학습시키면

정확도가 높아질 수 밖에 없다.

 

Action and parameters창에서는

필수로 받아야하는 entity도 체크할 수 있다.

 

사용자가 질문한 문장안에 필수로 받야아하는 entity가 없다면

Prompts에 답을 유도할 수 있는 문장을 입력해준다.

Responses에서는 Entity들이 이상없이 전달된 후에 응답할 메세지를 작성할 수 있다.

 

 

오른쪽에 Try it now 검색창이 있다.

여기에 테스트할 문장을 입력할 수 있다. 음성인식도 가능한 것같다.

 '서울한화콘도'라고 입력을 해봤더니

'예약 일정을 말씀해주세요' 라는 Responses가 떴다.

 

 

 

2. Entities (문장 안에 들어있는 개체 정보)

 

사용자가 입력한 문장 안에 들어있는 단어를 추출해서

관리해줘야하는 대상을 모두 입력해줘야한다.

같은 뜻을 가지고 있는 동의어 단어도 다 적어줘야한다.

한국어의 경우에는 띄어쓰기에도 유의를 한다.

 

마치 블로그나 인스타의 태그를 입력하는 느낌으로 입력하면 된다.

 

Entities에서는 동의어 설정, 자동 의미 확장, 사용자 실수 보정 옵션도 넣어줄 수 있다.

 

 

 

은근히 짜잘하게 필요한 기능들이 많이 있다는 것이 신기..

 

마치 쇼핑몰 운영했을 때 관리자 페이지 관리하는 느낌이랑 비슷했다.

 

아 그리고, 다 입력한 후에는 오른쪽 상단 위에 세이브를 눌러주길 바란다.

다 날라간다.

 

 

 

3차과제

 

위 사용방법대로 

앞서 작성한 시나리오에 맞게 구성을 하는것이

이번 과제!

 

최고의 성능을 위해서 최대한 많은 경우의 수를 입력해야하는데

은근히 창의력이 고갈쓰..

 

어케 어케 하다가

intents의 의존관계들이 꼬여서 

테스트 할 떄 원하는 결과값이 나오지 않았다.

 

어쩔 수 없이 각각의 Task에 대한 의존관계를 다 독립적으로

만들어서

원하는 대답을 얻을 수 있긴 했지만

사용자가 학습되지 않은 질문을 했을 때 

정확한 질문이 나올지 의문이였다.

 

과제를 늦게 시작했기 때문에 이번에도 대충 제출해버린 과제..ㅎ

 

 

 

코멘트

 

사실 이번 과제는 대충 제출한 것도 있고

내가 기능 사용을 100% 못한 느낌이 있어서

살짝 코멘트에 대한 걱정을 했는데,

 

생각보다 무난하게 답변을 주셔서 은근히 당황했다.

 

일단 계획한 시나리오대로 챗봇 흐름이 흘러가서

별 이상이 없다고 하셨다.

(사실 진짜로 구현이 안되서 합성해버릴까 고민 엄청 했다.)

 

그리고 다음 과제 발표 때 특별히 어려웠거나

더 신경쓴 부분이 있었는지!에 대해서 말해달라고 하셨다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

댓글