清华智能聊天机器人“小图”的移动应用*
姚飞, 张成昱, 陈武
清华大学图书馆 北京 100084
通讯作者: 姚飞 E-mail:yaofei@lib.tsinghua.edu.cn

作者贡献声明:

姚飞,张成昱:提出研究思路,设计研究方案;

姚飞:程序开发实现,数据组织,流程管理,论文起草;

陈武:系统部署、迁移和维护;

姚飞,张成昱:最终版本修订。

摘要

【目的】通过设计和开发清华大学图书馆智能聊天机器人“小图”APP和微信服务,扩展清华“小图”的服务领域。【应用背景】 随着智能手机和移动互联网的发展和流行,移动APP和微信成为移动终端上的主要应用入口。【方法】分别基于手机客户端和微信公众平台的开发模式,利用接口与“小图”服务器通信,传送指令和消息,将“小图”的基本功能嵌入到APP和微信应用中。【结果】用户在移动终端和社交网络环境中,能够方便地与清华“小图”交谈和查询信息。【结论】本应用扩展了清华特色服务“小图”的应用环境,提供无处不在的泛在服务。

关键词: 移动APP; 微信公众平台; 清华“小图”; 智能聊天机器人
中图分类号:G250.7
The Mobile Application of ‘Xiaotu’ —— The Smart Talking Robot of Tsinghua University Library
Yao Fei, Zhang Chengyu, Chen Wu
Tsinghua University Library, Beijing 100084, China
Abstract

[Objective] Extend the service fields of ‘Xiaotu’—— the smart talking robot of Tsinghua University Library by designing and developing the mobile APP and WeChat public platform service. [Context] With the development and popularity of the smart phones and mobile Internet, the mobile APP and WeChat have become main portals on mobile terminals. [Methods] Services in this paper make use of various interfaces to communicate with the main server of ‘Xiaotu’ as well as transfer commands and messsages based on the development mode of the mobile terminal and the WeChat public platform, embedding the basic functions of ‘Xiaotu’ into the mobile APP and WeChat. [Results] Users can conveniently talk with ‘Xiaotu’ and search information in the mobile terminal and social network environments. [Conclusions] This application expands the application environment of ‘Xiaotu’ —— a special service of Tsinghua University Library, providing a ubiquitous service everywhere.

Keyword: Mobile APP; WeChat public platform; Tsinghua ‘Xiaotu’; Samrt talking robot
1 引 言

智能聊天机器人“小图”[ 1]是清华大学图书馆的一个特色服务,自2010年底试运行以来,受到很大关注,在图书馆业界和其他领域引起广泛讨论,其话题见诸于各类传统、平面、网络媒体[ 2],其他图书馆迅速跟进,推出类似服务[ 3]

“小图”尝试将人工智能引入图书馆咨询服务系统,实现过程利用了目前广泛使用的多项计算机技术,并在此基础上对现有图书馆的资源、可信第三方资源、优质网络资源加以组织、整理、整合和利用,形成了一种全新服务。从一开始,“小图”就摒弃了从头开发的想法,而是利用成熟的开源软件,将工作重点放在中文自然语言处理等重点关注的内容上,。另外,网络流行语和俏皮语的清洗和利用以及“小图”卡通形象的征集和推广,一改常规图书馆严肃刻板的惯有形象,为清华大学图书馆注入了一股活力。无论是设计思想、技术实现、内容组织、形象推广等方面,“小图”都有可取之处,被业界同行称为开创了一种有前途的在线参考咨询服务新模式[ 4]

2 需求及技术思路
2.1 背景需求

一方面,随着智能手机的发展与普及,移动APP越来越深入人心,已经成为移动互联网的主流技术之一。移动APP,顾名思义,就是移动应用程序,是针对手机这种连接到互联网或无线网卡业务而开发的应用程序服务[ 5]。随着移动终端正向功能增强化、多模化、定制化、平台开放化的方向发展,移动APP作为社交网络站点新的开拓渠道,得到迅速推进,3G的普及和4G时代的到来进一步推动了APP的发展。

另一方面,微信时代强势来袭。微信(WeChat)是腾讯公司推出的即时通讯服务免费聊天软件。用户可以通过手机、平板电脑、网页快速发送语音、视频、图片和文字[ 6]。微信提供公众平台、朋友圈、消息推送等功能,用户可以通过摇一摇、搜索号码、附近的人、扫二维码方式添加好友和关注公众平台,同时微信可以将内容分享给好友以及将用户看到的精彩内容分享到微信朋友圈。2013年1月15日,腾讯微信宣布已达到3亿用户,自2011年1月21日发布第一个微信版本,耗时不到两年,其发展速度让人惊叹。2012年8月,腾讯公司在微信的基础上新增功能模块——微信公众平台。政府、媒体、企业等众多机构纷纷开设微信公众号,以微信为渠道进行服务推广,图书馆也不例外[ 7, 8]

在智能终端日渐普及、移动互联网和移动社交网络兴起的当下,图书馆服务与移动终端和移动社交网络的结合,将有益于将图书馆服务嵌入到读者熟悉的环境,提供无处不在的泛在服务。

清华大学的学生大部分拥有智能手机、平板电脑等智能终端其中一个,而且大部分学生对于移动APP和微信是持欢迎态度的。在“小图”的PC版本获得业界和读者认可的前提下,清华大学图书馆继续推进“小图”的深入开发,扩展“小图”的服务渠道,通过APP和微信这两种主流方式提供“小图”的移动服务。一方面,“小图”的移动应用弥补了PC版本不足,实现了语音输入和朗读,且技术鲁棒;另一方面,其在交互式设计方面具有自己的特色。

2.2 技术思路

无论是“小图”APP还是“小图”微信,都需要再现PC版“小图”的基本功能,保持与PC版“小图”的风格一致。

“小图”是基于开源软件A.L.I.C.E.[ 9]构建的智能聊天机器人,采用AIML[ 10]作为它的知识描述语言,具有强大的可扩展性和丰富的推理语法,基于模式匹配方法,加入启发式会话规则,具有学习、推理、判断、记忆以及上下文获取等功能。在此基础上,PC版“小图”解决了中文自然语言处理、建立索引、相似度匹配、敏感词过滤、与INNOPAC整合、百度搜索引擎、教学训练系统等技术难点,且通过自己的工作流程完成语料库的收集、组织、管理、发布。小图的界面采用流行的QQ对话风格,如图1所示,关于“小图”的进一步内容请参见文献[2]和文献[4]。

图1 “小图”的页面

“小图”以A.L.I.C.E为框架,通过Java语言编写,部署在一台Linux服务器上。由于PC版“小图”已经解决逻辑上的技术难点,基于PC版“小图”提供的数据传输接口来实现移动应用的开发,是结合现有工作、避免重复劳动的有效方式。

基本思路:用户使用移动应用输入内容或者进行操作后,移动应用发送请求到服务器,服务器处理后得出结果,返回到移动终端上进行显示,如图2所示:

图2 “小图”移动应用与服务器的交互

3 具体实现
3.1 服务器接口配置

根据需求,在服务器端封装数据传输接口,通过该接口与移动应用交互,其形式为:

http://tutu.lib.tsinghua.edu.cn:8081/programd/ByPass?input=参数

其中,input为用户输入,返回值为“小图”后台输出的回答。

3.2 处理流程

在移动应用开发中,将“小图”的主要功能归纳为三个方面:智能聊天、搜索服务和智能教学。智能聊天是用户输入问题,“小图”根据其语料库进行回答。搜索服务指查找清华大学图书馆馆藏等信息。智能教学则是用户教授“小图”知识点,使“小图”变得更智能。其处理流程概括如图3所示。

图3 “小图”移动应用的处理流程

根据操作不同,“小图”选择调用不同的用户操作处理类:QueryActivity、ChatActivity和TeachActivity。处理之后,相关类会使用相应适配器设置待显示数据,然后在界面上显示。ChatActivity、TeachActivity、QueryActivity处理类需要与服务器通信以获得“小图”服务器端的应答。通信流程如图4所示:

图4 “小图”移动应用的通信流程

3.3 “小图”APP

通过调研发现,清华大学的学生使用的手机以iOS和Android操作系统为主,笔者针对这两个主流平台进行移动开发。在具体实施过程中,考虑智能手机的特点和用户的使用手段,以符合移动APP的方式进行设计。下面以Android版本为例,介绍“小图”APP的基本特征。

(1) 聊天主窗口

图5 “小图”APP主界面

主界面如图5所示,聊天主窗口参考了主流聊天工具,如微信、手机QQ的通信页面。在输入框中输入聊天的内容,点击发送按钮即可进行聊天。也可以通过输入框输入特殊的命令,如“baike”用来查询百度百科,“book”用来查询图书馆的书籍,“teach”用来进行智能教学等。通过右上角“帮助”按钮,可以查看经常使用的热门问题和帮助信息。

(2) 功能菜单

提供滑动式功能菜单,如图6所示。点击主界面左上角菜单按钮或使用手指向右滑动即可显示菜单,关闭功能菜单也只需要使用手指向左滑动或再次点击菜单按钮完成。这些设计考虑了用户的使用习惯,并把“小图”的主要操作单独提取出来,方便用户使用。

图6 “小图”的功能菜单

菜单包括以下选项:

①聊天:即图5所示的主界面的智能聊天。

②查书:点击“查书”按钮即可查询馆藏目录。如图7所示,输入“平凡的世界”,可以查询清华大学图书馆OPAC中关于此书的信息,结果以简洁列表展示,并提供网页查询的链接,比PC版页面更美观。

图7 书目查询界面

③教学:教学操作既可以使用“teach”命令来实现,也可以使用菜单这种方便和直观的形式实现。

④聊天记录:用户可以查看自己和“小图”的聊天交互过程。

⑤设置:对功能和个人信息进行设置。用户可以设置头像,也可以设置是否开启语音朗读、清空聊天记录。另外还加入了关注新浪微博和介绍“小图”的功能。

3.4 “小图”微信

微信公众平台将PC端开发与移动客户端开发有效地结合起来。当微信请求来临,服务器自动将其转至后台处理并将结果封装返回给微信后台,由微信后台返回给用户。在更新应用时,只需要在后台进行更新,用户在操作上丝毫感受不到更新已经发生。微信公众平台也方便后台管理。微信公众平台可以查看用户交互信息,若发现用户传播不良信息,可以直接将用户删除。微信公众平台提供一个传播媒介,是将应用推向大众的一个迅捷方式。

“小图”微信使用PHP语言开发,调用微信公众平台接口,通过javaPhp-bridge进行桥接。处理机制如下:首先微信客户端将消息发往“小图”微信服务器,“小图”微信服务器是在申请公众平台开发的时候所填写的服务器,遵循微信公众平台协议,使用80端口,可称之为转发服务器;转发服务器确定输入是否是文本,若为文本则进行转发,否则直接返回空消息;若进行转发,则通过javaPhp-bridge与“小图”后台服务器进行交互,消息接口URL对接收到的内容进行XML解析,获取消息。处理后的消息被发送给微信服务器端,微信服务器端将其返回到微信客户端。各类不同的消息有着不同的封装接口,但都是XML方式。“小图”微信的处理流程如图8所示:

图8 “小图”微信的通信机制

PostActivity的Java类Action方法完成与“小图”后台服务器的通信,在微信服务器中,调用PostActivity实例的Action方法即可获得返回结果:

public String Action()
{
String baseUrl = "http://166.111.120.164:8081/programd/ByPass"; //后台服务器
HttpResponse httpResponse = null;
HttpEntity httpEntity = null;
List<BasicNameValuePair> list = new ArrayList
	<BasicNameValuePair>();
list.add(new BasicNameValuePair("input", value));  //后台服务器接收input=value的参数
……
try {
//使用HTTP客户端发送一个请求
httpResponse = httpClient.execute(httpPost);
httpEntity = httpResponse.getEntity();
inputStream = httpEntity.getContent();
BufferedReader br = new BufferedReader
	(new InputStreamReader(inputStream,"UTF-8"));
……
}

“小图”公众账号的界面如图9所示:

图9 “小图”微信

4 结果与分析
4.1 特 色

(1) 支持“语音”输入和朗读

移动“小图”APP最大的特色是支持自动语音识别。自动语音识别技术(Auto Speech Recognize,ASR)需要解决的问题是让设备能够“听懂”人类的语音,将语音中包含的文字信息“提取”出来。“小图”的语音识别技术借助于科大讯飞的框架[ 11]。科大讯飞是在电信、金融、能源、交通、政府等主流行业的份额达到80%以上[ 12]的中文语音识别系统,其语音识别框架具有识别准确(语音识别率超过95%)、通信速度快、性能稳定的特点,支持普通话、粤语等语音输入,其核心技术同时减少“小图”朗读功能的复杂度,更加便捷和高效。它虽不是开源的,但是免费的,使用时需要在其网站上登记。具体实现效果为:点击主界面输入框左边的话筒按钮,即可以说出聊天内容,手机会自动识别并发送说话的内容给“小图”。若开启朗读功能,“小图”则将返回的内容以语音方式朗读出来。可以说,在移动终端,“小图”能够通过语音与用户“交谈”,实现了真正意义的“聊天”,弥补了PC版功能的不足。

(2) 操作便捷、用户友好、细节精致

“小图”移动应用考虑移动终端用户使用习惯,在设计时尽可能采用用户友好的方式,在细节方面也尽量做到精益求精。例如,将相应功能以功能菜单和按钮方式展现,更方便用户操作;在界面设计方面模仿微信,降低用户的上手难度。菜单的图标设计成统一的样式,保持“小图”风格一致。菜单项的操作流程也很人性化,简单便捷。

(3) 个性化和娱乐性

若希望获得用户认可,应用的个性化和娱乐性不可忽视。为此,在考虑“小图”功能需求之外,还特别加入个性和娱乐的因素。比如,用户可以设置自己的头像;“小图”配置富有情趣的动画和个性化说明;聊天内容中特别包含较为丰富的网络流行语和用户教学内容,增加应用的趣味性。这也是清华“小图”区别于传统图书馆服务的一大特色。

4.2 难 点

在移动应用开发过程中,难点主要集中在:

(1) 编码问题

通信过程中出现乱码。最初只考虑对信息进行UTF-8编码,未考虑其他信息,尝试多种工具和方法都不得解决。最终发现需要对请求的报头进行设置,主要是设置Java版本号和进行UTF-8编码。

String uriAPI = LittleLibrayConfig.HTTP_PORT ;
/*建立HTTP Post连线*/
HttpPost httpRequest = new HttpPost(uriAPI);
httpRequest.setHeader("User-Agent", "Apache-HttpClient/4.2.1 (java 1.5)");
……
params.add(new BasicNameValuePair("input", message));
//发出HTTP Request
httpRequest.setEntity(new UrlEncodedFormEntity (params, "UTF-8"));
//取得HTTP Response
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpResponse httpResponse = httpClient.execute(httpRequest);
……

(2) 交互设计

交互设计是移动应用需要考虑的重点问题之一,因为它直接关系着用户体验。界面形式、界面功能、界面使用流程和方式,都是交互设计的内容。为此需要对当前网页版本进行研究,思考如何将这些功能在移动终端上适当地展现。在“以用户为中心”理念下,实现过程中多次调整设计方案,试图以更合理的方式服务于用户,把更多的自然交互方式(例如表情交互、语音交互等)引入到设计中,最终确定的版本,形象生动地展现了“小图”的功能和特点。

(3) 技术鲁棒性

移动应用常常会遇到无响应和闪退等问题,用户体验差。因此,在开发过程中,着重考虑了此类问题。“小图”能够在意外发生的情况下采取正确的策略,比如在网络连接不通或通信超时的情况下进行提示,在用户可能的误操作时进行相应的处理等。这些系统鲁棒性需求的提出增加了开发难度,但无疑也促成更健壮系统的诞生。

5 结 论

图书馆利用移动APP和移动社交网络应用开展服务,可以无缝融入读者群,更加便捷地传播图书馆信息、提供图书馆特色服务,也方便读者在自己熟悉的环境中使用图书馆。无论是移动APP还是微信应用,都是移动终端上的主流服务入口形式。“小图”APP和“小图”微信使得“小图”在移动终端和移动社交网络环境中得到扩展,使其能在更多场景、更多介质上提供更全面立体的服务。

参考文献
[1] 清华智能聊天机器人[EB/OL]. [2014-04-24]. http: //tutu. lib. tsinghua. edu. cn: 8081/programd/.
( The Smart Chatting Robot of Tsinghua [EB/OL]. [2014-04-24]. http://tutu.lib.tsinghua.edu.cn:8081/programd/ [本文引用:1]
[2] 姚飞, 纪磊, 张成昱, . 实时虚拟参考咨询服务新尝试 ——清华大学图书馆智能聊天机器人[J]. 现代图书情报技术, 2011(4): 77-81.
(Yao Fei, Ji Lei, Zhang Chengyu, et al. New Attempt on Real-time Virtual Reference Service—The Smart Chat Robot of Tsinghua University Library[J]. New Technology of Library and Information Service, 2011 (4): 77-81. ) [本文引用:1] [CJCR: 1.073]
[3] 李文江, 陈诗琴. AIMLBot智能机器人在实时虚拟参考咨询中的应用[J]. 现代图书情报技术, 2012(7-8): 127-132.
(Li Wenjiang, Chen Shiqin. Application of AIMLBot Intelligent Robot in Real-time Virtual Reference Service[J]. New Technology of Library and Information Service, 2012(7-8): 127-132. ) [本文引用:1] [CJCR: 1.073]
[4] Yao F, Ji L, Zhang C Y, et al. Real-time Virtual Reference Service Based on Applicable Artificial Intelligence Technologies: The Debut of the Robot Xiaotu at Tsinghua University Library[J]. Chinese Journal of Library and Information Science, 2011(2): 12-26. [本文引用:1]
[5] 百度百科. 移动APP[EB/OL]. [2014-04-24]. http: //wapbaike. baidu. com/view/5770960. htm.
( Baidu Baike. Mobile Application [EB/OL]. [2014-04-24]. http://wapbaike.baidu.com/view/5770960.htm [本文引用:1]
[6] 百度百科. 微信[EB/OL]. [2014-04-24]. http: //baike. baidu. com/view/5117297. htm.
(Baidu Baike. WeChat [EB/OL]. [2014-04-24]. http://baike.baidu.com/view/5117297.htm [本文引用:1]
[7] 张蓓, 窦天芳, 张成昱, . 开发模式下图书馆微信公众平台服务的设计与实现[J]. 现代图书情报技术, 2014(1): 87-91.
(Zhang Bei, Dou Tianfang, Zhang Chengyu, et al. Design and Implementation of Library WeChat Public Platform Service in Development Mode[J]. New Technology of Library and Information Service, 2014(1): 87-91. ) [本文引用:1] [CJCR: 1.073]
[8] 孔云, 廖寅, 资芸, . 图书馆微信服务平台的设计与实现[J]. 图书馆论坛, 2014(2): 90-95.
(Kong Yun, Liao Yin, Zi Yun, et al. Design and Implementation of Weixin Service Platform for Library[J]. Library Tribune, 2014(2): 90-95. ) [本文引用:1] [CJCR: 2.213]
[9] Wallace R S. The Anatomy of A. L. I. C. E [A]. //Epstein R , Roberts G and Beber G . Parsing the Turing Test: Philosophical and Methodological Issues in the Quest for the Thinking Computer [M]. Springer Netherland s, 2009: 181-210. [本文引用:1]
[10] Wallace R S. AIML Overview[EB/OL]. [2014-03-24]. http://www.pandorabots.com/pandora/pics/wallaceaimltutorial.html. [本文引用:1]
[11] 语音云·开放平台[EB/OL]. [2014-03-24]. http: //open. voicecloud. cn/.
( Voicecloud·Open Platform [EB/OL]. [2014-03-24]. http://open.voicecloud.cn/ [本文引用:1]
[12] 科大迅飞[EB/OL]. [2014-04-27]. http://www.iflytek.com/. ( iFLYTEK[EB/OL]. [2014-04-27]. http://www.iflytek.com/ [本文引用:1]