第1章 聊天机器人概述 1
1.1 对机器人的期望 2
1.2 什么是聊天机器人 3
1.3 为什么是现在 6
1.3.1 人工智能取得的进步 6
1.3.2 作为智能对话平台的消息应用程序 7
1.3.3 语音唤醒的智能助理 8
1.4 创建聊天机器人的动机 8
1.5 机器人的组成 10
1.5.1 机器人运行库 10
1.5.2 自然语言理解引擎 11
1.5.3 对话引擎 12
1.5.4 通道集成 14
1.6 结束语 15
第2章 聊天机器人与自然语言理解 17
2.1 自然语言处理的基本概念 18
2.2 常见的自然语言处理任务 23
2.2.1 句法分析 23
2.2.2 语义分析 23
2.2.3 语篇分析 23
2.3 机器人中常见的自然语言理解功能 24
2.4 云端自然语言理解系统 24
2.5 自然语言理解系统的商业产品 25
2.6 结束语 26
第3章 语言理解智能服务 27
3.1 意图分类 28
3.2 发布LUIS应用 34
3.3 实体抽取 37
3.3.1 Age、Dimension、Money和Temperature 40
3.3.2 DatetimeV2 41
3.3.3 Email、Phone Number和URL 46
3.3.4 Number、Percentage和Ordinal 46
3.4 实体训练 47
3.5 自定义实体 50
3.5.1 简单实体 50
3.5.2 复合实体 56
3.5.3 层次实体 61
3.5.4 列表实体 64
3.5.5 正则表达式实体 65
3.6 预建域 65
3.7 短语列表 67
3.8 主动学习 69
3.9 仪表板概览 70
3.10 LUIS应用管理与版本更新 71
3.11 拼写检查 73
3.12 导入/导出LUIS应用 74
3.13 使用LUIS Authoring API 75
3.14 解决遇到的问题 75
3.15 结束语 76
第4章 对话设计 78
4.1 常见的使用场景 78
4.1.1 面向消费者的常见使用场景 78
4.1.2 面向企业的常见使用场景 82
4.2 对话表达 83
4.3 机器人的响应 85
4.3.1 构建块 85
4.3.2 机器人的身份验证和授权 87
4.3.3 专用卡片 88
4.4 其他功能 90
4.5 对话交互设计指南 91
4.5.1 专注 91
4.5.2 不要把机器人设想为人 91
4.5.3 不要赋予机器人性别 91
4.5.4 总是提供当前最好的建议 92
4.5.5 持久的个性 92
4.5.6 使用丰富的内容 93
4.5.7 原谅 93
4.5.8 避免卡壳 93
4.5.9 不要过于主动发送消息 93
4.5.10 提供人工介入方法 93
4.5.11 从用户对话中学习 94
4.6 结束语 95
第5章 微软Bot框架概述 96
5.1 微软Bot Builder SDK基础 96
5.2 Bot框架端到端的设置 107
5.2.1 第一步:连接到Azure 107
5.2.2 第二步:在Azure中创建Bot Registration 109
5.2.3 第三步:为机器人设置安全认证 111
5.2.4 第四步:设置远程访问 112
5.2.5 第五步:连接到Facebook Messenger 113
5.2.6 第六步:将机器人部署到Azure 117
5.3 理解所做的操作 121
5.3.1 Microsoft Azure 121
5.3.2 机器人通道注册入口 121
5.3.3 认证 122
5.3.4 连接和ngrok 122
5.3.5 部署到Facebook Messenger 123
5.3.6 部署到Azure 123
5.4 Bot Builder SDK重要概念 123
5.4.1 会话和消息 124
5.4.2 瀑布和提示 127
5.4.3 对话框 130
5.4.4 调用对话框 133
5.4.5 识别器 135
5.5 创建一个简单的日历机器人 138
5.6 结束语 139
第6章 深入Bot Builder SDK 140
6.1 对话状态 140
6.2 消息 141
6.3 地址和主动消息 144
6.4 富媒体内容 146
6.5 按钮 149
6.6 卡片 152
6.7 建议动作 156
6.8 通道错误 158
6.9 通道数据 158
6.10 群组聊天 162
6.11 自定义对话框 163
6.12 动作 168
6.13 库 173
6.14 结束语 174
第7章 构建一个完整的Bot 176
7.1 关于OAuth 2.0 176
7.2 Google API的建立 177
7.3 将身份验证与Bot Builder集成 182
7.4 无缝登录流程 187
7.5 与Google Calendar API集成 195
7.6 实现Bot功能 201
7.7 结束语 205
第8章 扩展通道功能 207
8.1 Slack深度集成 207
8.2 连接Slack 210
8.3 Slack API实验 215
8.4 简单的互动消息 220
8.5 多步骤体验 227
8.6 结束语 236
第9章 创建新的通道连接器 237
9.1 Direct Line API 237
9.2 自定义Web聊天界面 239
9.3 语音机器人 250
9.4 将机器人与Twilio整合在一起 252
9.5 与SSML集成 262
9.6 最后的接触 265
9.7 结束语 268
第10章 使聊天机器人更聪明 269
10.1 拼写检查 271
10.2 情感 276
10.3 多语言支持 277
10.4 QnA Maker 282
10.5 计算机视觉 286
10.6 结束语 290
第11章 自适应卡片和自定义图形 291
11.1 自适应卡片 291
11.2 渲染自定义图形 302
11.3 结束语 319
第12章 人工切换 320
12.1 仍离不开人 320
12.2 从客服角度看聊天机器人 321
12.2.1 一直在线的聊天机器人 321
12.2.2 非全时在线的聊天机器人 321
12.2.3 面向客服代表的聊天机器人 321
12.3 典型的客户服务系统概念 322
12.4 集成方法 322
12.4.1 自己创建界面 323
12.4.2 基于平台 323
12.4.3 基于产品 324
12.5 Facebook Messenger切换示例 326
12.6 结束语 332
第13章 聊天机器人分析 333
13.1 常见数据问题 333
13.1.1 通用数据 334
13.1.2 人口统计资料 335
13.1.3 情感 335
13.1.4 用户驻留 335
13.1.5 用户会话流 336
13.2 分析平台 337
13.3 与Dashbot和Chatbase集成 340
13.4 结束语 346
第14章 学以致用:Alexa技能工具包 348
14.1 概述 348
14.2 创建一个新的技能 350
14.3 Alexa NLU和自动语音识别 352
14.4 深入研究针对Node.js的Alexa技能工具包 358
14.5 其他选择 367
14.6 连接到Bot框架 369
14.6.1 关于Bot框架和Alexa技能工具包集成的实现决策 369
14.6.2 示例整合 371
14.7 结束语 378