专属个人的聊天机器人的实现——图灵机器人
先体验一下:图灵机器人智能聊天体验:http://www.tuling123.com/openapi/cloud/proexp.jsp
调用图灵机器人api实现聊天机器人的方法,该api本身已经拥有了智能聊天的功能,但我们可以自定义知识库的方式简单实现专属个人的聊天机器人。
图灵官网给出的java 代码示例
/** 调用图灵机器人平台接口
*/
public static void main(String[] args) throws IOException {
String APIKEY = "开发者注册帐号,激活之后即可获得";
String INFO = URLEncoder.encode("北京今日天气", "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);
}
下面就以java开发为例,编写一个简单的网页聊天机器人,主要的开发过程如下:
1、编写一个简单的jsp页面(用于和自己的项目后台交互,提交请求内容、接收显示处理结果)
<body>
<textarea rows="5" cols="" placeholder="请输入内容" name="info" id="info"></textarea>
<br>
<input type="button" click="doSubmit()" value="提交">
<br>
<label id="res"></label>
</body>
2、事件
<script type="text/javascript">
function doSubmit(){
var info = $('#info').val()
var url='自己项目的后台接口(如servlet)';
$.get(url, {
info : info,
key : 注册图灵机器人帐号获取key
}, function(json) {
if(json != null){
alert(json);
document.getElementById("res").innerText = json;
}else{
document.getElementById("res").innerText = '无返回值';
}
});
}
</script>
3、项目后台接收页面请求内容,调用图灵api接口,返回处理结果(核心逻辑代码)
/** 调用图灵机器人平台接口
* 需要导入的包:commons-logging-1.0.4.jar、 httpclient-4.3.1.jar、httpcore-4.3.jar
*/
public void getTulingApi() {
String INFO = URLEncoder.encode("北京今日天气", "utf-8");
String requesturl = "http://www.tuling123.com/openapi/api?key=注册激活获取的keykey&info="+INFO;
HttpGet request = new HttpGet(requesturl);
HttpResponse response = HttpClients.createDefault().execute(request);
//200即正确的返回码
if(response.getStatusLine().getStatusCode()==200){
String result = EntityUtils.toString(response.getEntity());
System.out.println("返回结果:"+result);
}
}