JAVA开发人工智能机器人

一. 首先来看一下智能机器人跟人聊天的界面吧 !

java人工智能编程 java 人工智能_java


             浅谈一下界面构造的思路:

                     1.首先是页面的布局,采用html标签构建

<body>
     <!--head start-->
     <h1>JAVA 开发人工智能机器人</h1>
     <!--end head-->

     <!--content start-->
     <div id="box">
     <div class="box-head">
         <img class="h-img" src="images/logo.png" width="80" height="60">
         <span class="h-span">七秒钟的回忆</span>
     </div>
     <div class="box-body">
         <div class="rotWord">
             <span></span>
             <p>helo 好久不见!</p>
         </div>
     </div>
     <div class="box-footer">
         <input type="text" id="input" autocomplete="off">        <!--autocomplete 取消输入框自动提示-->
        <div id="btn" οnclick="action()">发送</div>
     </div>
     </div>
     <!--end content--><!--js start-->
     <script type="text/javascript" src="js/jquery-3.1.0.js"></script>
     <script type="text/javascript">
         var text=$("#input");
         function action(){             //判断输入文本框是否有值
            if(text.val()==""||text.val==""){
               //智能优化 
                text.focus();
                 return ;
             }
             $(".box-body").append("<div class='myWord'><span></span><p>"+text.val()+"</p></div>");
             $(".box-body").scrollTop(1000000000000);
             $.ajax({
                 type:"post",
                 url:"robot",
                 data:{"text":text.val()},
                 success:function(data){
                     var result = $.parseJSON(data).text;
                     $(".box-body").append("<div class='rotWord'><span></span><p>"+result+"</p></div>");
                     $(".box-body").scrollTop(1000000000000);                      //语言标签 autoplay自动播放
                    var obj = $('<audio src="http://fanyi.baidu.com/gettts?lan=zh&text='+result+'&spd=5&sorce=web" autoplay></audio>');
                     $(".box-body").append(obj);
                 }
             });
             text.val("");
             text.focus();
             
         }         //键盘回车事件
        $(document).keydown(function(event){
             if(event.keyCode==13){
                 action();
             }
         });
     </script>
     <!--end js--></body>

             2.构建页面的css样式

<style type="text/css">
     *{margin:0;padding:0;}
     body,html{width:100%;height:100%;}
     body{background:url(images/bg.jpg) no-repeat;}
     h1{height:80px;background:rgba(0,0,0,.3);text-align:center;color:#fff;line-height:80px;font-weight:100;}
     #box{width:800px;height:600px;background:rgba(255,255,255,.5);margin:50px auto;}
     #box .box-head{height:60px;background:#00ffac;}
     .box-head .h-img{margin:0 20px;float:left;}
     .box-head .h-span{color:#fff;line-height:60px;font-size:24px;float:left;}
     #box .box-body{width:760px;height:420px;padding:20px;overflow:auto;}   /*overflow:auto;div内文本超出后设置滚动条*/

     /*手动设置滚动条样式*/
     .box-body::-webkit-scrollbar{width:4px;}
     .box-body::-moz-scrollbar{width:4px;}
     .box-body::-webkit-scrollbar-track{background:#808080;border-radius:2em;}
     .box-body::-webkit-scrollbar-thumb{background-color:#03a9f4;border-radius:2em;}
     .box-body::-moz-scroll-track{background:#808080;border-radius:2em;}
     .box-body::-moz-scroll-thumb{background-color:#03a9f4;border-radius:2em;}/*自定义滚动条的样式*/
     /*机器人的css*/
     .box-body .rotWord span{width:40px;height:40px;background:url(images/rot.png);float:left;}
     .box-body .rotWord p{float:left;padding:10px;background:#00ffae;margin-left:10px;border-radius:8px;word-break:break-all;max-width:220px;}/*word-break:break-all;max-width:220px; 文本p自动换行*/
     .rotWord{overflow:hidden;}/*清楚浮动*/
     /*myself的css*/
     .box-body .myWord span{width:40px;height:40px;background:url(images/my.png);float:right;}
     .box-body .myWord p{float:right;padding:10px;background:#00ff00;margin-right:10px;border-radius:8px;word-break:break-all;max-width:220px;}/*word-break:break-all;max-width:220px; 文本p自动换行*/
     .myWord{overflow:hidden;}/*清楚浮动*/
     
     #box .box-footer{width:760px;height:60px;padding:0 20px;}
     .box-footer #input{width:620px;height:60px;background:rgba(0,0,0,.1);border-radius:8px;text-indent:10px;color:#fff;float:left;font-size:18px;padding-left:20px;outline:none;overflow:hidden;border:none;}
     .box-footer #btn{width:100px;height:60px;background:blue;border-radius:8px;user-select:none;text-align:center;text-align:center;line-height:60px;float:right;font-size:18px;cursor:pointer;}
   </style>

此上就是页面的代码咯!

接下来就是比较厉害的后台jsp代码

package com.xt.robot.action;

 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import java.net.URL;
 import java.net.URLConnection;

 import javax.servlet.ServletException;
 import javax.servlet.annotation.WebServlet;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 /**
  * 
 * <p>Title:Action </p>
 * <p>Description:聊天信息处理类 </p>
 * <p>Company: </p> 
 * @author 小桃小涛
 * @date 2017年8月19日下午7:24:56
  */
 @WebServlet("/robot")
 public class Action extends HttpServlet{    //extends 继承HttpServlet类 重写doGet()和doPost()方法
    //key 机器人用的是图灵机器人的api
     public static final String APIKEY="";
     //url
     public static final String URL="http://www.tuling123.com/openapi/api?key=";
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         // TODO Auto-generated method stub
         doPost(req, resp);//在doGet()方法里调用doPost()方法
     }

     @Override
     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         //设置请求以及响应编码
         req.setCharacterEncoding("UTF-8");
         resp.setCharacterEncoding("UTF-8");       //获取文本框输入的值
        String text = req.getParameter("text");
         String result = getResult(text);
         resp.getWriter().println(result);
     }
     public static String getResult(String text){
         String INFO = "";        //用来存数据
        StringBuilder sb = new StringBuilder();

         try {            //解码器
            INFO = URLEncoder.encode(text, "UTF-8");
             String getUrl = URL+APIKEY+"&info="+INFO;//字符串拼接成url地址
             URL queryUrl = new URL(getUrl);
             URLConnection conn = queryUrl.openConnection();
             BufferedReader br =new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
             String temp="";
             while ((temp=br.readLine())!=null) {
                 sb.append(temp);
             }
         } catch (UnsupportedEncodingException e) {
             e.printStackTrace();
         }  catch (IOException e) {
             e.printStackTrace();
         }
         return sb.toString();
     }
 }

以上就是智能机器人的全部代码咯!