经过本书上一章内容的学习,已经学会了使用TensorFlow Lite实现物体检测识别的知识。在本章的内容中,将通过一个智能客服系统的实现过程,详细讲解使用TensorFlow Lite开发大型软件项目的过程,包括项目的架构分析、创建模型和具体实现知识,详细介绍开发大型TensorFlow Lite项目的流程。
16.1 系统介绍
本智能客服系统是基于智能回复模型实现的,能够基于用户输入的聊天消息生成回复建议。该建议是主要是依据上下文中的相关内容进行响应,帮助用户快速回复用户输入的文本消息。智能回复是上下文相关的一键式回复,可帮助用户高效、轻松地回复收到的短信(或电子邮件)。智能回复在包括Gmail、Inbox 和 Allo在内的多个 Google 产品中都非常成功 。
本项目的具体结构如图16-1所示。
图16-1 项目结构
16.2 准备模型
本项目使用的是TensorFlow官方提供的现成的模型,大家可以登录TensorFlow官方网站下载模型文件smartreply.tflite。
16.2.1 模型介绍
移动设备上的智能回复模型针对文本聊天应用场景,具有与基于云的同类产品完全不同的架构,专为内存限制设备(如手机和手表)而构建。本智能客服系统已成功用于在 Android Wear上向所有第一方和第三方应用程序提供智能回复。
本项目所使用的模型有如下所示的几个好处:
- 更快:模型驻留在设备上,不需要互联网连接。因此推理速度非常快,平均延迟只有几毫秒。
- 资源高效:该模型在设备上占用的内存很小。
- 隐私友好:用户数据永远不会离开设备,这消除了任何隐私限制。
16.2.2 下载模型文件
开发者可以在Tensorflow官网下载这个模型,下载地址如下:
https://tensorflow.google.cn/lite/examples/smart_reply/overview?hl=zh_cn
也可以在项目文件build.gradle中设置下载模型文件的URL地址,对应代码如下所示:
ext {
LITE_MODEL_URL = 'https://storage.googleapis.com/download.tensorflow.org/models/tflite/smartreply/smartreply.tflite'
LITE_MODEL_NAME = 'smartreply.tflite'
LITE_MODEL_DIRS = [
"$projectDir/src/main/assets",
"$projectDir/libs/cc/testdata",
]
AAR_URL = 'https://storage.googleapis.com/download.tensorflow.org/models/tflite/smartreply/smartreply_runtime_aar.aar'
AAR_PATH = "$projectDir/libs/smartreply_runtime_aar.aar"