본문 바로가기

도서 소개

마이크로소프트 봇 프레임워크 프로그래밍: 챗봇 구축을 향한 다층적 접근

이 책은 현재 절판입니다. 그간 읽어주신 분들께 감사드립니다.

 

마이크로소프트 봇 프레임워크로 만드는 대화형 인터페이스, 챗봇의 모든 것!

마이크로소프트 봇 프레임워크를 통해 살아있는 챗봇을 만든다!

 

출판사 제이펍

원출판사 Microsoft Press

원서명 Programming the Microsoft Bot Framework(원서 ISBN: 9781509304981)

저자명 조 마요

역자명 김정인

출판일 2018년 8월 30일

페이지 436쪽

시리즈 I♥A.I. 10(아이러브 인공지능 10)

판 형 46배판변형(188*245*20)

제 본 무선(soft cover)

정 가 28,000원

ISBN 979-11-88621-28-6(93000)

키워드 봇 프레임워크 / 챗봇 / 루이스(LUIS) / GUI / FormFlow / 애저

분야 프로그래밍 / 인공지능

 

관련 사이트

MS의 봇 프레임워크 공식 페이지

 

관련 포스트

2018/08/22 - [출간전 책소식] - 잘 만든 챗봇 하나, 열 직원 안 부럽다!

 

 

관련 시리즈

I♥A.I 시리즈

 

관련 도서

봇 설계는 이렇게 한다

 

관련 파일 다운로드

예제 코드

 

 

강의보조 자료

교재로 채택하신 분들은 메일을 보내주시면 아래의 자료를 보내드리겠습니다: jeipubmarketer@gmail.com

■ 본문의 그림과 표

 

샘플 PDF(차례, 옮긴이 머리말, 추천사, 이 책에 대하여, 베타리더 후기, 1장 '봇 프레임워크 아키텍처', 4장 '챗팅 세부 조정하기' 일부, 5장 '다이얼로그 만들기' 일부)

마이크로소프트봇프레임워크프로그래밍_sample.pdf
다운로드

 

정오표 페이지

■ (등록되는 대로 링크를 걸어드리겠습니다.)

 

도서구매 사이트(가나다순)

[강컴] [교보문고] [도서11번가] [반디앤루니스] [알라딘] [예스이십사] [인터파크]

도서 소개

마이크로소프트 봇 프레임워크로 만드는 대화형 인터페이스, 챗봇의 모든 것!

마이크로소프트 봇 프레임워크를 통해 살아있는 챗봇을 만든다!

 

이 책에서는 마이크로소프트 MVP인 조 마요가 마이크로소프트 봇 프레임워크로 챗봇을 구축하는 법을 안내한다. 저자는 인공지능과 자연어 처리를 활용해서 새로운 또는 기존 응용 프로그램을 놀라울 정도로 직관적으로 만드는 방법을 보여준다. 봇 프레임워크가 무엇이고 무엇을 할 수 있는지를 적당한 수준으로 이해하기 쉽게 설명한다. 또한, 핵심 개발 작업인 다이얼로그 구축 및 관리, 프레임워크 API와의 상호작용, 자연어 처리 통합, 슬랙, 스카이프, 페이스북 메신저와 같은 핵심 플랫폼에 봇을 배포하는 방법을 알려준다. 마지막으로, 실용적인 예제 코드와 알기 쉬운 설명을 추가해서 지능형 봇의 ‘마법’을 통해 현실적인 제품으로 변환하는 방법을 제시한다. 따라서, 봇이나 대화 사용자 인터페이스(CUI)의 사전 지식 없는 초보자라도 따라 하면서 학습할 수 있다.

 

■ 봇 프레임워크 구성요소, 통합, 통신 이해하기

■ 여러 세션에서 봇과 사람 사이의 복잡한 다이얼로그 흐름 관리하기

■ 미리 준비된 템플릿으로 봇 프로젝트 설정 구성하기

■ 액티비티 형식, 콘텐츠, 속성을 포함하여 대화의 핵심 요소 마스터하기

■ 에뮬레이터를 사용한 대화 테스트와 챗봇 디버깅하기

■ 폼플로우(FormFlow)로 대화 진행 지정하기

■ LUIS(Language Understanding Intelligent Service)로 유연한 지능형 봇 구성하기

■ 슬랙과 스카이프 같은 외부 메시징 서비스와 통합하기

■ 정교한 비선형 대화 구성하기

■ 마이크로소프트 애저에 봇 등록하고 게시하기

■ 이메일, SMS, 웹 챗봇 생성하기

■ 마이크로소프트 봇 프레임워크 API를 활용하는 고급 기법 마스터하기

■ 마이크로소프트 인식 서비스 API로 봇 확장하기

 

추천사

"이 책은 기본적인 내용부터 자연어 처리를 위해서 꼭 필요한 NLP(Natural Language Processing) 기술인 LUIS와 기본으로 지원하지 않는 채널을 연결하기 위해서 사용되는 다이렉트라인(DirectLine)에 이르기까지 필요한 요소들을 두루 포함하고 있어서 챗봇 개발자들에게 단비와 같은 책이 될 것이다. 제4차 산업혁명이라는 단어가 시장에 흘러넘치고 있지만, 이런 실체 없는 단어에 생명을 불어 넣고 시장을 만들어가는 진정한 개발자들에게 이 책을 강력히 추천한다."

Microsoft Commercial Software Engineering Team

Senior Software Engineer 김영욱

 

지은이 소개

조 마요(Joe Mayo)

여러 해 동안 마이크로소프트 MVP로 활동했으며, 마이크로소프트 기술을 전문으로 하는 저자이자 소프트웨어 컨설턴트다. 7종의 책을 집필했고, 여러 잡지에 수많은 기사를 기고했으며, 다양한 온/오프라인 교육도 진행했다. 그의 경험은 데스크톱, 클라우드, 디바이스 등 광범위한 기술에 걸쳐 있다. 또한, LINQ-to-Twitter 오픈 소스 프로젝트를 생성했고, 2000년부터는 C#과 .NET으로 작업해 왔다. 트위터에서 @JoeMayo로 검색하면 #BotFramework와 #AI에 대한 그의 의견을 확인할 수 있다.

 

옮긴이 소개

김정인

약 20년을 IT 분야에 종사했다. 회사를 나오기 전 최근 7년 동안 BI/BA 영역에 몸담았다. 관심 있는 분야는 데이터 과학이며, 늘 이 책으로 처음 공부하는 사람처럼 번역에 임하고자 노력한다. 옮긴 책으로는 《러닝 스칼라》, 《파이썬 데이터 사이언스 핸드북》, 《애자일 데이터 과학 2.0》, 《구글 애널리틱스 완벽 가이드》가 있다.

 

차례

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