文档章节

智能聊天机器人之图灵机器人

abcijkxyz
 abcijkxyz
发布于 2016/07/30 17:23
字数 787
阅读 88
收藏 2
点赞 0
评论 0

今天从慕课网学习了图灵机器人的实现,感觉很有意思。视频地址:点击打开链接,因为视频是一年多以前的,现在图灵官网的api接口已经变了,所以视频仅作参考,本文是基于最新api讲解的。

无聊的时候可以找它陪你聊天,想想也挺有趣的,下面就看看具体的实现吧。

聊天功能的实现其实是借用了图灵机器人的第三方jar包,如果仅仅是实现聊天,几行代码就可以搞定了,所以重点其实是布局的实现。

要完成这个聊天机器人,大致需要这么几步:

1、需要到图灵机器人官网注册一个账号,这样在个人中心就可以看到你的API key和secret了,这两个信息代码里面会用到;

2、在个人中心可以设置机器人的一些信息,比如:年龄,爱好,地址等等。。。;

3、下载文档说明和SDK;

以上是准备工作,下面终于开始正式编码啦~

4、建立新的Android工程,并把下载的jar包导入工程(下载的jar包里面有android-support-v4.jar,而我使用的jdk本身包含有这个,所以不要导入这个,不然编译报错)

5、对图灵SDK进行初始化,如下:

SDKInitBuilder builder = new SDKInitBuilder(this)
                .setSecret(TURING_SECRET).setTuringKey(TURING_APIKEY).setUniqueId(UNIQUEID);
SDKInit.init(builder, new InitListener() {
	@Override
	public void onFail(String error) {
		Log.i(TAG, "onFail() called with: " + "error = [" + error + "]");
	}

	@Override
	public void onComplete() {
		// 获取userid成功后,才可以请求Turing服务器,需要请求必须在此回调成功,才可正确请求
		mTuringApiManager = new TuringApiManager(MainActivity.this);
		mTuringApiManager.setHttpListener(myHttpConnectionListener);
	}
});

HttpConnectionListener myHttpConnectionListener = new HttpConnectionListener() {
	@Override
	public void onError(ErrorMessage errorMessage) {
		Log.i(TAG, "onError() errorMessage = " + errorMessage.getMessage() + " code = " + errorMessage.getCode());
		Toast.makeText(MainActivity.this, "请检查网络是否正常", Toast.LENGTH_SHORT).show();
	}

	@Override
	public void onSuccess(RequestResult requestResult) {
		if (requestResult != null) {
			Log.i(TAG, "onSuccess: " + requestResult.getContent().toString());
			try {
				JSONObject jsonObj = new JSONObject(requestResult.getContent().toString());
				if (jsonObj.has("text")){
					String result = jsonObj.get("text").toString(); //接收到的消息
					...
				}
			} catch (JSONException e) {
				e.printStackTrace();
			}
		}
	}
};

6、发送消息到服务器,接收消息的地方见上面代码,至此就完成了发送和接收消息的过程,有木有感觉很简单呢?

mTuringApiManager.requestTuringAPI(new String(sendMsg)); //发送消息

7、关键是需要注意下布局的实现,聊天展示使用的是ListView,根据消息是“接收过来的”还是“发送出去的”来动态加载不同的布局,因此需要准备两套布局,具体实现可以下载代码参考,这里就不详细展开了。

有几点需要说明下:

1、图灵机器人还提供了语音相关的接口,所以可以在此基础上完成语音聊天功能;

2、我的MainActivity是继承的AppCompatActivity,设置requestWindowFeature(Window.FEATURE_NO_TITLE);没有生效,解决办法有两个:一、继承Activity二、加上语句:getSupportActionBar().hide();

3、发送消息的布局视频中原本使用的是LinearLayout,这是有问题的,如果发送的消息太长,会挡住自己的头像,所以我改成了RelativeLayout,Linearlayout试了好几次均没有成功;

代码下载地址:点我下载吧

本文转载自:http://blog.csdn.net/wdong_love_cl/article/details/51440327

共有 人打赏支持
abcijkxyz
粉丝 60
博文 6195
码字总数 1876
作品 0
深圳
项目经理
使用图灵机器人快速开发智能聊天机器人

聊天机器人现在已经成为一个流行的话题,无论微信公共帐号,还是qq聊天机器人,可以智能交互聊天的机器人帐号越来越多,相信很多开发人员也想自己实现这样一个好玩的智能聊天机器人。 下面就...

maolv11 ⋅ 2014/06/17 ⋅ 0

图灵机器人人工智能服务再次升级

  图灵机器人在国家会议中心召开主题为“机器人应用创新”的发布会,在此次发布会上,图灵机器人发布了多个针对于机器人的新应用。另外,还有金山英语、贝瓦儿歌、墨迹天气等多家内容公司发...

yanyan1234562018 ⋅ 03/29 ⋅ 0

人机交互智能问答机器人的实现

人机交互智能问答机器人,这句话所包含的信息量和技术过于庞大,这里为大家进行拆分解释,并以图灵机器人平台为例,通俗的介绍其技术实现原理。 第一,人机交互。在计算机专业术语中,是指系...

maolv11 ⋅ 2014/08/12 ⋅ 0

520 | 机器人竟然对我表白了?!用Python假装自己有女朋友(附代码)

     授权转载自大数据分析和人工智能   作者:小马哥 爱数圈联合创始人   520这一天,也是网络情人节。就在今天,python聊天机器人竟然对我表白了,并且还自动地和微信里面的所有人...

大数据文摘 ⋅ 05/20 ⋅ 0

图灵机器人聊天接口api

图灵机器人平台,基于自然语言处理、知识库和云计算等技术,为广大开发者、合作伙伴提供的一系列智能语义处理能力(包括语义理解、智能问答、知识库对接等)的服务平台。截止到目前为止,平台...

maolv11 ⋅ 2014/08/11 ⋅ 0

图灵机器人联合创始人郭家确认出席2017中国人工智能机器人CEO峰会

  2017年12月26日,由中国人工智能机器人产业联盟(CAIA)主办的2017中国人工智能机器人CEO峰会暨2017年度·中国服务机器人品牌评选颁奖典礼将在深圳马哥孛罗好日子酒店8楼悉尼厅隆重举办。...

人工智能机器人联盟 ⋅ 2017/12/22 ⋅ 0

图灵机器人接口分享

今天从慕课网学习了图灵机器人的实现,感觉很有意思。 无聊的时候可以找它陪你聊天,想想也挺有趣的,下面就看看具体的实现吧。 聊天功能的实现其实是借用了图灵机器人的第三方jar包,如果仅...

turing321 ⋅ 2016/07/10 ⋅ 4

微信小程序开发—项目实战之聊天机器人

项目功能介绍 人工智能虚拟机器人“微软小冰”大家玩过吧,很酷的一个应用。发送文字、语音和图片都能得到智能的回复。 那现在我们就用小程序做一个模拟的应用,智能聊天机器人。发送文字它可...

anda0109 ⋅ 2016/11/30 ⋅ 0

QQ 聊天机器人 Web 服务--XiaoV

XiaoV(小薇)是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动: 监听多个 QQ 群消息,发现有“感兴趣”的内容时通过图灵|百度|茉莉机器人进行智能回复 监听到的 QQ 群消息可以...

88250 ⋅ 2016/05/30 ⋅ 1

10年前,2500就是全部的创业基金;10年后,他可以主动选择投资人

     俞志晨   人工智能机器人联盟 | caia617   记者 | 马兰   编辑 | 美仪   这是人工智能机器人联盟报道的第88篇《封面人物》文章   导语:“我在人工智能领域12年了”,俞志...

人工智能机器人联盟 ⋅ 01/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

vue-cli是什么?

vue-cli是什么? vue-cli 是vue.js的脚手架,用于自动生成vue.js+webpack的项目模板,分为vue init webpack-simple 项目名 和vue init webpack 项目名 两种。 当然首先你的安装vue,webpack...

韦姣敏 ⋅ 33分钟前 ⋅ 0

12c rman中输入sql命令

12c之前版本,要在rman中执行sql语句,必须使用sql "alter system switch logfile"; 而在12c版本中,可以支持大量的sql语句了: 比如: C:\Users\zhengquan>rman target / 恢复管理器: Release 1...

tututu_jiang ⋅ 39分钟前 ⋅ 0

java 线程池

概述 减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务 可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为因为消耗过多的内存,而把服务器累趴下(...

轨迹_ ⋅ 44分钟前 ⋅ 0

Nginx的https配置记录以及http强制跳转到https的方法梳理

Nginx的https配置记录以及http强制跳转到https的方法梳理 一、Nginx安装(略) 安装的时候需要注意加上 --with-httpsslmodule,因为httpsslmodule不属于Nginx的基本模块。 Nginx安装方法: ...

Yomut ⋅ 56分钟前 ⋅ 0

SpringCloud Feign 传递复杂参数对象需要注意的地方

1.传递复杂参数对象需要用Post,另外需要注意,Feign不支持使用GetMapping 和PostMapping @RequestMapping(value="user/save",method=RequestMethod.POST) 2.在传递的过程中,复杂对象使用...

@林文龙 ⋅ 58分钟前 ⋅ 0

如何显示 word 左侧目录大纲

打开word说明文档,如下图,我们发现左侧根本就没有目录,给我们带来很大的阅读障碍 2 在word文档的头部菜单栏中,切换到”视图“选项卡 3 然后勾选“导航窗格”选项 4 我们会惊奇的发现左侧...

二营长意大利炮 ⋅ 今天 ⋅ 0

智能合约编程语言Solidity之线上开发工具

工具地址:https://ethereum.github.io/browser-solidity/ 实例实验: 1.创建hello.sol文件 2.调试输出结果

硅谷课堂 ⋅ 今天 ⋅ 0

ffmpeg 视频格式转换

转 Mp4 格式 #> ffmpeg -i input.avi -c:v libx264 output.mp4#> ffmpeg -i input.avi -c:v libx264 -strict -2 output.mp4#> ffmpeg -i input.avi -c:v libx264 -strict -2 -s 1......

Contac ⋅ 今天 ⋅ 0

VCS仿真生成vpd文件(verilog)

VCS仿真生成vpd文件(verilog): https://www.cnblogs.com/OneFri/p/5987673.html SYNOPSYS VCS常用命令使用详解 https://blog.csdn.net/hemmingway/article/details/49382551 DVE是synopsys公......

whoisliang ⋅ 今天 ⋅ 0

Spring Boot启动配置原理

几个重要的事件回调机制 配置在META-INF/spring.factories ApplicationContextInitializer SpringApplicationRunListener 只需要放在ioc容器中 ApplicationRunner CommandLineRunner 启动流程......

小致dad ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部