姜强强+++罗元孟
摘 要:采用.NET平台的Web开发技术,借助Bot Framework构建前端聊天机器人以及LUIS技术构建机器人的语义识别能力,以Microsoft Azure作为云服务平台。使对话成为一个平台,改变用户传统的交互方式。
关键词:Bot Framework;LUIS;Web;Azure云服務
引言
随着互联网的不断发展,人们对于交互方式的需求也在不断更新——从上世纪80年代的PC到90年代的Pad,再到21世纪的手机。根据微软公司的大胆猜测,下一代的交互方式将让用户的每一次对话成为一个平台(Conversation as a Platform),基于此微软推出了Bot Framework,帮助开发者快速创建特定业务的聊天机器人。由此,我们可以将聊天机器人与传统的网站结合来改变用户借助网站获取信息的方式。
1 软件开发平台
服务端应用程序基于.NET平台下的开发框架;数据库及Web程序部署基于Microsoft Azure服务平台。
2 系统设计与架构
2.1 设计思路
采用.NET平台的Web开发技术,借助Bot Framework构建前端聊天机器人以及LUIS技术构建机器人的语义识别能力,形成一个融合Web站点以及聊天机器人的校园社团服务。
2.2 架构解析
2.2.1 数据处理
利用Entity Framework完成数据库中表与实体类的映射并构建底层核心数据操作业务,采用三层架构封装整体项目的逻辑业务。所使用的数据库管理系统为Microsoft SQL Server 2012。
2.2.2 Web核心
采用ASP.NET MVC模式建立网站,使得前端开发与后台分离;采用ASP.NET Web API技术完成Bot聊天机器人的数据交互。
2.2.3 Bot Chat
此模块为聊天功能模块,利用Bot Framework创建[1],并且加入LUIS语义识别服务(Language Understand Intelligent Service),完成用户与机器人使用自然语言聊天的功能。
2.2.4 LUIS技术
进入LUIS官方网站,通过配置的方式创建出自己的LUIS应用[2],在应用中填写需要识别的语句和关键字,生成应用后的AppId和Key写入项目中的Bot程序中形成关联,这样在用户每次的对话中,通过LUIS服务识别出用户的意图,Bot程序根据意图反馈信息。
3 技术分析
3.1 用户信息存储
每次对话中的社团名称是语句的关键词,这样才能根据社团名称获取到社团的所有信息。在Bot Framework中每一个用户将会对应唯一一个用户数据(BotData)[3],用户第一次访问时,为此用户的BotData添加UserId属性,UserId根据自定义的用户列表(Dictory
3.2 自动推送
Bot程序在每次回复时会监测是否当前用户访问同一社团次数超过5次,若超过则自动推送社团服务网站链接,用户可通过链接进入网站查看社团的详尽信息。
3.3 Web API数据传输
在Web核心部分创建Web API程序用于返回Bot程序的相关请求,借助第三方开源包Newtonsoft将查到的结果集数据封装成Json格式。在Bot端程序只需创建Http请求API服务便可完成用户请求。
4 功能模块及展示
4.1 功能模块
Bot聊天机器人:用户在Web Chat页面进行人机对话,使用自然语言交流获取社团的相关信息。
普通用户:首先在网站首页选择需要访问的社团,然后查看次社团的动态、成果、公告、社团风采等版块。
超级管理员:拥有创建和删除社团信息的权限,但不能针对某一社团进行具体管理。同时具有训练LUIS应用的功能,由于用户表达方式多样,当LUIS服务无法识别用户意图时将无此语句通过请求保存至数据库,超级管理员可进入LUIS应用根据用户的语句进行训练,然后将训练好的LUIS应用重新发布,保持聊天机器人的学习性。
社团管理员:每个社团对应唯一一个社团管理员,管理员可以发布、更新、删除社团的各个版块信息。
4.2 项目展示
5 结束语
人工智能将是未来互联网技术发展的一个重要方向,越来越多的产品将会与人工智能关联。基于目前已经完成的上述功能,接下来可开发的功能还有:对接微信平台,用户可以通过微信随时随地获取相关的信息,给用户提供更加方便的选择。
参考文献
[1]Microsoft.Bot Framework[EB/OL].(2016)[2016-3-30].
[2]Microsoft.Cognitive Service[EB/OL].(2016)[2016-03-30].
[3]Microsoft.Bot Framework[EB/OL].(2016)[2016-3-30].
作者简介:姜强强(1993-),男,汉族,江苏徐州市人,学生,江苏科技大学本科,研究方向:.Net平台开发。
罗元孟(1996-),男,汉族,江苏宿迁人,学生,江苏科技大学本科,研究方向:Web前端开发。