java实现自动回复聊天机器人

网友投稿 366 2023-01-22


java实现自动回复聊天机器人

本文实例为大家分享了java实现自动回复聊天机器人的具体代码,供大家参考,具体内容如下

聊天机器人

调用网上现有的接口,然后解析数据

以上是演示图片

源码下载地址

基本工作流程就是,调用API,解析返回的数据

HttpUtil类,调用API,获取返回的数据

package com;

import com.sun.org.apache.bcel.internal.generic.INSTANCEOF;

import java.io.BufferedReader;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

/**

* Created by zf on 2017/2/27.

*/

public class HttpUtil {

private static final String API = "xxxxxxxxxxxxxxxxx";

private static String MSG;

private static HttpUtil INSTANCE;

public static HttpUtil getInstance() {

if (INSTANCE =DTNgnv= null) {

INSTANCE = new HttpUtil();

}

return INSTANCE;

}

private HttpUtil() {

}

public String sendRequest2API(String msg) {

if DTNgnv(msg.length() > 0) {

this.MSG = msg;

HttpURLConnection connection = null;

StringBuilder response = new StringBuilder();

try {

URL url = new URL(API + MSG);

connection = (HttpURLConnection) url.openConnection();

connection.setRequestMethod("GET");

connection.setConnectTimeout(8000);

connection.setReadTimeout(8000);

InputStream in = connection.getInputStream();

BufferedReader reader = new BufferedReader(new InputStreamReader(in));

String line;

while ((line = reader.readLine()) != null) {

response.append(line);

}

} catch (Exception e) {

e.printStackTrace();

} finally {

if (connection != null) {

connection.disconnect();

}

return response.toString();

}

}

return null;

}

}

UI类,界面

package com;

import com.google.gson.Gson;

import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.Date;

/**

* Created by zf on 2017/2/27.

*/

public class MainUI {

private JFrame jFrame;

private JPanel jPanel;

private JButton sendMsgBtn;

private JTextArea msgTextArea;

private JTextArea historyTextArea;

private static String MSG;

private static StringBuilder history = new StringBuilder();

public MainUI() {

jFrame = new JFrame("自动聊天");

jPanel = new JPanel();

sendMsgBtn = new JButton("发送");

msgTextArea = new JTextArea("这里发生消息");

historyTextArea = new JTextArea(20,20);

historyTextArea.setBackground(new Color(255, 255, 255));

jPanel.add(historyTextArea);

jPanel.add(msgTextArea);

jPanel.add(sendMsgBtn);

jFrame.add(jPanel);

jFrame.setSize(500, 500);

jFrame.setLocationRelativeTo(null);

jFrame.setVisible(true);

sendMsgBtn.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

MSG = msgTextArea.getText();

history.append("我:" + "\n" + MSG + "\n");

Gson gson = new Gson();

RobotAnswer robotAnswer = gson.fromjson(HttpUtil.getInstance().sendRequest2API(MSG), RobotAnswer.class);

history.append(robotAnswer.getAnswer());

historyTextArea.setText(history.toString());

System.out.println(history);

}

});

}

public static void main(String[] args) {

new MainUI();

}

}

机器人回复类

package com;

import java.util.Date;

/**

* Created by zf on 2017/2/27.

*/

public class RobotAnswer {

private int result;

private String content;

private String answer;

public RobotAnswer() {

}

public String getAnswer() {

if (result == 0) {

answer = "AI:" + "\n" + content;

} else {

answer = ".....";

}

return answer;

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:解决Spring session(redis存储方式)监听导致创建大量redisMessageListenerContailner
下一篇:api接口管理工具在哪(api接口管理工具Java)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~