今天从慕课网学习了图灵机器人的实现,感觉很有意思。视频地址:点击打开链接,因为视频是一年多以前的,现在图灵官网的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() {@Overridepublic void onFail(String error) {Log.i(TAG, "onFail() called with: " + "error = [" + error + "]");}@Overridepublic void onComplete() {// 获取userid成功后,才可以请求Turing服务器,需要请求必须在此回调成功,才可正确请求mTuringApiManager = new TuringApiManager(MainActivity.this);mTuringApiManager.setHttpListener(myHttpConnectionListener);}
});HttpConnectionListener myHttpConnectionListener = new HttpConnectionListener() {@Overridepublic void onError(ErrorMessage errorMessage) {Log.i(TAG, "onError() errorMessage = " + errorMessage.getMessage() + " code = " + errorMessage.getCode());Toast.makeText(MainActivity.this, "请检查网络是否正常", Toast.LENGTH_SHORT).show();}@Overridepublic 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试了好几次均没有成功;

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

智能聊天机器人之图灵机器人相关推荐

  1. 【图灵机器人】图灵机器人API V2版使用采坑指南

    做一个小东西的时候需要用python和这个接口,使用的时候遇到了一些坑,于是记录一下.本文只记录接入API时候的一些简单坑,更多使用技巧没有说到. 介绍 图灵机器人是以语义技术为核心驱动力的人工智能公 ...

  2. python 图灵机器人_图灵机器人 python 试玩

    看一个小伙伴分享的图灵机器人Python玩法,觉得挺好的 linux上,可以尝试更简单的方法.比如说使用curl命令 curl "http://www.tuling123.com/opena ...

  3. 专属个人的聊天机器人的实现——图灵机器人

    先体验一下:图灵机器人智能聊天体验:http://www.tuling123.com/openapi/cloud/proexp.jsp 1.简单介绍 本篇为大家介绍使用图灵机器人api实现聊天机器人的 ...

  4. 图灵机器人调用数据恢复_python:用itchat打造属于自己的微信聊天机器人,24小时运行...

    前几天逛GitHub看见python上的一个开源项目itchat,可以用来丰富个人微信号或者微信公众号,于是乎点进去看了看, 这是成功的示意图: 下面来具体介绍一下. 一.对itchat的调用 (源码 ...

  5. Android智能聊天机器人的实现

    一 .概述 本博客主要介绍了使用android studio接入图灵机器人,实现智能聊天机器人的功能. 二.注册图灵机器人 进入图灵机器人官网,创建自己的图灵机器人 图灵机器人官网 点击机器人,进入机 ...

  6. 树莓派百度语音识别+图灵机器人对话聊天机器人

    硬件 树莓派3B.USB声卡.麦克.USB音响 软件 python.百度语音识别API.图灵机器人.espeak 树莓派官方系统自带python环境.注册百度语音识别开发者账号,获取api key. ...

  7. PHP CURL 图灵机器人

    智能回复机器人,常用于客服.微信自动回复...本次我们主要讲解PHP CURL的用法 --@Author 云天河Blog 本次CURL的使用 是围绕软件工程8大步骤来的 1问题定义 2可行性研究 3需 ...

  8. 图灵机器人:到基层去,做人工智能的开放平台

    你有多久没和小冰聊天了? 这个由微软在今年端午节时所推出的"16岁萌妹子"曾在刚开始受到了相当多的关注,无论是迅速入驻各微信聊天群,还是后来在新浪微博等平台的复活,这个背着&quo ...

  9. python调用图灵机器人实现微信公众号的自动回复功能

    ​ 刚刚创建这个公众号的时候,我的一个同事就找我的公众号聊天,但是那个时候我的公众号还是仅支持根据关键词,如果要做到支持智能回复,那基本上就是不可能.然后我结合我之前做的微信自动回复机器人的经历,我首 ...

最新文章

  1. 活动排序工具之双代号网络(AOA)与单代号网络(AON)[cont.]
  2. php编写一个学生类_PHP实现简单的学生信息管理系统(web版)
  3. 年度编程语言最佳候选人:Kotlin vs. C
  4. 特性开关框架 java_关于Mosfet你应当知道的开关特性
  5. 深度学习核心技术精讲100篇(四十九)-深度学习之关联规则
  6. 06-图2 Saving James Bond - Easy Version
  7. SiamBAN论文学习
  8. 论文浅尝 | 一种基于递归超图的知识图谱问答方法
  9. python tensorflow 文本提取_如何在tensorflow中保存文本分类模型?
  10. JS将/Date(1446704778000)/转换成string
  11. 小米6android版本更新,钉子户小米6的新生,换电池、背盖,升级android11
  12. linux客户端掉线重连,SSH自动断开后重连的解决方案
  13. 旁边一位员工天天跟别人聊天,主管都不敢管,那你当什么主管
  14. Java人脸识别登录案例(基于百度人脸识别AI)
  15. 类ResourceBundle详解
  16. 光纤通道FC存储交换机的常见问题详解
  17. 2020最新WordPress网站优化教程
  18. Xilinx ZYNQ Ultrascale+ 性能测试之 PL/PS PCIe Root Port NVMe
  19. 2208988800一个奇怪的数字
  20. 只是为了好玩:linux之父林纳斯自传.pdf,读后感:《只是为了好玩:Linux之父林纳斯自传》...

热门文章

  1. Java 抛出异常【throw】
  2. 最全面的shiro知识点学习
  3. (30)C#使用NUNIT单元测试
  4. 爬虫图片mysql_爬取微博图片数据存到Mysql中遇到的各种坑\爬取微博图片\Mysql存储图片\微博爬虫...
  5. BAT面试经验分享(机器学习算法岗)
  6. Virtio 基本概念和设备操作
  7. python:matplotlib基础(1)
  8. 计算机网络之五层体系结构
  9. 英语人名的含义(转)
  10. 如何在Windows 10上退出安全模式