91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java怎么制作專屬智能陪聊機器人

發布時間:2021-11-29 10:52:13 來源:億速云 閱讀:146 作者:iii 欄目:開發技術

本篇內容主要講解“java怎么制作專屬智能陪聊機器人”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“java怎么制作專屬智能陪聊機器人”吧!

1.智能陪聊機器人演示

人工智能一直是最近的熱點話題,自動人工智能但是以來應用領域就不斷的擴大,在未來人工智能也會在人們的生活中不斷普及與應用。這篇博文中的陪聊機器人,使用java進行編寫,可以根據你發的信息進行智能的回應,還算挺有意思的一個小玩意。最終效果的演示如下圖~

java怎么制作專屬智能陪聊機器人

2.智能問答平臺API介紹

這個陪聊機器人項目使用了青云課的智能API,通過調用API得到信息反饋。

具體的調用格式如下:

http://api.qingyunke.com/api.php?key=free&appid=0&msg=%s
其中的%s傳入我們需要發送給機器人的內容,就可以得到API調用結果的反饋。
  • key 固定參數 free

  • appid 設置成0,為智能識別

  • msg 為搜索關鍵詞

  • result 表示返回狀態,返回0表示正常

  • content api返回的信息內容

可以看到數據是以JSON的形式進行返回。

java怎么制作專屬智能陪聊機器人

java怎么制作專屬智能陪聊機器人

3.整合第三方JSON開源庫

Gson是Google提供的類庫,可以用來處理java對象與JSON數據之間的映射,將一個JSON字符串轉換成一個java對象,方便我們對API返回的JSON格式的數據進行處理,下面演示如何將Gson類庫導入到我們的工程中。

首先可以去官網下載對應的jar包,或者直接私信我獲取。獲取jar包之后找個全英文路徑進行保存。這里我們使用的編輯器是IDEA,所以使用IDEA進行演示,小伙伴們使用的是其他編輯器的話導入方法都是類似的哦。在IDEA打開如下界面,找到jar包導入即可。

java怎么制作專屬智能陪聊機器人

4.智能機器人項目框架搭建與模塊劃分

項目搭建:搭建的部分無太多要求,只需要使用IDEA創建一個新的普通java工程即可

項目模塊搭建:

  • model 類 用來存放請求所返回的對象

  • util 類用來存放工程所用到的工具類,比如說HTTP請求解析類

  • app 類用來當作機器人項目的入口

  • service 類用來實現業務的接口

相關的兩個實體類如下:

public class Request {

    private String key = "free";

    private String appid = "0";

    private String msg = "";


    public Request(){}


    public Request(String msg){
        this.msg = msg;
    }

    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    public String getAppid() {
        return appid;
    }

    public void setAppid(String appid) {
        this.appid = appid;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}

public class Response {


    private int code;

    private String content;

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
}

5.封裝一個機器人HTTP工具類

HTTP工具類主要用來對api進行請求,獲取返回的內容

public class HttpUtils {

    public static String request(String api){

        HttpURLConnection connection = null;
        int responseCode = 0;
        try{
            URL url = new URL(api);
            //獲取對應的連接對象
            connection = (HttpURLConnection) url.openConnection();
            responseCode = connection.getResponseCode();
        }catch (Exception e){
            e.printStackTrace();
        }

        if(200 <= responseCode && responseCode<=299){
            try(InputStream inputStream = connection.getInputStream();
                BufferedReader in =  new BufferedReader(new InputStreamReader(inputStream));
            ){
                StringBuilder response = new StringBuilder();
                String currentLine;
                while ((currentLine = in.readLine())!= null){
                    response.append(currentLine);
                }
                String result = response.toString();
                return result;
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        return null;

    }

}

6.實現機器人service層的接口與定義

實現機器人接口層

public interface RobotService {

    Response qa(String msg) ;

}

實現機器人接口實現類,這個類用來實現API的請求,將結果進行封裝成實體類返回

public class QkyRobotServiceImpl implements RobotService {

    private static final String apiTpl = "http://api.qingyunke.com/api.php?key=free&appid=0&msg=%s";
    private static  final Gson gson = new Gson();
    @Override
    public Response qa(String msg) {
        

        String api = null;
        try {
            api = String.format(apiTpl, URLEncoder.encode(msg,"UTF-8") );
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

        String result =  HttpUtils.request(api);

        //可以做邏輯判斷,比如null的時候,或者出錯

        Response response = gson.fromJson(result,Response.class);

        return response;
    }
}

7.制作專屬于你的機器人入口

編寫入口主類,調用封裝好的模塊進行機器人入口主類的編寫

public class Main {

    private static final RobotService robotService = new QkyRobotServiceImpl();


    public static void main(String[] args)throws Exception {

        Scanner scanner = new Scanner(System.in);
        System.out.println("尊敬的C站大佬,請給我取個響亮的名字!!");
        System.out.println("-------------------------------");
        String name = scanner.nextLine();
        System.out.println("大佬好,我是大數據小禪博客里的機器人,直接給我下達指令哦~");
        System.out.println("-------------------------------");
        while (true){

            String input = scanner.nextLine();
            if("88".equalsIgnoreCase(input)){
                System.out.println("歡迎下次使用,拜拜");
                break;
            }else {
              Response response = robotService.qa(input);
              if(response != null && response.getCode() == 0){
                  System.out.println("-------------------------------");
                  System.out.println(name+":"+ new String(response.getContent().getBytes(),"UTF-8"));
                  System.out.println("-------------------------------");
              }else {
                  System.out.println(name+": 大佬你剛剛這句話我沒聽懂,可否再陳述一次~");
              }
            }

        }
        scanner.close();


    }
}

8.把你的機器人打包使用

為了方便我們對項目的使用,這里我們使用IDEA將項目打包成jar包。通過下面的步驟,就可以將我們項目里的全部模塊與類庫打包,需要調用的時候只需要使用 java -jar jar名字 即可。

首先點開IDEA的Project Structure之后找到Artifacts選項

java怎么制作專屬智能陪聊機器人

點擊Bulid,將項目進行打包

java怎么制作專屬智能陪聊機器人

最后回產生一個out文件夾,這里面的jar包也就是我們打包后的最終結果。

java怎么制作專屬智能陪聊機器人

之后上傳到有java環境的終端就可以運行。

java怎么制作專屬智能陪聊機器人

到此,相信大家對“java怎么制作專屬智能陪聊機器人”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江川县| 揭西县| 东丰县| 山东| 绥阳县| 宁国市| 墨江| 孟州市| 义乌市| 富宁县| 温州市| 灵璧县| 北川| 高邮市| 江门市| 通州区| 常熟市| 上林县| 增城市| 三亚市| 格尔木市| 漠河县| 彭阳县| 拜城县| 金堂县| 黎川县| 嘉善县| 高碑店市| 广平县| 察隅县| 上犹县| 丰镇市| 大方县| 博客| 潢川县| 林西县| 谷城县| 库尔勒市| 嵊泗县| 榕江县| 商南县|