1. 程式人生 > >Java呼叫百度AI開放平臺API

Java呼叫百度AI開放平臺API

百度AI開放平臺

百度AI開放平臺是全球領先的人工智慧服務平臺,面向開發者及企業開放120多項全球領先的AI能力和軟硬一體元件,並提供 EasyDL定製化訓練平臺對話系統開發平臺UNIT自定義模板OCR等AI定製化平臺,為上下游合作伙伴搭建了展示與交易平臺-AI市場。百度AI開放平臺全力幫助各行業快速、高效地實現AI升級。

本次案例主要測試將百度AI開放平臺Java SDK整合到自己的工程專案中,並就對其中感興趣的模組做測試

在控制檯建立應用

下載Baidu-AIP/java-sdk

為了方便學習,可通過下載原始碼的方式進行引入,也可通過maven依賴的方式引入

<dependency>
    <groupId>com.baidu.aip</groupId>
    <artifactId>java-sdk</artifactId>
    <version>4.8.0</version>
</dependency>

配置好本地git初始化環境,執行命令,$ git clone https://github.com/Baidu-AIP/java-sdk.git,完成sdk包的下載

在IDEA中匯入專案

編寫測試案例

在client包下編寫Sample類,作為測試客戶端。

AipNlp是自然語言處理的Java客戶端,為使用自然語言處理的開發人員提供了一系列的互動方法。

使用者可以參考如下程式碼新建一個AipNlp,初始化完成後建議單例使用,避免重複獲取access_token

單例獲取客戶端

package com.jyycode.baidu_aip.client;

import com.baidu.aip.nlp.AipNlp;

/** 獲取單例客戶端
 * @author Jiayuan
 * @version 1.0
 * @description:
 * @time 11/16/2018 3:44 PM
 */
public class GetClient {

    private static AipNlp client = null;

    private GetClient(){};

    public static AipNlp getClient(String APP_ID,String API_KEY,String SECRET_KEY ){
        if(client == null){
            client = new AipNlp(APP_ID,API_KEY,SECRET_KEY);
            return client;
        }
        return client;
    }

}

(中文分詞)主程式:

package com.baidu.aip.client;

import com.baidu.aip.nlp.AipNlp;
import org.json.JSONObject;

/** 百度AI開放平臺客戶端測試
 * @author Jiayuan
 * @version 1.0
 * @description:
 * @time 11/16/2018 3:05 PM
 */
public class Sample {

    public static final String APP_ID = "INPUT_YOUR_APP_ID_HERE";
    public static final String API_KEY = "INPUT_YOUR_API_KEY_HERE";
    public static final String SECRET_KEY = "INPUT_YOUR_SECRET_KEY_HERE";


    public static void main(String[] args) {
        //初始化一個AipNlp
        AipNlp client = GetClient.getClient(APP_ID,API_KEY,SECRET_KEY);
        //可選,設定網路引數
        client.setConnectionTimeoutInMillis(2000);
        client.setSocketTimeoutInMillis(60000);

        //可選:設定網路連線引數
        //client.setHttpProxy("proxy_host",proxy_port);
        //client.setSocketProxy("proxy_host",proxy_port);

        //可選:設定log4j日誌輸出格式,若不設定,則使用預設配置
        //System.setProperties("aip.log.conf","path/to/your/log4j.proprties");

        //呼叫介面
        String text = "百度是一家高科技公司";
        JSONObject res = client.lexer(text,null);
        System.out.println(res.toString());
    }
}

得到返回結果:

{
	"log_id": 4810127541569104400,
	"text": "百度是一家高科技公司",
	"items": [{
		"formal": "",
		"loc_details": [],
		"item": "百度",
		"pos": "",
		"ne": "ORG",
		"basic_words": ["百度"],
		"byte_length": 4,
		"byte_offset": 0,
		"uri": ""
	}, {
		"formal": "",
		"loc_details": [],
		"item": "是",
		"pos": "v",
		"ne": "",
		"basic_words": ["是"],
		"byte_length": 2,
		"byte_offset": 4,
		"uri": ""
	}, {
		"formal": "",
		"loc_details": [],
		"item": "一家",
		"pos": "m",
		"ne": "",
		"basic_words": ["一", "家"],
		"byte_length": 4,
		"byte_offset": 6,
		"uri": ""
	}, {
		"formal": "",
		"loc_details": [],
		"item": "高科技",
		"pos": "n",
		"ne": "",
		"basic_words": ["高", "科技"],
		"byte_length": 6,
		"byte_offset": 10,
		"uri": ""
	}, {
		"formal": "",
		"loc_details": [],
		"item": "公司",
		"pos": "n",
		"ne": "",
		"basic_words": ["公司"],
		"byte_length": 4,
		"byte_offset": 16,
		"uri": ""
	}]
}

未完待續~