用Java跟图灵机器人对话,如查询天气
程序员文章站
2022-06-04 10:00:23
...
介绍
写过一篇使用Yahoo的天气API查询天气的博客《用Java查询雅虎天气并解析Json数据》,解析返回的Json文件。也可以使用图灵机器人的API,直接询问天气。
图灵机器人挺有意思,结合语音识别和合成,可以做成简单的对话机器人,可玩性很强,当然,树莓派支持了Java,移植后可以做成一个机器人~挖个坑,回头再写~
这里附上图灵机器人的简单应用示例,参考链接在后文。
注册后,获得自己的APIKEY就能玩起来了,有每天限制次数,目前完全够玩了,后续可以申请增加次数。
询问天气运行效果
返回:
{"code":100000,"text":"大连:5月24号 周三,14-25° 22° 晴 西南风4-5级;5月25号 周四,15-23° 晴 北风6-7级;5月26号 周五,16-25° 晴 北风4-5级;5月27号 周六,19-27° 晴 东南风4-5级;"}
后续再处理返回的结果吧~
代码
package com.sap.ward.XunfeiVoice;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class Tuling
{
private static String APIKEY = "*****";//官网注册后,换成你自己的
public static void main(String[] args) throws IOException
{
String question = "大连今天天气怎样";// 这是上传给云机器人的问题
String INFO = URLEncoder.encode(question, "utf-8");
String getURL = "http://www.tuling123.com/openapi/api?key=" + APIKEY
+ "&info=" + INFO;
URL getUrl = new URL(getURL);
HttpURLConnection connection = (HttpURLConnection) getUrl
.openConnection();
connection.connect();
// 取得输入流,并使用Reader读取
BufferedReader reader = new BufferedReader(
new InputStreamReader(connection.getInputStream(), "utf-8"));
StringBuffer sb = new StringBuffer();
String line = "";
while ((line = reader.readLine()) != null) {
sb.append(line);
}
reader.close();
// 断开连接
connection.disconnect();
System.out.println(sb);
}
}
参考链接
图灵机器人官网
http://www.tuling123.com/
推荐阅读