책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 컴퓨터 공학 > 자료구조/알고리즘
· ISBN : 9791188621286
· 쪽수 : 436쪽
· 출판일 : 2018-08-30
책 소개
목차
PART 1 시작하기
CHAPTER 1 봇 프레임워크 아키텍처 3
1.1 챗봇이란 무엇인가? 3
챗봇의 정의 4
왜 대화인가? 5
챗봇의 이점 6
봇을 채택할 것인가, 말 것인가? 8
1.2 봇 프레임워크 아키텍처 10
챗봇, 커넥터, 채널 시각화하기 10
채널 개요 11
봇 커넥터 서비스 12
챗봇의 특성 13
챗봇 통신 14
요약 15
CHAPTER 2 프로젝트 구성 16
2.1 챗봇 구축 단계 16
2.2 봇 프레임워크 프로젝트 생성 17
프로젝트 템플릿 설치하기 17
새 프로젝트 시작하기 19
2.3 기본 코드 검사 19
어셈블리 참조 20
폴더와 파일 구조 22
기본 챗봇 23
2.4 에뮬레이터로 초기 테스트하기 28
봇 에뮬레이터 설치하기 28
챗봇 설정 29
챗봇과 통신하기 32
2.5 챗봇 게시 및 등록 33
챗봇 게시 33
챗봇 등록 37
요약 40
CHAPTER 3 대화 구축하기: 기초 41
3.1 가위, 바위, 보 게임 봇 41
PlayType 열거형 42
Game 클래스 42
MessageController 클래스 46
3.2 대화 상태 관리 48
대화의 요소 48
상태 정보 저장 및 검색 51
3.3 대화에 참여하기 65
대화에 응답하기 65
맞춤 메시지 액티비티 만들기 66
맞춤 메시지 액티비티 사용하기 67
요약 69
CHAPTER 4 챗봇 세부 조정하기 70
4.1 봇 에뮬레이터 세부 사항 검토 70
4.2 액티비티 처리하기 72
Activity 클래스 72
ActivityType 클래스 74
코드 설계 개요 74
봇 에뮬레이터로 액티비티 전송하기 78
관계 변경 79
대화 업데이트 80
사용자 데이터 삭제하기 82
Ping 보내기 83
Typing 표시 84
4.3 고급 대화 메시지 85
Typing Activity 전송하기 85
독립 메시지 전송하기 89
요약 97
PART 2 봇 빌더
CHAPTER 5 다이얼로그 만들기 101
5.1 와인봇 소개 101
5.2 Wine.com API 사용하기 102
5.3 다이얼로그 구현하기 109
다이얼로그 클래스 생성하기 113
다이얼로그 초기화 및 작업 흐름 115
IDialogContext 검토 115
다이얼로그 대화 흐름 117
다이얼로그 프롬프트 옵션 120
검색하기 128
5.4 다이얼로그 호출하기 130
요약 132
CHAPTER 6 FormFlow 사용하기 133
6.1 기본 기능 133
6.2 기본 FormFlow 챗봇 137
Wine API 인터페이스 138
WineForm: FormFlow 양식 138
WineForm을 Dialog로 사용하기 144
6.3 FormFlow 대화 개선하기 148
Describe 특성 148
Numeric 특성 150
Optional 특성 150
Pattern 특성 151
Prompt 특성 151
Terms 특성 152
6.4 고급 템플릿과 패턴 154
패턴 언어 154
기본 템플릿 156
템플릿 용도 156
템플릿 옵션 163
요약 169
CHAPTER 7 FormFlow 맞춤 변경하기 170
7.1 FormFlow 플루언트 인터페이스 이해하기 170
7.2 Configuration 속성 172
응답 설정 174
템플릿 설정 175
명령어 설정 178
7.3 Message 메서드와 공통 매개변수 181
condition 매개변수 183
dependencies 매개변수 183
Prompt 매개변수 185
generateMessage 매개변수 185
7.4 Confirm 메서드 186
7.5 필드로 작업하기 188
동적 필드 정의 192
필드 검증 194
AddRemainingFields 메서드 196
HasField 메서드 197
7.6 OnCompletion 메서드 197
7.7 Build 메서드 200
7.8 FormFlow 초기화하기 200
요약 203
CHAPTER 8 LUIS로 자연어 처리 사용하기 204
8.1 핵심 LUIS 개념 205
8.2 LUIS와 훈련 모델 구성하기 206
모델 생성하기 206
의도 구성하기 208
실체 지정하기 209
훈련 및 배포 211
8.3 챗봇에서 LUIS 사용하기 214
WineBotLuis 소개 214
의도 추가 217
실체 처리하기 218
8.4 지속적인 LUIS 모델 개선 223
요약 225
CHAPTER 9 고급 대화 관리하기 266
9.1 다이얼로그 스택 관리하기 226
다이얼로그 스택이란 무엇인가? 227
다른 다이얼로그로 이동하기 228
Forward를 통한 이동 231
Call을 통한 이동 233
다이얼로그 끝내기 235
9.2 체이닝으로 대화 관리하기 239
WineBotChain 프로그램 239
Chain.From 245
Chain.Loop 246
Chain.Switch 247
Chain.ContinueWith 250
체인 게시 및 대기 메서드 종합 251
LINQ to Dialog 252
9.3 IScorable로 중단 처리하기 254
9.4 텍스트 출력 서식 지정하기 259
요약 262
PART 3 채널과 GUI
CHAPTER 10 카드 추가하기 265
10.1 음악 챗봇 개요 265
Spotify API 266
루트(Root) 다이얼로그 272
프로필(Profile) 다이얼로그 273
탐색(Browse) 다이얼로그 273
재생목록(Playlist) 다이얼로그 274
검색(Search) 다이얼로그 275
10.2 구성 요소 276
추천 활동 제시 276
파일 첨부 사용하기 281
10.3 카드 표시하기 289
BrowseDialog 구현하기 289
PlaylistDialog 구현하기 296
10.4 적응형 카드 301
컨테이너를 사용한 레이아웃 305
제어 사용하기 307
액션 처리하기 309
요약 311
CHAPTER 11 채널 구성 312
11.1 채널 개요 313
채널 구성 페이지 313
챗봇 통계 314
11.2 팀 구성 317
채널 설정 317
챗봇 사용 319
11.3 빙 구성 319
채널 설정 320
검색에서 사용하기 321
11.4 채널 검사기 321
요약 322
CHAPTER 12 이메일, SMS, 웹 챗봇 생성 323
12.1 챗봇 대화를 이메일로 보내기 323
이메일 계정 생성 323
이메일 채널 구성 324
12.2 챗봇에 텍스트 보내기 325
12.3 웹챗 제어 포함시키기 327
웹챗 IFrame 자리 표시자 추가하기 327
클라이언트 쪽 코딩 328
서버 요청 처리 329
요약 333
PART 4 API, 통합, 음성
CHAPTER 13 Direct Line API로 맞춤 채널 코딩하기 337
13.1 콘솔 채널 개요 338
콘솔 채널 코드 검사하기 340
13.2 대화 시작하기 343
13.3 새 액티비티 수신 345
13.4 대화를 계속 열어두기 351
13.5 액티비티 전송하기 353
13.6 대화 종료하기 355
CancellationTokenSource와 CancellationToken 355
사용자 종료 처리 356
요약 357
CHAPTER 14 인식 서비스 통합하기 358
14.1 빙으로 검색하기 359
14.2 이미지 해석 369
14.3 텍스트 번역 371
14.4 QnA Maker로 FAQ 챗봇 구성하기 379
요약 384
CHAPTER 15 음성 서비스 추가하기 385
15.1 액티비티에 음성 추가하기 385
15.2 SayAsync로 음성 추가하기 388
15.3 PromptDialog에 음성 추가하기 391
15.4 입력 힌트 지정 395
15.5 코타나 설정 397
요약 401
찾아보기 402
책속에서
챗봇은 그래픽 사용자 인터페이스(Graphic User Interface, GUI)보다는 대화형 사용자 인터페이스를 사용한다. GUI는 화면에 표시되고 마우스나 터치 동작을 위한 그래픽 요소와 그림이 있는 프로그램이다. CUI는 사용자가 메시징 앱에 입력하는 텍스트다. 오늘날 대부분의 챗봇은 주로 텍스트를 사용하지만, 챗봇은 사용자와 상호작용하기 위해 음성을 사용할 수도 있다. 앞으로 배우겠지만, 챗봇은 일부 GUI 요소를 가질 수 있지만, 여전히 챗봇의 주된 특징은 대화를 쉽게 하기 위해 텍스트를 사용하는 것이다.
Activity 클래스는 다양한 유형의 액티비티를 모두 표현하는 멤버들을 포함하고 있다. Activity 멤버 중 일부는 챗봇에 전송되는 Activity 유형의 컨텍스트에서만 사용된다. 예를 들어 Activity Type이 Message라면 Text 속성에 사용자 입력을 포함할 것으로 예상할 수 있지만, Typing의 Activity Type은 어떤 속성도 사용하지 않는데 Type이 Activity의 의미에 해당하기 때문이다.
여러분에게 필요할 맞춤 변경 사항 중 하나는 정적 열거형에 의존하는 대신 동적 메뉴를 구성하는 것이다. 이 장에서는 하나의 필드에 대한 메뉴를 동적으로 구성하기 위해 양식 구성 절차를 수정하는 법을 배울 것이다. 또한, 그 필드에 맞춤 변경한 검증 방식을 추가하는 법도 배우게 될 것이다. 마지막으로 더 나은 사용자 경험을 제공하기 위한 유용한 기법으로 미리 채워진 필드를 제공하는 것을 다루겠다.