개발자 승학

IBM Watson 챗봇 만들기! 본문

it/AI(인공지능)

IBM Watson 챗봇 만들기!

유승학 2018. 5. 25. 01:55

안녕하세용~

이번 시간에는 AI(인공지능) ChatBot(챗봇)을 만들어 볼려구합니다.

90년대초에 태어나신 분은 다 아실 심심이(?)와 비슷한 챗봇이에용!

Watson Conversation으로 챗봇을 만들어 볼려고 합니당



먼저 IBM

IBM Watson™ Conversation에 접속하여 회원가입을 완료해주세요!

주소 : https://console.bluemix.net/docs/services/conversation/index.html


[1.회원가입 및 로그인]


접속하시면 우측 상단(1시 방향)에 등록 후 로그인 or 회원이신분은 바로 로그인을 합니다.




[2.IBM Watson Assistant]


Watson Assistant가 Conversation이거와 같은 거에요~



로그인을 하셨다면 위 사진처럼 우측 상단에 카탈로그가 보일거에요~




검색창에 Watson Assistant(빨간색 박스) 또는 우측 카테고리 맨 아래에 Watson(빨간색 박스)를 클릭하시면

Watson Assistant(노란색 박스)가 보이실 거에요 클릭!




클릭하시면 위와 같이 나오실거에요 좌측 아래에 작성을 눌러주세요






그런 다음 위 사진처럼 뜨면 도구 실행을 눌러주세요


[3.workspace생성하기]




Crate a Workspace 클릭



Create 클릭



Workspace의 이름과 설명을 적습니다.

Desciption은 생략해도 됩니다.



그럼 위와 같은 화면이 나옵니다.


[4.인텐트 생성, Dialog 작성]


Add intent를 눌러주세요!


  • Intent : Intent는 사용자가 하려는 말의 목적을 의미합니다. 따라서 우리는 서비스에서 제공하고자 하는 요청의 모든 타입을 Intent로 정의하게 됩니다. 예를들어 회의실 예약은 하나의 Intent가 될 수 있습니다. Watson Conversation에서 Intent를 지칭할 때에는 #을 prefix로 사용합니다. Intent를 정의할 때에는 사용자가 이 Intent를 목적으로 말을 할 때 사용할 가능성이 있는 최대한 많은 예시를 제공하는 것이 좋습니다. 예를 들어 회의실 예약이라는 Intent에는 “회의실 예약해주세요.”, “지금 빈 회의실이 있나요?” 등의 예시를 제공할 수 있습니다.
  • Entity : Entity는 Intent와 관련된 용어 또는 목적어를 의미합니다. Entity는 Intent에 대해 구체적인 문맥(Context)을 제공하는데에 쓰입니다. 예를 들어 회의실 예약이라는 Intent를 사용하기 위해서는 회의실 이라는 Entity를 정의할 수 있습니다. 회의실 Entity에는 실제로 보유중인 회의실 이름을 담으면 됩니다. 이렇게 Entity를 정의하면 사용자가 “진달래 회의실 지금 비어 있어?” 라고 했을 때 회의실 Entity의 값이 “진달래”로 리턴되게 됩니다.
  • Dialog : Dialog는 대화의 흐름을 분기하는 것으로 어플리케이션이 정의된 Intent와 Entity를 인식했을 때 어떠한 응답을 할 것인지를 정의합니다. 다시 말하면 사용자가 대화를 시도했을 때 이 대화의 Intent와 Entity를 파악한 후 어떠한 응답을 할 것인지를 정의합니다.




Add example을 누르면 감기와 비슷한 유사어들을 입력합니다.

밑에 6개 가지 예시들은 감기로 예상되는 여러 증상들을 입력합니다.



그런다음 dialog에 들어가시면 처음에는 노란색 박스가 없습니다.

Add node(빨간색 박스)를 클릭하면 새로운 dialog(노란색 박스)가 생깁니다.



[5.ChatBot]




위 빨간색 박스에 위에서 만든 인텐트(#Name)을 입력.

밑에 Then responed with에는 감기로 예상되는 intent시 답변하는 말입니다.


우측상단에 Try it아이콘을 누르면 맨 왼쪽과 같이 챗봇이 나옵니다.


전통적인 프로그램에서는 정해진 답이 아니면 없는 답이라고 나옵니다.

하지만 IBM Watson 챗봇은 유사한 단어가 나오면 같은 답변을 하게 됩니다.

사용자가 '가래가 생겨요'라는 학습하지 않은 메시지를  보내면

챗봇이 '#감기'라는 Intent로 인식하여 자동으로 #감기로 보여지고

그에 대한 대답 '감기로 예상됩니다. 가까운 병원에 방문해주세요' 라는 답변을 하게 됩니다.


자세한 내용은


https://developer.ibm.com/kr/watson/2017/01/13/watsonchatbot-1-watson-conversation/


여기에 있습니다.


궁금하신점은 답글 달아주세요!!

Comments