文档章节

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

abcijkxyz
 abcijkxyz
发布于 2016/07/30 17:23
字数 787
阅读 91
收藏 2

今天从慕课网学习了图灵机器人的实现,感觉很有意思。视频地址:点击打开链接,因为视频是一年多以前的,现在图灵官网的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
粉丝 64
博文 6196
码字总数 1876
作品 0
深圳
项目经理
使用图灵机器人快速开发智能聊天机器人

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

maolv11
06/28
0
0
图灵机器人人工智能服务再次升级

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

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

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

大数据文摘
05/20
0
0
图灵机器人联合创始人郭家确认出席2017中国人工智能机器人CEO峰会

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

人工智能机器人联盟
2017/12/22
0
0
图灵机器人接口分享

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

turing321
2016/07/10
7K
4

没有更多内容

加载失败,请刷新页面

加载更多

python做文本内容指定区域字符串替换

需求: 因为公司项目需要做SEO优化,所以对项目中的各种长连接做优化,比如本文中提到的精简路径;之前已经批量吧文本的路径名字等做过修改,这里不再赘述;这里的问题是外部的路径修改了,文...

坦途abc
24分钟前
3
0
MySQL 关键字模糊匹配,并按照匹配度排序

MySQL 关键字模糊匹配,并按照匹配度排序。 方式一、按照关键字搜索,然后根据关键字所占比例排序 SELECTdrug_name,pinyinFROMtbl_drugWHEREpinyin LIKE '%AM%'ORDER BY...

yh32
34分钟前
2
0
虚拟机学习之一:java内存区域与内存溢出异常

1.运行时数据区域 java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途和创建、销毁时间,有的区域伴随虚拟机进程的启动而存在,有些区...

贾峰uk
34分钟前
0
0
Spring加载properties文件的两种方式

在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可,不需要修...

架构师springboot
50分钟前
1
0
分布式事务,原来可以这么玩?

多个数据要同时操作,如何保证数据的完整性,以及一致性? 答 : 事务 ,是常见的做法。 举个栗子: 用户下了一个订单,需要修改 余额表 , 订单 表 , 流水 表 ,于是会有类似的伪代码: st...

微笑向暖wx
53分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部