1 of 103

맞춤형 학습과 챗봇

김성훈

2 of 103

순서

  1. 디지털 기반 맞춤형 학습과 ITS
  2. 챗봇 만들기
    1. Mizou
    2. Dialogflow
    3. Entry
  3. Q&A

3 of 103

생각해보기: 2022 개정교육과정

학생 맞춤형 교육을 위해 ‘적시적소’에 ‘디지털 도구’를 사용하는 것!

[그림] 국민과 함께 ‘미래 교육과정’을 이야기하다.

https://www.korea.kr/multi/visualNewsView.do?newsId=148886800

4 of 103

  1. 디지털 기반 맞춤형 학습과 ITS

5 of 103

맞춤형 학습

Carroll(1963)은 학생들의 개인차 변인(Individual variables)을 3가지로 제시

  1. 적성(aptitude)
    1. 어떤 일에 알맞은 성질이나 적응 능력 또는 그와 같은 소질이나 성격
  2. 수업 이해력(ability to understand instruction)
    • 학습해야 할 과제의 성질과 학습절차를 이해하는 학습자의 능력
  3. 학습 지속력(perseverance)
    • 학습자가 학습을 위해서 지속할 수 있는 시간

출처: (교육부,2022) 터치교사단(2기) 양성연수 공통과정 중 재인용

6 of 103

맞춤형 학습

Bloom(1984)

“개인지도를 받은 학생들은 전통적인 교실 강의식 교육을 받은 학생들의 평균 성적에 비해 표준편차 2배 이상 높은 평균 성적을 나타낸다.”

출처: (교육부,2022) 터치교사단(2기) 양성연수 공통과정 중 재인용

7 of 103

디지털 기반 맞춤형 학습

출처: 지능형 튜터링 시스템 기본 구조(김성훈, 2022)

  • ITS(Intelligent Tutoring Systems, 지능형 튜터링 시스템)

8 of 103

디지털 기반 맞춤형 학습

출처: 개별 맞춤형 학습을 위한 이분된 지식 추적 딥러닝 모델 개발(김성훈, 2021)

9 of 103

디지털 기반 맞춤형 학습 사례(1)

출처: 개별 맞춤형 학습을 위한 이분된 지식 추적 딥러닝 모델 개발(김성훈, 2021)

10 of 103

디지털 기반 맞춤형 학습 사례(2)

출처: 개별 맞춤형 학습을 위한 이분된 지식 추적 딥러닝 모델 개발(김성훈, 2021)

11 of 103

디지털 기반 맞춤형 학습 사례(2)

출처: Piech, Chris, et al. "Deep knowledge tracing." Advances in neural information processing systems 28 (2015).

12 of 103

디지털 기반 맞춤형 학습 사례(3)

출처: 개별 맞춤형 학습을 위한 이분된 지식 추적 딥러닝 모델 개발(김성훈, 2021)

13 of 103

디지털 기반 맞춤형 학습 사례(4)

출처: 개별 맞춤형 학습을 위한 이분된 지식 추적 딥러닝 모델 개발(김성훈, 2021)

14 of 103

디지털 기반 맞춤형 학습 사례(4)

출처: 개별 맞춤형 학습을 위한 이분된 지식 추적 딥러닝 모델 개발(김성훈, 2021)

15 of 103

디지털 기반 맞춤형 학습의 미래

  • 대화형 튜터링 시스템(DBMS) : Dialogue Based Tutoring Systems
  • 특징
    • ITS와 달리 학습 주제에 대한 대화에 참여, 기존 지식을 더 깊이 이해할 수 있도록 함

[그림] Watson Tutor

[그림] Kamigo

16 of 103

2. 챗봇 만들기

17 of 103

가. Mizou

18 of 103

19 of 103

20 of 103

21 of 103

22 of 103

23 of 103

24 of 103

25 of 103

26 of 103

27 of 103

28 of 103

29 of 103

30 of 103

31 of 103

32 of 103

33 of 103

34 of 103

35 of 103

36 of 103

37 of 103

38 of 103

39 of 103

40 of 103

41 of 103

[그림] 하루 일기 쓰기 사례

[그림]O X 퀴즈 문제

42 of 103

43 of 103

44 of 103

45 of 103

46 of 103

나. Dialogflow

47 of 103

  1. 일상생활 속 대화를 바탕으로 �챗봇 이해하기

48 of 103

동기유발

다음 대화를 나누고 있는 A, B 중 누가 사람일까요?

A: 기분이 어때?

B: 나쁘지 않아. 특별한 것 없다. 다른 물어볼 거 없어?

A: 한국에 대해 알아?

B: 나는 고작 13살이야. 너는 내가 모든 것에 대해 알아야 한다고 생각하는구나. �너에 대해 말해줄래? 직업이 뭐야?

A: 나는 기자야.

B: 나 신문 읽는 거 좋아하는데. 근데 파파라치는 싫어.

49 of 103

동기유발

A: 안녕

B: 안녕, 너랑 대화할 수 있게 돼서 정말 반가워. 내 기니피그 빌이 안부 전해 달래!

A: 김치 알아?

B: 난 뭐든지 알지.

A: 김치 먹어본 적 있어?

B: 그거 먹는거 확실해?

다음 대화를 나누고 있는 A, B 중 누가 사람일까요?

50 of 103

2014년, 영국 레딩대 연구진이 개발한 인공지능 채팅 프로그램 ‘유진 구스트만’

사용자가 어떤 질문을 던지면 그것을 이해해서 ‘그럴 듯한’ 답변을 던지거나 반문하고, �이 과정에서 사용자가 ‘실제 인간과 대화하는 것 같다’는 인상을 받을 수 있도록 정교하게 프로그램된 '봇(bot)’

인공지능을 판별하는 방법 중의 하나인 ‘튜링테스트’를 통과했다고 해 관심을 끌었음

동기유발

51 of 103

동기유발

다음 대화를 나누고 있는 , 중 누가 인공지능일까요?

질문자: “9우두 한아에 도늘 을마깢2 쓸껀가요 (How mutch wood ewe pay 4 a pear of shews.)”

,: 질문을 이해할 수 없어.

질문자: 이 질문을 소리내어 읽어보면 무슨 말인지 알거야.

: 왜 이걸 궁금해 하는거지? 너는 구두를 좋아하니? 너는 구두를 사기 위해 돈을 얼마나 쓸거니?

: 나는 패션을 좋아하지 않기 때문에 구두를 그렇게 자주 사지 않아.

52 of 103

학습문제

일상생활 속 대화를 바탕으로 시나리오를 작성하고,

구글 Dialogflow를 사용하여 간단한 챗봇을 만들어 봅시다.

53 of 103

친구와 스몰토크(Small talk) 나눠보기

활동

1

스몰토크(Small talk)란?

사소한 이야기. 일상적이고 소소한 주제로 대화하는 것

스몰토크 주제 예

  • 어디에서 오셨어요?
  • 무슨 일을 하시나요?
  • 취미가 무엇인가요?
  • 좋아하는 음식은 무엇인가요?

54 of 103

친구와 스몰토크(Small talk) 나눠보기

활동

1

친구와 대화를 나눈 후, 대화 내용을 다음과 같이 정리해봅시다.

A는 나 ,B는 친구

A: 너의 이름은 무엇이니?

B: 내 이름은 펭수야.

A: 어떤 음식을 좋아하니?

B: 나는 참치를 좋아해. 너는?

A: 나는 불고기를 좋아해.

B: 나는 영화 보는 것을 좋아해. 너는 무엇을 좋아하니?

A: 나는 노래 부르는 것을 좋아해.

55 of 103

챗봇으로 만들 가상 인물 정의하기

활동

2

챗봇(Chatbot)이란?

음성이나 문자를 통한 인간과의 대화를 통해서 특정한 작업을 수행하도록 제작된 컴퓨터 프로그램

간단한 대답을 할 수 있는 챗봇 친구를 만들어볼까요?

  • 이름: 호떡이
  • 나이: 15살
  • 사는 곳: 대구시
  • 좋아하는 것: 김밥, 책 읽기, 고래

56 of 103

챗봇 친구 만들기

활동

3

구글 Dialogflow 접속

https://dialogflow.cloud.google.com/ 에 접속한다.

(또는 ‘dialogflow console’ 이라고 검색함)

구글 계정으로 로그인한다.

에이전트(Agent)를 새로 만든다.�Dialogflow 에이전트(Agent)란? �사용자의 언어를 이해하고 처리할 수 있는 챗봇

57 of 103

챗봇 친구 만들기

활동

3

Dialogflow 에이전트 설정

① 이름: 챗봇친구 �(다른 이름으로 만들어도 되지만, 띄어쓰기는 안됨)

② 기본 언어: 한국어(Korean(South Korea)-ko)

다 작성했다면 ‘CREATE’ 버튼 클릭!

58 of 103

챗봇 친구 만들기

활동

3

Dialogflow 인텐트(Intents) 살펴보기

인텐트(Intents)란? 사용자가 질문한 의도에 따라 답변하는 하나의 상황을 위한 입력, 출력 꾸러미

기본 시작 인텐트(Default Welcome Intent)

대화 시작을 위한 상황 설정 가능

기본 대체 인텐트(Default Fallback Intent)

대화 중 적절한 인텐트가 없는 상황에 대한 설정 가능

59 of 103

챗봇 친구 만들기

활동

3

기본 시작 인텐트(Intents)에 원하는 문구 추가해보기

문구 입력 후, 테스트 해보기 예) ‘안녕?’ 을 입력 해 보고, 결과 확인하기

[지금 사용해보기 필드]

작성된 인텐트를 테스트해볼 수 있음

60 of 103

챗봇 친구 만들기

활동

3

기본 시작 인텐트(Intents)에 원하는 문구 추가해보기

  • Training phrases 사용자가 입력할 만한 문구 입력
  • Responses 사용자의 입력에 따라 출력할 문구 입력

61 of 103

챗봇 친구 만들기

활동

3

기본 시작 인텐트(Intents)에 원하는 문구 추가해보기

간단한 대답을 할 수 있는 챗봇 친구를 만들어볼까요?

  • 만들 인텐트

  • ‘CREATE INTENT’ 버튼 클릭
  • 내가 추가한 문구 입력 후, 대답이 잘 나오는 지 결과 확인해보기
  • 원래 있었던 문구 입력 후, 내가 추가한 대답이 잘 나오는 지 결과 확인해보기

・이름

・나이

・사는 곳

・좋아하는 것

62 of 103

챗봇 친구 만들기

활동

3

친구와 만든 챗봇 친구의 특징을 보고, 인텐트 만들어보기

  • ‘이름’ 인텐트 만들기
  • 사용자가 입력할 만한 질문을 훈련시키기�다양하게 5~10개 정도 만들기
  • 입력한 질문 내용 중 색깔로 표시된 부분이 뜬다면 �클릭해서 휴지통 아이콘을 눌러 색깔 분류 모두 지우기
  • 다 했다면 ‘SAVE’ 버튼 누르기

63 of 103

챗봇 친구 만들기

활동

3

친구와 만든 챗봇 친구의 특징을 보고, 인텐트 만들어보기

  • ‘이름’ 인텐트 만들기
  • 사용자의 입력에 대답할 문구 만들기�・2~3개 정도 만들기�・사용자가 입력한 대답에 무작위로 나타남
  • 다 했다면 ‘SAVE’ 버튼 누르기

64 of 103

챗봇 친구 만들기

활동

3

친구와 만든 챗봇 친구의 특징을 보고, 인텐트 만들어보기

  • ‘이름’ 인텐트가 잘 동작하는 지 확인해보기
  • 다른 인텐트도 추가해보기�・나이, 사는 곳, 좋아하는 것

65 of 103

(참고) 엔트리를 활용한 챗봇 만들기

66 of 103

1. 학교 행사 안내 챗봇을 만들어 볼까?

(1) 문제 발견 및 정의하기

질문의 유형을 분류하고, 유형별 정해진 답변하는 모델

사람들은 어떤 질문을 자주 할까?

챗봇의 이름, 행사 날짜, 장소, 유의 사항 등에 대해 질문할 것 같아.

분류 결과의 정확도를 높이기 위해서는 어떻게 해야 할까?

질문의 유형이 서로 중복되지 않고, 명확히 구분되는 것으로 선정해야 해.

질문에 대답하는 모델

67 of 103

1. 학교 행사 안내 챗봇을 만들어 볼까?

(2) 데이터 수집하기

챗봇은 사용자의 질문 유형을 분류하고, 적절한 답변이 제공되는 것을 목적으로 함. 따라서 사용자들이 주로 묻는 질문의 유형이 먼저 정의되고, 유형별로 질문과 답변 데이터를 필요로 함.

행사

정보

  • 행사명: 인공지능 활용 해커톤 축제
  • 일시: 20○○년 ○월 ○○일 오후 2~4시
  • 장소: ○○고등학교 강당
  • 유의 사항: 기본적인 교칙 준수

68 of 103

1. 학교 행사 안내 챗봇을 만들어 볼까?

(2) 데이터 수집하기

사용자가 학교 행사에 궁금해할 질문과 답변을 나열하고, 그것을 유형별로 묶어서 데이터를 수집해야 함. 유형, 예상되는 질문, 답변 순서로 정리

69 of 103

1. 학교 행사 안내 챗봇을 만들어 볼까?

(2) 데이터 수집하기

유형

질문

답변

자기

소개

안녕.

안녕하세요.

넌 누구니?

이름이 뭐야?

자기소개해 봐.

너에 대해 알려줘.

안녕하세요. 저는 행사 봇, ○○입니다.

일시 및

장소

날짜

장소

날짜 안내해 줘.

어디로 가야 하나요?

행사에 대해 알려 줘.

행사 날짜가 어떻게 되나요?

해커톤 축제는 20○○년 ○월 ○○일 오후 2시부터 4시까지 진행됩니다. 늦지 않게 ○○고등학교 강당으로 모여 주세요.

유의

사항

복장

준비물

음료수 먹어도 되나요?

먹으면서 할 수 있나요?

행사에 무엇을 입고 가나요?

다른 사람이랑 상의해도 되나요?

기본적인 교칙을 준수하여, 다른 참가자들에게 피해를 주지 않는 범위 내에서 자유롭게 행동할 수 있습니다.

70 of 103

1. 학교 행사 안내 챗봇을 만들어 볼까?

(2) 데이터 수집하기

유형

질문

답변

자기

소개

안녕.

안녕하세요.

넌 누구니?

이름이 뭐야?

자기소개해 봐.

너에 대해 알려줘.

안녕하세요. 저는 행사 봇, ○○입니다.

일시 및

장소

날짜

장소

날짜 안내해 줘.

어디로 가야 하나요?

행사에 대해 알려 줘.

행사 날짜가 어떻게 되나요?

해커톤 축제는 20○○년 ○월 ○○일 오후 2시부터 4시까지 진행됩니다. 늦지 않게 ○○고등학교 강당으로 모여 주세요.

유의

사항

복장

준비물

음료수 먹어도 되나요?

먹으면서 할 수 있나요?

행사에 무엇을 입고 가나요?

다른 사람이랑 상의해도 되나요?

기본적인 교칙을 준수하여, 다른 참가자들에게 피해를 주지 않는 범위 내에서 자유롭게 행동할 수 있습니다.

질문의 유형과 맞지 않는 질문일 경우, ‘죄송해요. 무슨 말인지 잘 모르겠어요. 다시 말씀해 주세요.‘ 답변을 사용함.

71 of 103

1. 학교 행사 안내 챗봇을 만들어 볼까?

(3) 모델 학습 및 평가하기

‘유형‘은 모델의 분류 클래스, '질문'은 각 클래스의 텍스트 데이터로, 텍스트 데이터는 쉼표를 기준으로 구분함.

  • 결과 박스에서는 학습에 사용되지 않은 데이터를 학습된 모델에 입력하여 분류 결과를 확인할 수 있음.
  • 입력된 데이터의 분류 결과는 각 클래스별 확률 값으로 표시됨.

유형

질문

72 of 103

더 알아보기, 분류:텍스트 모델 데이터 입력 단계

클래스

텍스트 데이터

파일 업로드

73 of 103

1. 학교 행사 안내 챗봇을 만들어 볼까?

(4) 프로그램 만들기(http://naver.me/5IFhPM07)

74 of 103

1. 학교 행사 안내 챗봇을 만들어 볼까?

(4) 프로그램 만들기

75 of 103

1. 학교 행사 안내 챗봇을 만들어 볼까?

(4) 프로그램 만들기

76 of 103

1. 학교 행사 안내 챗봇을 만들어 볼까?

(4) 프로그램 만들기

77 of 103

1. 학교 행사 안내 챗봇을 만들어 볼까?

(5) 모델 개선하기

사용자가 배포될 모델을 사용하면서 발생하는 문제를 확인해 봄.

각 클래스별로 정확도가 높지 않아 적절한 답변이 출력되지 않는 문제

사용자들이 입력한 질문과 그 유형이 무엇인지를 수집하고, 사용자가 원하는 결과가 제대로 출력되었는지 확인함.

사용자의 질문들이 모델의 분류 클래스와 관련이 낮을 경우 새로운 분류 클래스가 필요

사용자들이 입력한 질문을 분석한 후, 추가할 분류 클래스가 더 없는지 확인

78 of 103

1. 학교 행사 안내 챗봇을 만들어 볼까?

(5) 모델 개선하기

79 of 103

2. 선생님과 상담 시간을 약속하는

챗봇 만들기

선생님과 상담 시간을 약속하는 챗봇 만들기

80 of 103

동기유발

다음은 사람들과 Eliza 프로그램이 사용자와 나눈 대화의 일부입니다. 이 프로그램이 만들어진 시기는 언제쯤일까요?

사람처럼 자연어를 처리하는 인공지능 프로그램에 대한 관심은 인공지능의 연구 초기부터 있었습니다. 하지만 대화 내용에 구체적으로 대답하기보다는 사용자가 계속 대화를 이어나가도록 유도하는 말을 많이 하는 식이었습니다.

81 of 103

동기유발

여러분이 사용해 본 챗봇이 있나요? Eliza와 어떤 차이가 있나요?

예) 숙소 예약 도우미 챗봇

- 호스트, 게스트를 나누어 맞춤 대응

예) 샐러드 주문 도우미 챗봇

- 홍보 제품의 특징이 드러남

- 고객이 필요로 하는 정보를 손쉽게 접근할 수 있도록 함

82 of 103

수업주제

Google Dialogflow를 사용하여 선생님과 상담 약속을 돕는

챗봇을 만들어 봅시다.

83 of 103

챗봇의 대화 흐름 정리해보기

활동

1

  • 선생님과 상담 약속을 돕는 챗봇을 만들기 위해, 어떤 대화가 이루어져야 할 지 정리해봅시다.

사용자 입력 내용

챗봇 응답 내용

안녕하세요!

안녕하세요! 상담 약속 도우미 챗봇입니다.

상담 약속을 잡고 싶어요.

이름, 상담을 원하는 요일(월~금), 시간(아침, 점심, 방과후)를 알려주세요.

이구글, 수요일, 점심시간이요.

이구글, 수요일, 점심시간 약속을 완료하였습니다. 상담 시간에 만나요!

84 of 103

Dialogflow 에이전트(Agent) 만들기

활동

2

  • 구글 검색창에 ‘Dialogflow’를 검색한 후, https://dialogflow.cloud.google.com/ 에 접속합니다.
  • Dialogflow란?
    • 대화로 이루어진 최종 사용자의 텍스트 또는 오디오를 앱과 서비스가 이해할 수 있는 구조화된 데이터로 변환해주는 챗봇 제작 소프트웨어
  • 구글 계정으로 회원가입, 로그인합니다.

85 of 103

Dialogflow 에이전트(Agent) 만들기

활동

2

  • Create Agent를 클릭하여 챗봇 만들기를 시작할 수 있습니다.
    • Dialogflow Agent란?
      • 최종 사용자와의 동시 실행 대화를 처리하는 가상 에이전트
      • 인간 언어의 미묘한 차이를 이해하는 자연어 이해 모듈
      • 시스템에 필요한 대화 유형을 처리하도록 Dialogflow Agent를 직접 설계하고 빌드할 수 있음
      • 예상되는 대화 시나리오를 처리하도록 학습
      • 학습이 지나치게 명시적일 필요는 없음

86 of 103

Dialogflow 에이전트(Agent) 만들기

활동

2

  • Agent 이름, 기본 언어를 설정해봅시다.
    • 이름은 원하는대로 지을 수 있습니다. 예) 상담약속도우미
    • 기본 언어는 한국어로 지정합니다.
      • Korean(South Korea) – ko
    • CREATE 버튼을 클릭하여 완료합니다.

87 of 103

기본 인사말 인텐트(Intents) 만들기

활동

3

  • 필요한 대화의 흐름에 따라 여러 개의 인텐트를 만들어 챗봇이 응답하도록 만들 수 있습니다.
    • 활동1에서 작성한 챗봇의 대화 흐름 표에서 가로 줄 하나를 하나의 인텐트로 구현할 수 있습니다.

인텐트

사용자 입력 내용

챗봇 응답 내용

기본 인사말

안녕하세요!

안녕하세요! 상담 약속 도우미 챗봇입니다.

상담 약속 신청

상담 약속을 잡고 싶어요.

이름, 상담을 원하는 요일(월~금), 시간(아침, 점심, 방과후)를 알려주세요.

신청 정보 입력

이구글, 수요일, 점심시간이요.

이구글, 수요일, 점심시간 약속을 완료하였습니다. 상담 시간에 만나요!

88 of 103

기본 인사말 인텐트(Intents) 만들기

활동

3

  • Dialogflow 기본 인텐트
    • 기본 시작 인텐트(Default Welcome Intent) – 대화 시작을 위한 상황 설정 가능
    • 기본 대체 인텐트(Default Fallback Intent) – 대화 중 적절한 인텐트가 없는 상황에 대한 설정 가능
  • 기본 시작 인텐트(Default Welcome Intent)의 지금 사용해보기 필드에서 ‘안녕’이라고 입력해봅시다.
    • 어떤 결과가 출력되나요?
    • ‘안녕!’ 또는 ‘안녕하세요!’가 출력되었나요?

[지금 사용해보기 필드]

작성된 인텐트를 테스트해볼 수 있음

89 of 103

기본 인사말 인텐트(Intents) 만들기

활동

3

  • 기본 시작 인텐트(Default Welcome Intent)에 원하는 문구를 추가해봅시다.
    • Training phrases – 사용자가 입력할 만한 문구 입력(사용자 입력 내용)
    • Responses – 사용자의 입력에 따라 출력할 문구 입력(챗봇 출력 내용)

90 of 103

기본 인사말 인텐트(Intents) 만들기

활동

3

  • 기본 시작 인텐트(Default Welcome Intent)에 원하는 문구를 추가해봅시다.
    • ‘Training phrases’에 저장된 문구를 바탕으로 챗봇이 학습을 하고, 만약 저장된 문구와 일치하거나 유사한 문구가 입력되면 해당 인텐트의 ‘Responses’ 내용 중 하나를 무작위로 출력합니다.
      • ‘Training phrases’에 있는 문구와 조금 다른 문구더라도 챗봇이 유사한 문구로 판단할 수 있습니다.
    • ‘Training phrases’에 저장된 문구를 바탕으로 챗봇이 학습을 하고, 만약 저장된 문구와 일치하거나 유사한 문구가 입력되면 해당 인텐트의 ‘Responses’ 내용 중 하나를 무작위로 출력합니다.
      • 기본적으로 입력되어 있는 9개의 문구와 다른 문구를 입력해봅시다.
      • 예) 만나서 좋아. / 반갑다!
    • 문구를 추가 한 후 SAVE 버튼을 눌러 저장합니다.
    • 지금 사용해보기 필드에서 자신이 추가한 문장을 입력해봅시다.
      • ‘안녕!’ 또는 ‘안녕하세요!’가 출력되었나요?
      • 새로 추가한 문장을 챗봇이 잘 학습하였네요!
    • 지금 사용해보기 필드에서 자신이 추가한 문장과 유사한 문장을 입력해보고, 결과를 확인해봅시다.

91 of 103

기본 인사말 인텐트(Intents) 만들기

활동

3

  • 기본 시작 인텐트(Default Welcome Intent)에 원하는 문구를 추가해봅시다.
    • ‘Responses’ 에 새로운 문구를 추가해봅시다.
      • 기본적으로 입력되어 있는 2개의 문구와 다른 문구를 입력해봅시다.
      • 예) 안녕하세요! 저는 상담 약속 도우미 챗봇입니다. :D
    • 문구를 추가 한 후 SAVE 버튼을 눌러 저장합니다.
    • 지금 사용해보기 필드에서 기본 시작 인텐트로 분류할만한 내용을 입력해보고, 결과를 확인해봅시다.
      • 예) 안녕 / 반가워 / 오랜만이야
      • 자신이 추가한 응답 내용이 출력되었나요?
      • 새로 추가한 문장을 챗봇이 잘 학습하였네요!
      • 만약 자신이 추가한 응답 내용이 출력되지 않았다면, 2번 정도 더 시도해볼까요?

- 응답 내용은 저장되어 있는 문구 중 하나가 무작위로 출력됩니다. 따라서, 한 번 시도에 내가 추가한 문장이 출력되지

않을 수 있습니다.

92 of 103

필요한 인텐트(Intents) 만들기

활동

4

  • 활동1에서 작성한 대화 흐름표를 바탕으로 필요한 인텐트를 확인해봅시다.
  • 활동3에서 기본 인사말 인텐트를 만들었으므로, ‘상담 약속 신청’, ‘신청 정보 입력’ 인텐트를 만들어봅시다.

  • 새로운 인텐트를 만들기 위해 목록의 ‘Intents’ 옆 + 버튼을 클릭하거나, 화면 상단의 CREATE INTENT 버튼을 클릭합니다.

인텐트

사용자 입력 내용

챗봇 응답 내용

기본 인사말

안녕하세요!

안녕하세요! 상담 약속 도우미 챗봇입니다.

상담 약속 신청

상담 약속을 잡고 싶어요.

이름, 상담을 원하는 요일(월~금), 시간(아침, 점심, 방과후)를 알려주세요.

신청 정보 입력

이구글, 수요일, 점심시간이요.

이구글, 수요일, 점심시간 약속을 완료하였습니다. 상담 시간에 만나요!

93 of 103

필요한 인텐트(Intents) 만들기

활동

4

  • ‘상담 약속 신청’ 인텐트
    • 상담 약속 신청 인텐트는 사용자가 상담을 하고 싶다는 의미의 문구가 입력되면 상담 신청을 위해 필요한 정보를 입력하도록 안내하는 역할을 합니다.
    • 인텐트 이름(Intent name) 칸에 ‘상담약속신청’이라고 쓰고 SAVE 버튼을 클릭하여 저장합니다.
      • 원하는 다른 이름으로 적어도 되며, 띄어쓰기는 허용되지 않습니다.
    • ‘Training phrases’에 사용자가 입력할 내용으로 예상되는 문구를 추가합니다.
      • 5~10개 정도 추가하는 것을 권장하며, 챗봇이 학습할 문구가 됩니다.
      • ‘ADD TRAINING PHRASES’를 클릭하여 문구를 추가합니다.
      • 예) 상담 약속을 잡고 싶어요. / 상담하고 싶어. / 예약 / 신청 / 상담 신청할래요
      • 새로운 문구를 입력하였을 때, 색깔로 표시되는 단어가 있다면 단어를 클릭한 후, 휴지통 아이콘을 클릭하여 색깔 표시를 지워줍니다.
    • 입력을 다 했다면 SAVE 버튼을 클릭하여 저장합니다.

94 of 103

필요한 인텐트(Intents) 만들기

활동

4

  • ‘상담 약속 신청’ 인텐트
    • ‘Responses’에 사용자의 입력 내용에 챗봇이 응답할 문구를 추가합니다.
      • 1개 이상 추가해야 하며, 여러 개를 입력할 경우 무작위로 하나의 응답이 출력됩니다.
      • 예) 이름, 상담을 원하는 요일(월~금), 시간(아침, 점심, 방과후)를 알려주세요.
      • 예) 상담을 하고 싶군요! 이름, 상담을 원하는 요일(월~금), 시간(아침, 점심, 방과후)를 입력해주세요.
    • 입력을 다 했다면 SAVE 버튼을 클릭하여 저장합니다.
    • 저장이 다 되었다면 챗봇이 잘 학습하였는지 지금 사용해보기 필드에서 확인해봅시다.

95 of 103

필요한 인텐트(Intents)와 엔티티(Entity) 만들기

활동

5

  • 이번에는 엔티티(Entity)를 사용하여 인텐트를 구성해봅시다.
    • 엔티티를 사용하여 사용자에게 신청 정보를 입력받은 후, 사용자가 입력한 내용을 출력해줄 수 있습니다.
  • ‘신청 정보 입력’ 인텐트를 만들고 필요한 엔티티를 만들어봅시다.
    • 신청 정보 입력 인텐트는 사용자로부터 이름, 상담을 원하는 요일, 시간을 입력받아 확인하는 역할을 합니다.
    • 실제 정보를 스프레드 시트와 같은 외부 저장공간에 저장하여 관리할 수 있지만, 우리는 엔티티를 사용하여 사용자가 입력한 내용을 다시 보여주는 방식으로 구현해봅시다.
    • 새로운 인텐트를 추가하고, 인텐트 이름을 입력한 후, SAVE 버튼을 클릭하여 저장합니다.
    • 엔티티(Entity)를 추가하여 사용자가 입력한 정보를 관리해봅시다.
      • 왼쪽 목록에서 ‘Entities’를 클릭합니다.
      • Entities의 + 버튼을 클릭하거나 상단의 CREATE ENTITY를 클릭하여 엔티티를 추가할 수 있습니다.
      • 추가할 엔티티는 상담 신청자의 이름, 상담을 원하는 요일, 상담을 원하는 시간입니다.

- 이름, 요일, 시간 엔티티를 추가해봅시다.

96 of 103

필요한 인텐트(Intents)와 엔티티(Entity) 만들기

활동

5

  • ‘신청 정보 입력’ 인텐트를 만들고 필요한 엔티티를 만들어봅시다.
    • 엔티티의 이름을 적고, 해당 엔티티로 분류할 단어를 추가합니다.
    • 엔티티의 이름은 영문자, 숫자, _, - 만 가능합니다.
    • ‘이름’ 정보를 저장할 엔티티의 이름은 ‘name’, 엔티티의 단어는 챗봇을 사용할 사용자의 이름을 추가해 봅시다.
    • ‘요일’ 정보를 저장할 엔티티의 이름은 ‘day’, 엔티티의 단어는 월요일부터 금요일까지 요일을 추가해 봅시다.
    • ‘시간’ 정보를 저장할 엔티티의 이름은 ‘time’, 엔티티의 단어는 아침, 점심, 방과후를 추가해 봅시다.

97 of 103

필요한 인텐트(Intents)와 엔티티(Entity) 만들기

활동

5

  • 인텐트 목록으로 돌아가 ‘신청정보입력’ 인텐트를 클릭합니다.
    • ‘Training phrases’에 사용자가 입력할 내용으로 예상되는 문구를 추가합니다.
      • 5~10개 정도 추가하는 것을 권장하며, 챗봇이 학습할 문구가 됩니다.
      • ‘ADD TRAINING PHRASES’를 클릭하여 문구를 추가합니다.
      • 예) 이구글, 수요일 점심시간에 상담할래
      • 예) 금요일 아침에 김문빈 상담할래
    • 새로운 문구를 입력하였을 때, 이름, 요일, 시간에 해당하는 단어가 색깔로 표시되는지 확인합니다.
      • 만약 의도하지 않은 문구를 색깔로 표시하였다면 단어를 클릭하여 잘못 분류한 엔티티를 삭제합니다.
      • 엔티티 지정이 필요한 문구가 있다면 단어를 드래그하여 지정할 수 있습니다.

98 of 103

필요한 인텐트(Intents)와 엔티티(Entity) 만들기

활동

5

  • 인텐트 목록으로 돌아가 ‘신청정보입력’ 인텐트를 클릭합니다.
    • 새로운 문구를 입력하였을 때, 이름, 요일, 시간에 해당하는 단어가 색깔로 표시되는지 확인합니다.
      • 오른쪽 그림과 같이 인식하였다면 노란색으로 표시된 ‘상담’을 클릭하여 엔티티 지정을 삭제합니다.
    • 학습 시킬 다른 문구도 같은 방법으로 정리합니다.
      • name, day, time 엔티티만 사용하여 정리합니다.

99 of 103

필요한 인텐트(Intents)와 엔티티(Entity) 만들기

활동

5

  • ‘신청정보입력’ 인텐트의 챗봇 응답 내용을 입력해봅시다.
    • ‘Responses’에 사용자의 입력 내용에 챗봇이 응답할 문구를 엔티티를 사용하여 추가해 봅시다.
      • 사용자가 입력한 내용을 확인할 수 있는 문구를 출력하기 위해 엔티티를 사용할 수 있습니다.
      • 예를 들어, 사용자가 ‘이구글, 수요일 점심시간에 상담하고 싶어’라고 입력했다면 각 엔티티의 값은 다음과 같습니다.

- name - 이구글, day - 수요일, time – 점심

      • 이 때, 엔티티를 사용하여 응답할 문구를 다음과 같이 엔티티를 사용하여 구성할 수 있습니다.

- $name 학생과 $day, $time에 만날 수 있겠군요! 상담 시간에 만나요!

- 출력 결과 - 이구글 학생과 수요일, 점심에 만날 수 있겠군요! 상담 시간에 만나요!

      • SAVE 버튼을 눌러 저장합니다.

100 of 103

필요한 인텐트(Intents)와 엔티티(Entity) 만들기

활동

5

  • ‘신청정보입력’ 인텐트의 챗봇 응답 내용을 입력해봅시다.
    • ‘Responses’에 사용자의 입력 내용에 챗봇이 응답할 문구를 엔티티를 사용하여 추가해 봅시다.
      • 저장이 다 되었다면 챗봇이 잘 학습하였는지 지금 사용해보기 필드에서 확인해봅시다.

101 of 103

웹데모 만들어 공유하기

활동

6

  • 완성한 챗봇을 다른 사람과 공유하기 위해 웹데모 링크를 만들어 봅시다.
  • 왼쪽 메뉴 중 ‘Integrations’를 선택합니다.
    • Text based의 메뉴 중 Web Demo를 선택합니다.
    • 팝업 창의 ENABLE 버튼을 클릭하여 활성화합니다.
    • 파란색으로 바뀐 링크 주소를 통해 내가 만든 챗봇을 다른 사람과 공유할 수 있습니다.

1

2

3

102 of 103

웹데모 만들어 공유하기

활동

6

  • 내가 만든 챗봇을 다른 친구에게 소개해 봅시다.
    • 친구에게 챗봇을 사용해보도록 안내하고, 더 학습시켜야 할 인텐트는 없는지 확인해봅시다.
  • 다른 친구가 만든 챗봇을 사용해 봅시다.
    • 다른 친구가 만든 챗봇과 내가 만든 챗봇의 공통점과 차이점을 생각해 봅시다.

103 of 103

3. Q&A