Android聊天机器人

您所在的位置:网站首页 茉莉机器人搭建教程 Android聊天机器人

Android聊天机器人

2024-01-12 15:23| 来源: 网络整理| 查看: 265

一、项目介绍

​ 本项目使用android来开发一个智能聊天机器人,该智能聊天机器人主要是供用户娱乐,他可以供用户娱乐休闲,他可以与用户讲故事、说笑话、说笑话、跟用户聊天,非常有趣。

涉及到知识点:

网络编程【okhttp】 json数据解析 Handler处理

在实现智能机器人聊天功能,在实现这个功能的过程中申请了一个图灵机器人的key,根据该key并通过异步访问网络获取机器人回复的信息,接着调用Handler将获取的信息发送到主线程,并通过JSON解析将获取的聊天数据解析成字符串显示到界面上。

二、项目结果

在这里插入图片描述

三、项目开发 1、需求开发

聊天机器人的主要功能就是和用户进行智能对话,如此智能的效果,涉及对用户语义理解,以及海量信息的精准搜索,我们没有办法做到,选择调用的是第三方公司提供的开发API。

图灵机器人:http://www.tuling123.com/member/robot/index.jhtm

模型:

2、开发环境介绍 开发工具:JDK8 API版本:Android API27 3、功能实现【聊天功能】

从需求出发进行分析,显然要实现聊天功能,我们需要一个界面:

界面上需要显示机器人及用户的头像,还需要一个编辑框和发送按钮以及显示聊天信息的界面。聊天界面使用了ListView控件。

用户输入聊天信息,信息需要保存且显示在聊天信息中,同时向图灵机器人发送聊天信息,图灵机器人做出响应,得到响应的聊天信息,保存并显示在聊天信息中。

3.1、申请机器人身份标识

课本255

3.2、搭建聊天界面布局

课本256-257

3.3、搭建聊天条目布局

1.创建聊天界面Item

2.放置界面控件

3.修改styles.xml

3.4封装聊天信息实体类

由于机器人与用户聊天的每天信息都会有消息的状态,消息的内容等属性,因此需要创建一个CHatBean类来存放消息的这些属性。

3.5、编写聊天列表适配器

由于聊天界面用了ListView控件显示聊天信息,因此需要一个数据适配器ChatAdapter对ListView控件进行数据适配。

1、创建ChatAdapter类

2、创建ViewHolder类

3.6、实现智能机器人通信

聊天界面主要用于展示机器人与用户的头像和聊天内容,当第一次进入智能机器人聊天应用时,首先程序会从string.xml文件中获取机器人需要发出的欢迎信息并显示再界面上,用户接受到欢迎信息后,会与机器人进行一些互动,发送一些信息,程序会将这些信息封装到一个ChatBean对象中并显示到界面上,同时会根据用户发送的聊天内容来从图灵机器人服务器上获取机器人的回复信息,并将获取的机器人回复信息通过Json解析显示到界面上。

在项目的RobotActivity中实现聊天界面的逻辑代码,具体步骤如下:

1,添加okhttp库

2,设置机器人欢迎信息

注意问题:

由于需要访问网络,需要对Android Studio模拟器联网进行设置 1.开启root权限 2.更改dns

由于图灵机器人v2版本不能使用get方式,所以需要按照图灵机器人接口说明中所写的,使用post方法 官方文档:https://www.kancloud.cn/turing/www-tuling123-com/718227

请求信息格式:

{ "reqType":0, "perception": { "inputText": { "text": "讲个笑话" } }, "userInfo": { "apiKey": "4fce0bc257c04a9f88f0a55ee179794d", "userId": "fool" } }

响应信息格式:

{ "emotion": { "robotEmotion": { "a": 0, "d": 0, "emotionId": 0, "p": 0 }, "userEmotion": { "a": 0, "d": 0, "emotionId": 10300, "p": 0 } }, "intent": { "actionName": "", "code": 10004, "intentName": "" }, "results": [ { "groupType": 1, "resultType": "text", "values": { "text": "每次都是人家讲,欺负人家" } } ] }

解析json

为了解析JSON数据,Android SDK为开发者提供了org.json包,该包存放了解析JSON数据的类,其中最重要的两个类是JSONObject用于解析对象结构的JSON数据,JSONArray用于类解析对象结构的JSON对象

四、大致流程

在这里插入图片描述

五、代码 1、布局文件

activity_robot.xml



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3