java 对话 智能,如何用Java实现智能对话机器人

   日期:2024-12-26    作者:dikougj 移动:http://3jjewl.riyuangf.com/mobile/quote/34857.html

如何用Java实现智能对话机器人

java 对话 智能,如何用Java实现智能对话机器人

前言 这个时代人工智能如此火爆,身为圈内人我们应该多少对他有些了解,为了靠他近一些今天我们动手用Java实现一个智能聊天机器人,当然此处我们需要依赖图灵机器人的Api

这篇博客涵盖的知识点

HTML网页源代码抓取

JSON字符串解析

以下为需要用到的Jar

Jar

备注

JSONObject

用于解析JSON

首先我们要注册一个图灵机器人的帐号 并创建我们自己的机器人

这里可以根据个人需求填写

然后拿到我们刚刚创建的机器人的APIkey

从这里我们可以拿到我们的api请求地址,和我们的机器人的APIkey

图灵机器人现在维护的请求方式为POST 但是GET请求还能使用,这里我们使用GET请求接口。

接口的请求地址为 http://www.tuling123.com/openapi/api?key= [APPkey]&info=[你需要发送的消息]

准备完毕后 我们开始代码部分

第一步,编写的工具类

import org.json.JSONException;

import org.json.JSONObject;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.UnsupportedEncodingException;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import java.net.URLEncoder;

public class Util {

//存储APIkey

public static final String API_KEY = "填写你的APPKEY";

//存储接口请求地址

public static final String API_URL = "http://www.tuling123.com/openapi/api";

private String setParameter(String msg) {

//在接口请求中 中文要用URLEncoder encode成UTF-8

try {

return API_URL + "?key=" + API_KEY + "&info=" + URLEncoder.encode(msg, "utf-8");

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

return null;

}

private String getString(String json){

try {

JSONObject object = new JSONObject(json);

return object.getString("text");

} catch (JSONException e) {

e.printStackTrace();

}

return null;

}

public String getMessage(String msg){

return getString(getHTML(setParameter(msg)));

}

private String getHTML(String url) {

StringBuffer buffer = new StringBuffer();

BufferedReader bufferedReader = null;

try {

//创建URL对象

URL u = new URL(url);

//打开连接

HttpURLConnection connection = (HttpURLConnection) u.openConnection();

//从连接中拿到InputStream并由BufferedReader进行读取

bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream()));

String line = "";

//循环每次加入一行HTML内容 直到最后一行

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

buffer.append(line);

}

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}finally {

try {

//结束时候关闭释放资源

bufferedReader.close();

} catch (IOException e) {

e.printStackTrace();

}

}

return buffer.toString();

}

}1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94[/code]

第二步,编写测试类

package com.disware;

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

//声明并实例化我们刚刚封装好的工具类

Util util = new Util();

//接收用户输入

Scanner scanner = new Scanner(System.in);

while (scanner.hasNext()){

//直接输出机器人的回复

System.err.println("Ta 对你说 -> " + util.getMessage(scanner.nextLine()));

}

}

}1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22[/code]


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号