당신은 주제를 찾고 있습니까 “룰 베이스 챗봇 – Infobip Answers: 첫 번째 규칙 기반 챗봇을 구축하는 방법“? 다음 카테고리의 웹사이트 ppa.maxfit.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://ppa.maxfit.vn/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 Infobip 이(가) 작성한 기사에는 조회수 2,711회 및 좋아요 19개 개의 좋아요가 있습니다.
버튼/선택형으로 구조를 설계해 대화를 이어 나가는 닫힌 구조의 챗봇은 룰 베이스(Rule-base) 챗봇, 시나리오형 챗봇이라고도 하는데 예전부터 많이 사용되어 왔습니다. 쉽고 구현이 간단하긴 하지만 미리 정해놓은 질문에 따라 답을 내놓아 유저 입장에서는 자유도가 낮습니다.
룰 베이스 챗봇 주제에 대한 동영상 보기
여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!
d여기에서 Infobip Answers: 첫 번째 규칙 기반 챗봇을 구축하는 방법 – 룰 베이스 챗봇 주제에 대한 세부정보를 참조하세요
In this video, we’ll share a step-by-step guide on how to build a simple rule-based chatbot through Infobip Answers, an intelligent chatbot building platform.
Such a chatbot can interact with customers in an engaging and conversational manner, but it only marks the beginning of your chatbot building journey. The purpose of this video is to help you acquire the platform basics as you start to explore different platform features, ultimately enabling you to build more complex and advanced chatbots.
룰 베이스 챗봇 주제에 대한 자세한 내용은 여기를 참조하세요.
규칙 기반(Rule – Based) 챗봇 만들어 보기! – velog
규칙 기반 시스템은 자신의 할 일만 하도록 프로그래밍 된 시스템이다. 더 적은 노력이 들고, 비용 효율적이고, 덜 위험하지만 경직돼 있다. 소수의 결과 …
Source: velog.io
Date Published: 2/15/2021
View: 4213
[챗봇] Python으로 Rule-Based(규칙 기반) 챗봇 만들기
챗봇을 만드는 방법은 상당히 많이 있으나 가장 고전적이면서 가장 많이 활용되고, 기업들이 가장 많이 활용하고 있는 Rule-Based 챗봇을 만들어 …
Source: needjarvis.tistory.com
Date Published: 11/13/2022
View: 4406
클라우드튜링 – 룰베이스 챗봇 vs AI 챗봇 어떤 챗봇을 써야 …
룰베이스 챗봇 vs AI 챗봇 어떤 챗봇을 써야 할까요? 장단점을 뜯어 보며 우리 회사에 필요한 챗봇을 정해보세요 시간이 없다면 마지막 장 ‘한 장 요약’을 참고 …
Source: ms-my.facebook.com
Date Published: 2/9/2021
View: 2553
마케팅 챗봇 만들기: 응답 아키텍쳐의 이해 – Performars
규칙 기반 챗봇은 대화 시나리오를 먼저 구축합니다. 유저가 질문을 했을 때, 최대한 관련 있는 대답을 응답 시나리오 안에서 신속히 찾아주고(객관식 …
Source: blog.performars.com
Date Published: 9/11/2021
View: 1438
몇 년이 지나도 챗봇이 내 말을 못 알아 듣는 이유 – Samsung SDS
에이전트는 사람 대신 업무나 서비스를 수행하는 소프트웨어로 챗봇, … 이러한 룰베이스 챗봇은 특정 도메인에는 효과적으로 대화할 수 있는 장점이 …
Source: www.samsungsds.com
Date Published: 1/15/2021
View: 3066
채팅상담 & 챗봇 도입 전 알아야 할 키워드 총정리 : 인사이트
목차 채팅상담 채널카카오 상담톡네이버 톡톡웹채팅(해피톡) 챗봇RPA룰베이스(Rule-based, 시나리오형) 챗봇인공지능(AI) 챗봇챗봇 빌더 …
Source: blog.happytalk.io
Date Published: 9/14/2021
View: 3116
[똑똑한 챗봇 만들기] 챗봇의 구조 – 개발적 관점 : 네이버 블로그
FAQ형은 ‘시나리오 기반(룰베이스)’과 ‘지능형 대화 기반(인공지능)’ 2가지가 혼합되어서 만들어집니다. 즉, 챗봇 UI에서 제공하는 템플릿 버튼을 …
Source: m.blog.naver.com
Date Published: 11/26/2021
View: 2101
딥러닝 챗봇에 대한 오해
https://www.forbes.com/sites/cognitiveworld/2020/02/23/choosing-between-rule-based-bots-and-ai-bots 룰베이스 챗봇과 AI 챗봇을 비교한 글 …
Source: aidev.co.kr
Date Published: 12/27/2022
View: 4900
챗봇 정리 by Codong’s Development Diary
챗봇의 구현 방식. 출처 : https://www.sleshare.net/healess/python-tensorflow-ai-chatbot. 1) 규칙 기반 모델(Rule-based Model).
Source: codong.tistory.com
Date Published: 4/3/2021
View: 9326
주제와 관련된 이미지 룰 베이스 챗봇
주제와 관련된 더 많은 사진을 참조하십시오 Infobip Answers: 첫 번째 규칙 기반 챗봇을 구축하는 방법. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.
주제에 대한 기사 평가 룰 베이스 챗봇
- Author: Infobip
- Views: 조회수 2,711회
- Likes: 좋아요 19개
- Date Published: 2021. 8. 27.
- Video Url link: https://www.youtube.com/watch?v=roVWOAEUw78
[똑똑한 AI 만드는 언어의 세계] 비대면 시대의 효율적인 커뮤니케이션 ‘챗봇’
오래전 유행했던 채팅 서비스 ‘심심이’를 아시나요? 내가 쓴 문장에 맞게 알고리즘이 적절한 답을 주는 서비스였습니다. 챗봇계 조상이라고 불리는 심심이에서 더욱 발전해, 최근에는 챗봇 서비스를 비즈니스 커뮤니케이션용 툴로 이용하는 사례가 아주 많아졌습니다. 특히 비대면화가 가속되고 온라인 커뮤니케이션이 늘어나면서 많은 기업에 유용한 솔루션으로 자리 잡았죠.
이번 콘텐츠에서는 ‘챗봇(Chatbot)’ 이란 무엇인지, 종류와 구동 방법을 간단히 알아보고, 챗봇의 성능 향상을 위해 중요한 점을 짚어보도록 하겠습니다.
효과적인 고객 커뮤니케이션 툴
인공지능 서비스 중 우리가 유용하게 활용하는 기능, 챗봇이란 과연 무엇일까요? ChatBot, 대화하는 로봇이라는 말 그대로 대화 형태의 흐름을 통해 우리가 원하는 액션을 수행하도록 도와주는 대화형 인공지능 서비스입니다. 챗봇을 활용해 금융업계나 유통업계 등에서는 자체 앱 내에서 고객 지원 서비스를 제공하기도 하고, 소규모의 가게들까지도 우리가 자주 사용하는 메신저 앱의 특정 기능을 활용해 간단한 문의 사항을 처리하고 있습니다.
기본적으로 챗봇은 로우 데이터(Raw Data)를 실제 우리가 이해하는 대화로 구성하여 보여주는 기술입니다. 원활한 구동을 위해, 첫째로 챗봇은 사람이 요청하고 원하는 것을 이해해야 하고 둘째로 어떻게 답변을 할지 알아야 합니다. 텍스트 인식 → 자연어 처리 및 의도 이해 → 답변 생성의 과정을 거치게 되죠. 즉 텍스트 마이닝, 자연어 처리(Natural Language Processing), 기계 학습 등의 기술을 기반으로 챗봇은 사람의 언어를 이해하고 또 사람의 언어로 답을 하게 됩니다.
버튼/선택형으로 구조를 설계해 대화를 이어 나가는 닫힌 구조의 챗봇은 룰 베이스(Rule-base) 챗봇, 시나리오형 챗봇이라고도 하는데 예전부터 많이 사용되어 왔습니다. 쉽고 구현이 간단하긴 하지만 미리 정해놓은 질문에 따라 답을 내놓아 유저 입장에서는 자유도가 낮습니다. 여기서 발전해 실제로 대화를 하는 듯한 대화 형태가 열린 구조의 챗봇이 바로 인공지능 기술이 활용된 지능형 챗봇입니다. 지능형 챗봇은 사람의 질문이나 말의 의도를 이해하고 그에 맞는 답변을 제공해야 해서 구현과 관리가 어렵지만, 유저가 더 자유롭게 이용할 수 있고 복잡한 질문에도 응답할 수 있습니다. 때에 따라 룰 베이스와 지능형 방식이 혼합된 챗봇을 만들기도 하죠.
만족도 높은 챗봇을 위해 중요한 것
현재에도 우리가 편하게 이용하지만, 아직 ‘실제 사람’처럼 대화하지는 못하는 챗봇의 한계점은 무엇일까요? 불충분한 데이터가 가장 큰 장벽입니다. 스스로 사람처럼 자연스러운 말을 만들기 위해서는 엄청난 양의 대화 데이터를 인공지능 머신 알고리즘에 넣고 학습시켜야 합니다. 활용 가능한 학습용 데이터가 많지도 않을뿐더러, 데이터 수집 방법이나 공급처 등에 대한 정보도 불명확하죠.
인공지능형 챗봇을 만든다는 것은 아주 어렵지는 않다고 합니다. 니즈에 맞게 API 등을 연동하고 흐름에 맞는 알고리즘을 짜는 일련의 과정을 거치면 구현할 수 있습니다. 하지만 챗봇에서 어렵고도 중요한 문제는 바로 머신러닝 기술을 구현한 후 이 챗봇을 학습시키는 것입니다.
챗봇에서 가장 중요한 ‘학습’을 위해서 필요한 것은 바로 양질의 데이터입니다. 챗봇을 위해 필요한 데이터, 어떤 것일까요? 사람의 말을 잘 이해하고 또 그에 맞는 결과를 사람의 말로 잘 전달하기 위해서는 다량의 언어 데이터를 학습시켜야 합니다. 챗봇 이용자에게 필요한 답변을 줄 수 있도록 해당 기업이나 산업에 맞는 데이터를 학습시킨다면 훨씬 더 정확하고 자연스러운 챗봇을 만들 수 있겠죠. 서비스의 특성이나 챗봇의 쓰임을 고려한다면 고객 지원형 또는 대화형 언어 데이터나 다국어 데이터 등이 필요할 수도 있습니다.
발전한 챗봇과 함께 하는 미래
다양한 커뮤니케이션 과정에서 소요 시간을 단축하고 만족감을 높이는 쉽고 간단한 솔루션으로 떠오른 ‘챗봇’. 특히 비대면 소비와 소통의 확산으로 챗봇 도입은 더욱 확대되고 있습니다. 미래에는 개인화된 챗봇을 이용할 수 있을 것이라는 예측도 있는데요. 이는 성별, 지역 등 고객의 특징에 따라 또는 시장에 따라 차별화된 챗봇 서비스가 제공될 것이라는 뜻입니다. 고객과의 인터랙션을 앞으로 어떻게 변화시키고 어떤 비즈니스 커뮤니케이션의 혁신을 이뤄낼 것인지 더욱 기대됩니다.
—
플리토는 똑똑한 챗봇을 위해 필요한 대화형 구어체 코퍼스, 다국어 코퍼스 등 다양한 텍스트 말뭉치 데이터를 수집하고 가공합니다. 한국어, 영어, 중국어, 일본어는 물론 아랍어, 스페인어, 프랑스어, 러시아어, 독일어, 이탈리아어, 베트남어, 인도네시아어 등 다양한 언어의 데이터를 공급합니다. 고객 맞춤형 데이터를 제공하는 플리토와 함께 챗봇의 정확도를 더욱 높여 보시기 바랍니다.
[챗봇] Python으로 Rule-Based(규칙 기반) 챗봇 만들기
챗봇을 만드는 방법은 상당히 많이 있으나 가장 고전적이면서 가장 많이 활용되고, 기업들이 가장 많이 활용하고 있는 Rule-Based 챗봇을 만들어보도록 한다. 사실 룰기반 챗봇은 다른 말로 표현하는 것이 워낙 많기도 하다. 기업에서 상용적으로 사용하는 Rule-Based는 대표적으로 Intent(의도)와 Entity(개체)를 관리해서 하는 경우가 많고 이들도 큰 틀로 Rule-Based라 할 수 있다.
파이썬으로 룰기반의 간단한 챗봇만들기
Rule-Based 설계하기
Rule-Based가 뭔지 모르는 분들에게 간단하게 설명을 한다면 규칙을 직접 설계해서 어떤 말이 만들어진 규칙에 해당한다면 Answer를 하는 것이다. 여기서 설명할 Rule-Based는 너무나 방대한 챗봇을 만드는 것이 아니라 간단하게 만들어볼 것이며 Entity와 Intent를 분리하지 않는다.
테스트 데이터
Rule 데이터 Excel 화면
request는 우선 올 대화를 예상해서 만들어 본 것이다. 사실 프로그램에서 request는 사용되지 않지만 rule을 설계하기 위해서 참고하는 레퍼런스라고 이해하면 된다. response는 챗봇이 실질적으로 응답을 하는 내용이다.
이 프로그램에서 사용되는 라이브러리는 pandas만 사용될 예정이며, 원래 자연어처리에 관련이 있는 챗봇은 konlpy와 같은 한국어 형태소 분석기를 사용해서 더욱 정확한 챗봇을 만들어야 하지만 konlpy없이 만들어본다. 판다스(pandas)가 없다면 pip install pandas로 설치를 진행한다
(saibog) C:\project\discord>pip install pandas Collecting pandas Downloading pandas-1.2.0-cp38-cp38-win_amd64.whl (9.3 MB) |████████████████████████████████| 9.3 MB 3.3 MB/s Requirement already satisfied: pytz>=2017.3 in c:\anaconda3\envs\saibog\lib\site-packages (from pandas) (2020.5) Requirement already satisfied: numpy>=1.16.5 in c:\anaconda3\envs\saibog\lib\site-packages (from pandas) (1.18.5) Collecting python-dateutil>=2.7.3 Using cached python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB) Requirement already satisfied: six>=1.5 in c:\anaconda3\envs\saibog\lib\site-packages (from python-dateutil>=2.7.3->pandas) (1.15.0) Installing collected packages: python-dateutil, pandas Successfully installed pandas-1.2.0 python-dateutil-2.8.1
import pandas as pd chatbot_data = pd.read_excel(“c:/project/steel/chatbot_data.xlsx”) print(chatbot_data)
request rule response 0 너의 이름은? 너|이름 저는 자비스라고 합니다 1 네 이름을 말해줘 네|이름|말해 저는 자비스라고 합니다 2 네 이름이 뭐니? 네|이름|뭐 저는 자비스라고 합니다 3 놀러가고 싶다 놀러|싶 가끔씩 휴식하는 것도 좋죠 4 느그 아부지 뭐하시노 느그|아부지|뭐하 우리 아부지 건달입니다 5 말귀좀 알아듣는다? 말귀|알아듣는다 다행이네요. 열심히 배우고 있어요 6 맛저해 맛저해 맛저하세요~ 7 맛점해 맛점해 맛점하세요~ 8 메리크리스마스 메리|크리 메리~ 크리스마스~ 9 면접에서 떨어졌어 면접|떨어 다음엔 꼭 붙을 수 있을거에요 10 무슨 말인지 모르겠어 무슨|말|모르 죄송해요 학습이 덜 됐나봐요 11 뭐해? 뭐해 그냥 있어요 12 아 월요일이 다가온다 월요일|다가 월요병이 심한가봐요 13 안녕 안녕 안녕하세요 14 영화 추천해줘 영화|추천 아이언맨 시리즈와 어벤져스 시리즈를 보세요
판다스에서 제공하는 read_excel 함수를 실행시켜 chatbot_data 변수에 저장한다.
rule 저장
# rule의 데이터를 split하여 list형태로 변환 후, index값과 함께 dictionary 형태로 저장 chat_dic = {} row = 0 for rule in chatbot_data[‘rule’]: chat_dic[row] = rule.split(‘|’) row += 1 print(chat_dic)
챗봇의 rule을 split한 후, 순서값과 함께 딕셔너리 형태로 저장한다
{0: [‘너’, ‘이름’], 1: [‘네’, ‘이름’, ‘말해’], 2: [‘네’, ‘이름’, ‘뭐’], 3: [‘놀러’, ‘싶’], 4: [‘느그’, ‘아부지’, ‘뭐하’], 5: [‘말귀’, ‘알아듣는다’], 6: [‘맛저해’], 7: [‘맛점해’], 8: [‘메리’, ‘크리’], 9: [‘면접’, ‘떨어’], 10: [‘무슨’, ‘말’, ‘모르’], 11: [‘뭐해’], 12: [‘월요일’, ‘다가’], 13: [‘안녕’], 14: [‘영화’, ‘추천’]}
챗봇 함수
def chat(request): for k, v in chat_dic.items(): chat_flag = False for word in v: if word in request: chat_flag = True else: chat_flag = False break if chat_flag: return chatbot_data[‘response’][k] return ‘무슨 말인지 모르겠어요’
chat이라는 함수는 인자값이 request라는 문자열이며, chat_dic에 있는 딕셔너리 데이터를 loop 하여, 룰에 포함되어 있는지 비교를 한다. 룰을 비교할 때 해당 단어가 포함되어 있는지를 체크하는데 사실 여기서 단어가 포함되어 있는지만을 체크하는 방식은 옳지 않다. 이는 하단에 설명하도록 한다.
채팅
while True: req = input(‘대화를 입력해보세요. ‘) if req == ‘exit’: break else: print(‘jarvis : ‘, chat(req))
이제 만들어진 챗봇 함수를 호출하여 rule이 모두 포함되어 있으면 response를 리턴하며 프로그램을 종료하고 싶으면 exit를 입력하면 된다.
대화를 입력해보세요. 느그 아부지 뭐하시노? jarvis : 우리 아부지 건달입니다 대화를 입력해보세요. 너는 뭐야? jarvis : 무슨 말인지 모르겠어요 대화를 입력해보세요. 네 이름은 뭐야? jarvis : 저는 자비스라고 합니다 대화를 입력해보세요. 뭐해 jarvis : 그냥 있어요 대화를 입력해보세요. 월요일이 다가오네 jarvis : 월요병이 심한가봐요 대화를 입력해보세요.
결과를 보면 매우 잘 나온 것처럼 보일 수 있다. 사실 이렇게 만들어도 왠만한 사이트에는 크게 무리가 없이 작동이 잘된다. 하지만 Rule이라는 것은 순서가 매우 중요하다. 단어의 순서가 뒤죽박죽이어도 여기서는 포함만 되어 있으면 응답을 하기 때문에 아래와 같은 대화에도 응답을 하게 된다.
대화를 입력해보세요. 다가온다 화요일이, 월요일이 어제던가? jarvis : 월요병이 심한가봐요
Rule은 월요일 이후 다가오다가 와야 하는데 순서를 무시했기 때문에 이처럼 전혀 다른 대화를 응답해버린다. 이제 함수를 살짝 손을 대보도록 한다.
챗봇 함수 수정
def chat(request): for k, v in chat_dic.items(): index = -1 for word in v: try: if index == -1: index = request.index(word) else: # 이전 index 값은 현재 index값보다 이전이어야 한다. if index < request.index(word, index): index = request.index(word, index) else: # index 값이 이상할 경우 과감하게 break를 한다 index = -1 break except ValueError: index = -1 break if index > -1: return chatbot_data[‘response’][k] return ‘무슨 말인지 모르겠어요’
본 예제에서는 index 함수로 문자열의 위치값을 가져왔는데 사실 find함수를 사용하는 것이 더욱 적합한 예시였지만 index로 진행한 것을 참고하길 바란다(find를 쓰면 결과가 없을 경우 excep가 발생하지 않고 -1값이 리턴된다) 본 예시는 어디까지나 index를 사용하였기 때문에 ValueErrror except를 방지하기 위해서 try ~ except로 한번 감쌌다.
두번째 나온 단어가 여러군데 등장하여, 에러가 날 수 있는 것도 생각해봐야 한다. 예를 들어, Rule에서 “월요일|다가”의 경우 “다가오고 있구나, 월요일이 또 다가왔어~” 라는 문장의 경우 결과를 뱉어내지 못할 수 있다. 단순히 다음 단어의 index 값이 이전단어보다 작을 경우만 체크해서 발생하는 것인데 이럴 경우를 대비하여 첫번째 rule이 등장했을 때의 index값 이후부터 찾는 로직을 적용하면 된다. 위 소스에서 request.index(word, index)라고 되어 있는 부분이 그 부분이다.
이제 모두 수정하였으니 이상이 있는 부분도 모두 정상적으로 될지 테스트 해보도록 한다.
대화를 입력해보세요. 느그 아부지 뭐하시노? jarvis : 우리 아부지 건달입니다 대화를 입력해보세요. 아부지 느그 뭐하시노?? jarvis : 무슨 말인지 모르겠어요 대화를 입력해보세요. 느그 아부지 가만 있어보자…아 뭐하시노? jarvis : 우리 아부지 건달입니다 대화를 입력해보세요. 메리 크리스마스다 jarvis : 메리~ 크리스마스~ 대화를 입력해보세요. 맛점해 jarvis : 맛점하세요~ 대화를 입력해보세요. 얌마 맛점해 jarvis : 맛점하세요~ 대화를 입력해보세요. 다가온다 화요일이, 월요일이 어제던가? jarvis : 무슨 말인지 모르겠어요 대화를 입력해보세요. 다가오고 있구나, 월요일이 또 다가왔어~ jarvis : 월요병이 심한가봐요 대화를 입력해보세요.exit Process finished with exit code 0
나오지 말아야 될 부분은 나오지 않으며, 기존에 나오지 않았던 부분이 정상적으로 나오는 것을 확인할 수 있다.
전체코드
import pandas as pd chatbot_data = pd.read_excel(“c:/project/steel/chatbot_data.xlsx”) # rule의 데이터를 split하여 list형태로 변환 후, index값과 함께 dictionary 형태로 저장 chat_dic = {} row = 0 for rule in chatbot_data[‘rule’]: chat_dic[row] = rule.split(‘|’) row += 1 def chat(request): for k, v in chat_dic.items(): index = -1 for word in v: try: if index == -1: index = request.index(word) else: # 이전 index 값은 현재 index값보다 이전이어야 한다. if index < request.index(word, index): index = request.index(word, index) else: # index 값이 이상할 경우 과감하게 break를 한다 index = -1 break except ValueError: index = -1 break if index > -1: return chatbot_data[‘response’][k] return ‘무슨 말인지 모르겠어요’ while True: req = input(‘대화를 입력해보세요.’) if req == ‘exit’: break else: print(‘jarvis : ‘, chat(req))
위 코드에 사용한 chatbot_data
chatbot_data.xlsx 0.01MB
참고로 위 코드는 단순히 for문으로 loop를 돌아서 체크를 하게 되는데 Rule이 엄청나게 많을 경우 속도는 그만큼 느려지는 현상이 발생한다. 그래서 많은 룰을 처리하기 위해서는 형태소 분석과 같은 방식이 필요하고 이를 검색엔진에서 날려 후보군을 가져오는 방식등을 채용해서 룰을 비교하는 로직등을 이용한다.
마케팅 챗봇 만들기: 응답 아키텍쳐의 이해
님, 챗봇 이야기는 많이 들어봤고 주변에서 쓰는 것도 많이 보이는데, 나는 어디서부터 시작해야하나 막막하나요?
디지털 트렌스포메이션(DT)이 각 기업들의 신년 인사말에 등장하기 시작했습니다.
COVID-19를 기점으로 더 이상은 DT 구축을 미룰 수 없다고 기업들은 절실히 느꼈습니다. 마케팅 부서의 디지털 트렌스포메이션은 고객과의 디지털 접점을 늘리고, 여러 채널에서 일관된 디지털 고객 경험을 제공하는 것이겠죠?
근래에 챗봇이 이 역할을 수행하면서 마케터의 짐을 한결 덜어주고 있습니다만, 이런 마케팅 챗봇을 어떻게 만들어야 할까요? 우리 비즈니스 모델에 맞는, 좀 쉬운 방법이 있을까요? 이번 포스팅에서는 챗봇을 개발하려는 분들을 위해 멀티채널 챗봇(다채널 챗봇)의 개념을 간단히 설명하려고 합니다.
챗봇은 크게 두 종류로 나뉩니다. 1) 규칙 기반 챗봇(rule-based chatbots), 그리고 2) AI 챗봇입니다.
규칙 기반 챗봇은 대화 시나리오를 먼저 구축합니다. 유저가 질문을 했을 때, 최대한 관련 있는 대답을 응답 시나리오 안에서 신속히 찾아주고(객관식 답안지 형태로 해당 솔루션으로 이동하는 버튼 제공), 시나리오를 벗어난 질문에는 제대로 답을 들려주지 못합니다.
규칙 기반 챗봇을 만드는 건 AI 챗봇에 비해 훨씬 쉽습니다. 코딩 지식이 없이도 할 수 있거든요. 규칙 기반 챗봇을 디자인하고 구축해주는 플랫폼 판매 사업자는 시중에 많습니다. 이런 플랫폼들은 대부분 유사한 기능을 갖고 있습니다. 다른 점이라면 가격, 대시보드 타입, 구축 방식의 차이일 것입니다. 기본적인 응답 기능으로도 충분하다면 규칙 기반 챗봇을 도입해 볼 것을 추천합니다.
다음은 인공지능(AI) 챗봇입니다. AI 챗봇은 자연 언어 처리(NLP)를 활용해 스스로 컨텍스트, 맥락을 학습할 수 있습니다. 데이터가 쌓이면 쌓일수록, AI 챗봇은 똑똑해집니다. 고객이 이 상황에서 왜 이런 말을 했는지를(맥락), 그동안 스스로 학습하며 구축해 놓은 응답 시나리오 안에서 대응하게 됩니다.
인공지능 챗봇을 고려한다면 다음 세 가지 요소를 꼭 구축해야 합니다.
웹사이트, 소셜미디어 등 고객 접점, 프론트 엔드 (Frontend) 유저 요청에 대한 행동을 관장하는 백 엔드 서버 (Backend) 고객의 메시지를 이해하는 NLP 엔진 (NLP engine)
흠 어떤 가요? 뜯어보니 조금 간단해 보이나요?
혹시 NLP 엔진을 구축하려고 한다면, 저는 그 생각엔 반대합니다. NLP 엔진을 구축하는 건 가격도 비쌀 뿐 더러, 여러 써드파티 솔루션이 이미 시중에 나와있습니다. (구글 Dialogflow, 아마존 Alexa, 네이버 Clova, RASA 오픈 소스 등) 이 라인업들은 세계 시장에서 성능을 인정받은 솔루션입니다.
이 중에서 당신의 비즈니스에 가장 적합한 엔진을 찾아 구축했다고 가정합시다. 당신은 웹사이트, 페이스북, 카카오 비즈니스 계정 등 당신의 멀티 채널에서 똑 같은 퍼포먼스를 고객에게 제공하는 챗봇이 필요합니다.
이 챗봇은 데이터베이스나 내외부 소스에 위치한 데이터에 접근해 유저의 요청사항에 대답할 것입니다.
말로 설명한 이 챗봇 시스템을 하이레벨의 아키텍처(구조도)로 설명해보겠습니다. 들어가기에 앞서 한 가지 강조하고 싶은 점은 디자인과 기술 스택의 선택지가 하나만 있는 것이 아니라는 사실입니다. 조합은 여러가지가 될 수 있습니다.
아래 멀티채널 챗봇의 구성 요소를 시각화한 구조도입니다.
사용자들은 챗봇을 페이스북 페이지, 웹페이지 챗 위젯, 카카오 비즈니스 채널 등 어떤 디지털 채널이든 연결할 수 있습니다. 채널은 메시지를 각 채널의 백엔드 서비스(Backend Service)로 보냅니다. 그리고 각 채널마다 인증(Authentication) 절차를 거칩니다. 인증 이후 백엔드 서버는 유저 메시지를 NLP 엔진으로 보내고 메시지를 해석합니다. 만약 지시 사항(instruction)이 분명하면 외부 API에, 필요할 경우엔 데이터베이스에 각각 접속합니다. 외부 API는 CRM(고객 관계 관리 시스템)이나 당신의 비즈니스와 결합된 또 다른 시스템을 말합니다. 데이터베이스에 사용자 필수 데이터를 저장하고 가져옵니다.
텍스트 메시지를 NLP 엔진에 보내면 Intents, Contexts, Entities가 담긴 답변을 얻습니다. 그 답변을 토대로 당신은 어떤 행동을 수행합니다. 가령 유저가 제품에 대한 사용 방법을 물었을 때 참조할 수 있는 제품 메뉴얼을 보낼 것입니다.
NLP 엔진에서 받는 답변의 형태는 정해져 있습니다. 이 고정 답변을 해석하려면 각 채널에서 읽을 수 있는 형태로 바꿔야 합니다. 가령, 페이스북과 카카오는 텍스트, 이미지를 표현하기 위해서 서로 다른 형태의 JSON 포맷을 가지고 있습니다. 당신이 백엔드 서비스에서 메시지 형태를 전환할 수 있다면 도움이 될 것입니다.
챗봇 마이크로서비스 아키텍처의 근간은 서비스를 나누어 규모를 독립적으로 확대, 축소할 수 있다는 점입니다. 그래서 하나가 작동하지 않더라도 그들의 연결 범위 바깥에 영향을 주지 않습니다. 이처럼 각 채널마다 서비스를 나누는 것이 좋습니다.
서비스는 분리되지만 같은 외부 API와 데이터베이스를 사용합니다. 만약 클라우드에서 서비스를 호스트 한다면 당신의 비즈니스 상황에 맞춰 할당된 자원을 감당할 수 있는 솔루션을 선택하세요. 적당한 솔루션을 도입하면 동시에 들어오는 채널의 유저 숫자를 걱정하지 않아도 됩니다. 또한 각 내부 서비스는 서로 연계가 잘되고 상호 간 응답이 빨라야 합니다.
저는 구글 클라우드 앱 엔진을 사용해 대부분의 앱을 호스팅합니다. 현재까지는 매우 만족하고 있습니다.
퍼포마스는 챗봇 마케팅 솔루션을 구축하고 고객 사의 디지털 트랜스포메이션을 돕습니다. 우리는 님의 디지털 비즈니스 이슈를 분석하여 적합한 디지털 마케팅 솔루션을 제공합니다.
몇 년이 지나도 챗봇이 내 말을 못 알아 듣는 이유
자동화/협업
삼성SDS CX혁신팀
언택트 환경이 지속되면서 우리의 일상은 사람의 일을 컴퓨터인 에이전트(agent)가 대신하는 것으로 점차 변하고 있습니다. 에이전트는 사람 대신 업무나 서비스를 수행하는 소프트웨어[1]로 챗봇, 보이스봇, 로봇 등이 이에 속합니다. 지난 시리즈에서는 언택트 환경에서의 사람 간 커뮤니케이션을 다루었다면, 이번 시리즈에서는 사람이 에이전트를 접하는 경험, 특히 챗봇을 사용하는 경험에 대해 얘기하려고 합니다.
세일즈포스(Salesforce)에서 인공지능 프로젝트를 이끄는 Marco Casalaina는 “코로나 사태가 터지고 챗봇이 두 배로 늘어났다”고 말했습니다.[2] 이처럼 챗봇 시장은 코로나로 인한 급성장기를 맞고 있습니다. 실제로 우리는 이미 챗봇을 일상생활에서 많이 접하고 있습니다.
(좌) 삼성SDS 챗봇의 코로나 문진, (우) CDC Clara의 코로나 문진
삼성SDS에서는 자사 챗봇 솔루션인 브리티 어시스턴트(Brity Assistant)를 통해 주기적으로 전 직원의 건강 상태를 자가 점검하도록 하고 안전수칙을 알려줍니다. 미국 질병통제센터도 챗봇 ‘Clara’를 활용해 코로나 증상에 따른 조치 방법을 알려주고 있습니다.[3] 고객의 불만이나 어려움을 듣고 해결해 주는 고객 서비스 업무도 챗봇으로 대체되고 있는 추세입니다. 인터컴(Intercom)은 Conversational Support라는 고객 서비스를 위한 챗 플랫폼을 선보였으며,[4] 아마존은 이미 환불이나 배송 불만 같은 개인정보 노출 및 감정 노동이 수반되는 고객 서비스 업무에 챗봇을 도입해 비대면 서비스를 활성화시켰습니다.[5] 마음 관리를 위한 워봇(Woebot)과 같은 심리상담 챗봇도 확산되고 있습니다.[6] 학계에서도 정신과 상담을 위해 챗봇을 어떻게 만들어야 하는지에 대한 연구를 진행하고 있을 정도로 챗봇 활용에 관심을 갖고 있습니다.[7] 이처럼 챗봇은 다양한 분야에서 활용되고, 관심받고 있습니다.
Predicted Use Cases for Chatbots What do you predict you would use a chatbot for?
Getting a quick answer in an emergency 37%
Resolving a complaint or problem 35%
Getting detailed answers or explanations 35%
Finding a human customer service assistant
Making a reservation (e.g. restaurant or hotel) 33%
Paying a bill 29%
Buying a basic item 27%
Getting ideas and inspiration for purchases 22%
Adding yourself to mailing list or news service 22%
Communicating with mulitple brands using one program 18%
(none of these things) 14%
Buying an expensive item 13% 예상되는 챗봇 사용 상황에 대한 설문 결과[8]
그렇다면 고객은 언제 챗봇을 사용하고 싶을까요? 설문에 따르면 긴급한 상황에 사람보다 빠르게 대답해주거나 예약과 주문 같은 서비스에 이용하고 싶다고 했으며 세일즈포스(Salesforce) 고객 69%도 기업이나 브랜드와 빨리 소통하기 위해 사람보다 챗봇을 선호한다고 응답했습니다.[9] 고객은 원하는 것을 쉽고 빠르게 얻고자 할 때, 즉 신속함과 효율이 높은 챗봇을 사용하려 한다는 것을 알 수 있습니다.
챗봇은 이러한 고객의 니즈를 충족시키고 있을까요? 실제 사용자의 대답은 달랐습니다. 챗봇이 나의 요구사항을 알아듣지 못하고(59%), 대화의 뉘앙스를 이해하지 못해(59%) 사용을 꺼린다고 대답했습니다.[10] 챗봇이 도입된 시기는 코로나로 인한 팬데믹(pandemic) 이전부터로 그 기간이 짧지 않으나, 아직까지도 많은 사용자들은 챗봇이 자신의 말을 제대로 이해하지 못한다고 대답한 것입니다. 이는 사람과 챗봇만의 문제는 아닙니다. 우리는 내 말을 잘 이해하지 못하는, 소위 말이 잘 안 통하는 사람과는 친해지기 어렵습니다. 마찬가지로 챗봇이 내 말을 못 알아들으면 답답함을 느끼고 점점 이용하지 않게 될 것입니다. 그렇다면 우리는 왜 챗봇이 여전히 못 알아듣는다고 느껴질까요?
착각은 자유? 사용자는 챗봇이 스마트할 줄 알았다!
그동안 우리가 만난 챗봇은 뭐든지 다 해줄 수 있고, 도와줄 수 있고, 말도 잘 알아듣는 것처럼 보였을 것입니다. 하지만 이것은 사용자가 착각한 게 아닙니다! 대부분 기업은 유행에 편승하듯이 맹목적으로 모든 제품이나 서비스에 챗봇을 적용했기 때문입니다. 페이스북, 슬랙, 텔레그램 등은 기업용 메신저 플랫폼을 통해 챗봇 서비스를 제공했고, 대부분의 챗봇은 화려하게 포장되어 사용자들은 똑똑한 서비스가 등장했다고 착각하게 되었습니다.[11] 사용자가 챗봇을 똑똑하다고 믿는 것이 좋을까요? 챗봇과 대화할 때 사용자의 표정이나 심장 박동과 같은 신체적 변화를 통해 감정 변화를 관찰한 결과, 처음에는 무척 기대했으나 챗봇이 유능하지 않다고 깨달은 순간 부정적인 반응을 보였습니다. 대화를 시작한 지 2~3.5초만에 말이죠.[12] 연구 결과를 통해 사용자는 기대치보다 챗봇 성능이 낮을 때 좌절과 짜증을 겪는다는 것을 알 수 있습니다. 즉, 사용자들의 기대 수준과 챗봇의 성능이 일치하지 않을 때 사용자들은 실망하고 부정적인 인식을 갖게 됩니다. 이것이 기대하는 바와 다르게 몇 년이 지나도 챗봇을 불만족스러운 서비스로 치부하게 된 이유입니다.
챗봇과 대화가 이루어지더라도 사람과의 대화 내용과 수준에 비해서는 현저한 차이가 있습니다. Computers in Human Behavior 저널에 온라인에서 사람이 다른 사람과 대화할 때와 챗봇과 대화할 때 어떻게 다른지 비교한 연구가 있습니다. 챗봇과 대화할 때는 사람과 대화할 때보다 사용하는 어휘가 제한적이었으며 비교적 짧은, 단순한 문장으로 여러 번 메시지를 보냈습니다.[13] 이를 통해 챗봇은 아직 사람만큼 대화 수준이 높지 않으며, 사람은 챗봇의 수준에 맞게 자신의 대화 수준을 낮추고 있다는 것을 확인할 수 있습니다.
왜 챗봇이 사람과 다르게 대화하는지 이해하기 위해 챗봇이 어떻게 만들어졌는지 알아보겠습니다. 초기 챗봇은 서비스별로 어떤 주제로 대화할지 시나리오를 정하고, 사용자 의도에 따라 대답할 모든 문장을 미리 설계했습니다. 예상 가능한 스크립트를 수작업으로 작성했기 때문에 챗봇은 정해진 규칙 몇 가지에 맞춰 자동화된 답변만 하게 되었습니다.[14] 이러한 룰베이스 챗봇은 특정 도메인에는 효과적으로 대화할 수 있는 장점이 있습니다.[15] 하지만 정해진 시나리오에서 조금이라도 벗어나면 “잘 모르겠어요. 죄송합니다.”의 늪에 빠져버리게 됩니다. 이러한 선형 흐름(linear flow)의 대화로 인한 한계를 보완하기 위해 버튼이나 카드뷰와 같은 UI를 활용하게 되었습니다. 스탠포드대학교와 페이스북 AI Research Team에서 구글 플레이와 애플 앱스토어에 등록된 챗봇을 리서치한 결과, 대표적으로 페이스북 챗봇의 42%가 위 방식을 채택한다고 밝혔습니다.
페이스북 메시지 플랫폼에서 구현된 챗봇 사례(Ait France, Zulily)[16]
하지만, 이렇게 카드뷰와 같은 UI를 활용하게 되면서 챗봇의 역할은 대화보다는 정보 제공에 가까워졌습니다. 결국 명령어 인식 기술이나 의사소통 시뮬레이션의 부족으로 챗봇은 기계적으로 변했고, 페이스북 챗봇의 70%가량은 사람다운 대화나 토론 같은 상호작용이 결여된 실패한 서비스라고 평가되었습니다.[17] 그렇다면, 상호작용을 잘하려면 어떻게 해야 할까요? 지속적인 대화 학습을 통해 커뮤니케이션 스킬을 높이고, 사용량을 폭발적으로 증가시키는 사례를 통해 알아보겠습니다.
챗봇, 사람들이 말하는 거 보고 배워와.
챗봇 대화의 품질을 높이기 위해 구글과 마이크로소프트는 딥러닝 모델의 챗봇을 지속적으로 학습시키고 있습니다. 구글은 2020년에 일상 대화가 가능한 오픈 도메인 챗봇 Meena을 발표했는데, 기존보다 더 많은 학습량과 시간을 투자하여 인간같이 자연스러운 대화가 가능해졌음을 보여주었습니다. 하지만 대화 성능의 향상은 쉽게 이루어진 것이 아니었습니다. 기존의 대화 학습 데이터보다 8배 증가한 4천만 개의 텍스트를 30일간 학습시켰고, 그로 인한 클라우드 비용은 2,100% 증가한 13억을 투자했습니다. 그 결과, Meena는 사용자의 질문에 대답할만한 데이터가 없더라도 주어진 대화 맥락에 대해 감성적으로 구체적인 대화를 하게 되었습니다.[18]
구글 챗봇 Meena와 사람과의 대화 예시[19]
Meena에게 오스카 수상작에 오른 영화를 추천해달라고 하면, Meena는 “오스카 수상작은 잘 모르지만, 그랜드 부다페스트 호텔 영화는 보고 싶었어”라며 대안을 제시합니다. 혹은 대주제인 영화에서 감독이나 작가와 같은 소주제로 좁힙니다. 또한 “좋은 작품이라고 들었어”라는 말은 챗봇이 룰베이스로 모범 답안만 말하는 단계를 넘어 누군가에게 간접적으로 알게 된 정보를 전달하는 듯한 뉘앙스까지 구현했음을 알 수 있습니다. 비록 한두 문장 정도는 어색함은 있지만, 이해 못 할 정도의 수준은 아닙니다.
동일한 질문을 다른 챗봇에 하면 어떨까요? 구글 어시스턴트(Google Assistant)에게 “오스카 수상작 영화 추천해줘”라고 물어봤지만, 안타깝게도 어시스턴트는 여러 영화 포스터만 나열했습니다. 영화 리스트는 구글 검색 결과에 입력해도 충분히 얻을 수 있는 정보였기에 챗봇과의 경험이 특별하게 느껴지지 않았습니다. 말은 알아들었지만, 대화를 더 이어가긴 어려워졌습니다. 사용자는 키워드 검색과 대화형 챗봇 사용 경험이 유사할수록, 지속해서 봇과 상호작용까지 할 필요성은 못 느낄 것입니다. 이를 두고 컨설팅회사 딜로이트(Deloitte)는 챗봇 설계를 검색엔진처럼 속도와 알고리즘의 정확성뿐만이 아니라 데이터 안에 부호화된 사용자의 행위와 사고관까지 반영해 최적화해야 한다고 조언합니다.[20]
‘오스카 영화 추천’을 입력한 (좌) 구글 어시스턴트 대화 내용, (우) 구글 검색 결과
그렇다면 봇과 상호작용이 향상된다면 사용자가 열광할까요? 우리는 6억 명이 넘는 사용자가 열광 중인 XiaoIce(샤오이스)에서 답을 찾을 수 있었습니다. 마이크로소프트 중국지사에서 분사한 XiaoIce는 대화 능력이 뛰어난 것은 물론 사람 간의 상호작용을 위한 사회적 기술, 감정과 행동까지 학습했기 때문에 이용 시간과 이용률은 지속 상승하고 있다고 합니다.[21]
비교를 위해 Meena와 마찬가지로 XiaoIce에게 영화에 대해 대화해봤습니다.
XiaoIce와 영화 ‘시절인연’과 탕웨이에 대해 채팅한 대화[22]
XiaoIce는 이미 알고 있는 영화 데이터를 기반으로 영화배우인 탕웨이 사진을 보여주기도 하고, 배우 탕웨이에 대한 감정도 솔직하게 표현합니다. 마치 친구와 대화하는 듯한 느낌을 주고, 대화를 꼬리에 꼬리를 물며 이어지게끔 합니다. XiaoIce와 하는 대화 횟수는 챗봇업계 평균 10배(2018년 기준) 정도로, 챗봇과의 대화가 길어질수록 이용률이 높아지는 것을 알 수 있습니다.[23]
이처럼 좋은 반응을 얻은 XiaoIce는 마치 친구와 대화하는 듯하게 구현되어 있습니다. 하지만, 앞서 언급한 코로나 문진이나 리테일 업계의 고객 서비스용 챗봇처럼 특정한 태스크를 해결하는 목적의 챗봇들도 사람과 대화하듯이 구현되는 것이 좋을까요? 챗봇 사용 목적이 친밀함을 쌓고 지속적인 사용을 위함이냐 특정 태스크 해결 목적이냐에 따라 성별, 나이와 같은 페르소나(Persona)나 얼마나 사람같이 말하게 만들어야 하는지, 어떻게 첫 대화를 시작해야 하는지 달라질 것입니다. 이러한 내용들을 다음 편부터 자세하게 알아보도록 하겠습니다.
우리의 제언
[똑똑한 챗봇 만들기] 챗봇의 구조 – 개발적 관점
<룰베이스 방식>은 다음과 같습니다.
– ‘회사 소개’라는 버튼을 누르면, 정확하게 ‘회사 소개에 대한 내용’이 나오는 방식으로 규칙에 의해 동작합니다.
– 버튼으로 제공하므로 타이핑 질문을 하지 않는 이상 답변의 범위를 벗어나지 않고, 제공하고자 하는 답변만을 알려 주며, 사용자도 쉽게 버튼 클릭으로 답을 찾을 수 있습니다.
– 챗봇의 사용률이 20~30대가 많다 하더라도, 최종적으로 버튼을 끝까지 눌러서 결괏값을 보는 사용자의 비율은 50~60대의 연령층이 높은 통계를 고려하면 효율적입니다.
<지능형 대화 방식>은 다음과 같습니다.
– 타이핑 질문에 대해서 봇빌더 내에 예상되는 질문과 매칭되는 답변이 있을 경우, 자연어 이해를 통해 답변을 내보내게 됩니다.
– 룰베이스 방식의 부족한 부분을 채워 주는 방식으로, 정확하게 어떤 질문을 해야 할지 알고 있고 바로 답변을 요구할 때 자연어 이해 방식으로 답변을 내보냅니다.
개발적 관점의 FAQ형은 이미 구축된 봇빌더 툴 내에 기획해 놓은 시나리오를 토대로 버튼 동작의 플로우를 구성하고, 데이터를 입력하여 문의를 해결할 수 있도록 합니다.
딥러닝 챗봇에 대한 오해
https://www.forbes.com/sites/cognitiveworld/2020/02/23/choosing-between-rule-based-bots-and-ai-bots
룰베이스 챗봇과 AI 챗봇을 비교한 글입니다. AI 챗봇은 머신러닝이나 딥러닝을 사용하여 스스로 학습을 한다고 말합니다. 그래서 룰베이스와 달리 사람이 계속 업데이트를 할 필요가 없다고 설명합니다.
사실 많은 분들이 이렇게 오해를 하고 있습니다. 하지만 실제로는 대부분의 챗봇 빌더들은 딥러닝을 적용하지 않습니다. 딥러닝은 그 특성상 대량의 데이터가 있어야 합니다. 챗봇 빌더들은 샘플 문장들이 적어도 잘 동작을 해야 하기 때문에, 보통 유사도나 통계기반의 알고리즘으로 되어 있습니다.
자체 엔진을 사용한 챗봇은 딥러닝으로 구현되기도 합니다. 그렇지만 스스로 학습하는 만능 인공지능은 아닙니다. 의도 파악이나 개체명인식을 딥러닝으로 하여, 좀 더 정확도를 높이는데 목적이 있습니다. 샘플 문장을 추가하고 새로운 시나리오를 작성하는 등의 작업은 계속 사람이 해야 합니다.
얼마 전 구글이 발표한 Meena처럼 일상대화 챗봇은 딥러닝으로 End-to-End가 가능합니다. 그러나 특정한 업무를 수행하는 목적지향 챗봇은 이런 구조로 만들기 어렵습니다. 의도와 개체를 추출하는 것까지는 딥러닝이 할 수 있습니다. 다만 그 정보를 가지고 주문을 하거나 DB를 검색하는 등의 작업은 별도의 함수로 프로그래밍을 합니다. 만약 모든 부분을 고려하여 통합적으로 학습을 하기 위해서는, 문장과 기호가 결합되어 특수하게 변경된 데이터가 필요합니다. 아직까지 이런 방식의 챗봇은 연구 단계입니다. 실제 상용화가 되려면 좀 더 시간이 걸릴 것 같습니다.
키워드에 대한 정보 룰 베이스 챗봇
다음은 Bing에서 룰 베이스 챗봇 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.
이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!
사람들이 주제에 대해 자주 검색하는 키워드 Infobip Answers: 첫 번째 규칙 기반 챗봇을 구축하는 방법
- 동영상
- 공유
- 카메라폰
- 동영상폰
- 무료
- 올리기
Infobip #Answers: #첫 #번째 #규칙 #기반 #챗봇을 #구축하는 #방법
YouTube에서 룰 베이스 챗봇 주제의 다른 동영상 보기
주제에 대한 기사를 시청해 주셔서 감사합니다 Infobip Answers: 첫 번째 규칙 기반 챗봇을 구축하는 방법 | 룰 베이스 챗봇, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.