日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Java SDK使用說明

使用EAS提供的官方SDK進行服務調用,可以有效減少編寫調用邏輯的時間并提高調用穩定性。本文介紹官方Java SDK接口詳情。同時,以字符串輸入輸出、TensorFlow輸入輸出、QueueService客戶端和請求數據壓縮為例,提供了使用Java SDK進行服務調用的完整程序示例。

添加依賴項

使用Java編寫客戶端代碼時,在Maven工程中使用EAS Java SDK,必須在pom.xml文件<dependencies>中添加eas-sdk的依賴,示例如下,最新版本以Maven倉庫中顯示的為準。

<dependency>
  <groupId>com.aliyun.openservices.eas</groupId>
  <artifactId>eas-sdk</artifactId>
  <version>2.0.14</version>
</dependency>

EAS2.0.5及以上版本增加了QueueService客戶端功能,支持多優先級異步隊列服務。如果需要使用該功能,為避免依賴版本沖突,您還需自行添加如下兩個依賴,并修改這兩個依賴至合適版本:

<dependency>
    <groupId>org.java-websocket</groupId>
    <artifactId>Java-WebSocket</artifactId>
    <version>1.5.1</version>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.1</version>
</dependency>

接口列表

接口

描述

PredictClient

PredictClient(HttpConfig httpConfig)

  • 功能:PredictClient類構造器。

  • 參數:httpConfig表示HttpConfig類的實例對象。

void setToken(String token)

  • 功能:設置HTTP請求的Token參數。

  • 參數:token表示訪問服務時需要使用的鑒權Token。

void setModelName(String modelName)

  • 功能:設置請求的在線預測服務的模型名稱。

  • 參數:modelName表示所設置的模型名稱。

void setEndpoint(String endpoint)

  • 功能:設置請求服務的Host和Port,格式為"host:port"。

  • 參數:endpoint表示接收消息的終端地址。

void setDirectEndpoint(String endpoint)

  • 功能:設置VPC高速直連通道訪問服務的Endpoint,例如,pai-eas-vpc.cn-shanghai.aliyuncs.com。

  • 參數:endpoint表示設置的訪問服務地址。

void setRequestPath(String requestPath)

  • 功能:設置服務端代碼中定義的請求路徑。

  • 參數:requestPath表示服務端請求路徑,使用示例:client.setRequestPath("/custom_path")。

void setRetryCount(boolean int retryCount)

  • 功能:設置失敗重試次數。

  • 參數:retryCount表示失敗的重試次數。

void setRetryConditions(EnumSet retryConditions)

  • 功能:設置失敗重試條件,可與setRetryCount方法結合使用。默認所有請求錯誤都會重試,此方法可設置僅對特定的請求錯誤重試。

  • 參數:retryConditions表示EnumSet類型的一個或多個重試條件,目前支持:

    • RetryCondition.CONNECTION_FAILED:請求連接失敗。

    • RetryCondition.CONNECTION_TIMEOUT:請求連接超時。

    • RetryCondition.READ_TIMEOUT:等待請求返回超時。

    • RetryCondition.RESPONSE_5XX:返回狀態碼為5xx。

    • RetryCondition.RESPONSE_4XX:返回狀態碼為4xx。

  • 調用示例:

    client.setRetryConditions(
        EnumSet.of(
            RetryCondition.READ_TIMEOUT,    // 在讀取超時時重試
            RetryCondition.RESPONSE_5XX     // 在接收到5xx系列錯誤碼時重試
        )
    );

    表示僅在請求超時、請求返回狀態碼為5xx報錯時進行重試。

void setContentType(String contentType)

  • 功能:設置HTTP Client的Content類型,默認為"application/octet-stream"。

  • 參數:contentType表示發送數據流的類型。

void setUrl(String url)

功能:自定義請求 URL。

void setCompressor(Compressor compressor)

  • 功能:設置請求數據的壓縮方式。

  • 參數:compressor表示壓縮方式,目前支持Compressor.Gzip和Compressor.Zlib。

  • 示例:詳情請參見請求數據壓縮示例

void addExtraHeaders(Map<String, String> extraHeaders)

  • 功能:額外添加自定義的HTTP Header。

  • 參數:Map<String, String>類型的HTTP Header。

void createChildClient(String token, String endpoint, String modelName)

  • 功能:創建子Client對象,共用父Client對象的線程池。該接口用于多線程預測。

  • 參數:

    • token:服務的鑒權Token。

    • endpoint:服務的Endpoint。

    • modelName:服務的名稱。

void predict(TFRequest runRequest)

  • 功能:向在線預測服務提交一個TensorFlow請求。

  • 參數:runRequest表示TensorFlow請求的實例對象。

void predict(String requestContent)

  • 功能:向在線預測服務提交一個字符串請求。

  • 參數:requestContent表示字符串格式的請求內容。

void predict(byte[] requestContent)

  • 功能:向在線預測服務提交一個Byte數組請求。

  • 參數:requestContent表示Byte類型的請求內容。

HttpConfig

void setIoThreadNum(int ioThreadNum)

  • 功能:設置HTTP請求的IO線程數,默認值為2。

  • 參數:ioThreadNum表示發送HTTP請求的IO線程數。

void setReadTimeout(int readTimeout)

  • 功能:設置發送請求后等待返回的超時時間,默認值為5000,表示5s。

  • 參數:readTimeout表示請求的讀取超時時間。

void setConnectTimeout(int connectTimeout)

  • 功能:設置連接超時時間,默認值為5000,表示5s。

  • 參數:connectTimeout表示請求的連接超時時間。

void setMaxConnectionCount(int maxConnectionCount)

  • 功能:設置最大連接數,默認值為1000。

  • 參數:maxConnectionCount表示客戶端連接池的最大連接數。

void setMaxConnectionPerRoute(int maxConnectionPerRoute)

  • 功能:設置每個路由的最大默認連接數,默認值為1000。

  • 參數:maxConnectionPerRoute表示每個路由上的默認最大連接數。

void setKeepAlive(boolean keepAlive)

  • 功能:設置HTTP服務的keep-alive。

  • 參數:keepAlive表示是否開啟連接的keep-alive機制,默認為true

int getErrorCode()

返回最近一次調用的狀態碼。

string getErrorMessage()

返回最近一次調用的狀態信息。

TFRequest

void setSignatureName(String value)

  • 功能:請求的在線服務的模型為TensorFlow的SavedModel格式時,設置請求模型的signatureDef的名稱。

  • 參數:請求模型的signatureDef的名稱。

void addFetch(String value)

  • 功能:請求TensorFlow的在線服務模型時,設置模型輸出Tensor的別名。

  • 參數:value表示TensorFlow服務輸出Tensor的別名。

void addFeed(String inputName, TFDataType dataType, long[]shape, ?[]content)

  • 功能:請求TensorFlow的在線預測服務模型時,設置需要輸入的Tensor。

  • 參數:

    • inputName:表示輸入Tensor的別名。

    • dataType:表示輸入Tensor的DataType。

    • shape:表示輸入Tensor的TensorShape。

    • content:表示輸入Tensor的內容,采用一維數組表示。

      如果輸入Tensor的DataType為DT_FLOAT、DT_COMPLEX64、DT_BFLOAT16或DT_HALF,則content中的元素類型為FLOAT。其中DataType為DT_COMPLEX64時,content中相鄰兩個FLOAT元素依次表示復數的實部和虛部。

      如果輸入Tensor的DataType為DT_DOUBLE或DT_COMPLEX128,則content中的元素類型為DOUBLE。其中DataType為DT_COMPLEX128時,content中相鄰兩個DOUBLE元素依次表示復數的實部和虛部。

      如果輸入Tensor的DataType為DT_INT32、DT_UINT8、DT_INT16、DT_INT8、DT_QINT8、DT_QUINT8、DT_QINT32、DT_QINT16、DT_QUINT16或DT_UINT16,content中的元素類型為INT。

      如果輸入Tensor的DataType為DT_INT64,則content中的元素類型為LONG。

      如果輸入Tensor的DataType為DT_STRING,則content中的元素類型為STRING。

      如果輸入Tensor的DataType為DT_BOOL,則content中的元素類型為BOOLEAN。

TFResponse

List<Long> getTensorShape(String outputName)

  • 功能:獲得指定別名的輸出Tensor的TensorShape。

  • 參數:outputName表示待獲取TensorShape的模型輸出的名稱。

  • 返回值:表示TensorShape的一維數組。

List<Float> getFloatVals(String outputName)

  • 功能:如果輸出Tensor的DataType為DT_FLOAT、DT_COMPLEX64、DT_BFLOAT16或DT_HALF,則可以調用該接口獲取指定輸出Tensor的data。

  • 參數:outputName表示待獲取FLOAT類型返回數據的模型輸出的名稱。

  • 返回值:模型輸出的TensorData展開成的一維數組。

List<Double> getDoubleVals(String outputName)

  • 功能:如果輸出Tensor的DataType為DT_DOUBLE或DT_COMPLEX128,則調用該接口獲取指定輸出Tensor的data。

  • 參數:outputname表示待獲取DOUBLE類型返回數據的模型輸出的名稱。

  • 返回值:模型輸出的TensorData展開成的一維數組。

List<Integer> getIntVals(String outputName)

  • 功能:如果輸出Tensor的DataType為DT_INT32、DT_UINT8、DT_INT16、DT_INT8、DT_QINT8、DT_QUINT8、DT_QINT32、DT_QINT16、DT_QUINT16或DT_UINT16,則調用該接口獲取指定輸出Tensor的data。

  • 參數:outputname表示待獲取INT類型返回數據的模型輸出的名稱。

  • 返回值:模型輸出的TensorData展開成的一維數組。

List<String> getStringVals(String outputName)

  • 功能:如果輸出Tensor的DataType為DT_STRING,則調用該接口獲取指定輸出Tensor的data。

  • 參數:outputName表示待獲取STRING類型返回數據的模型輸出的名稱。

  • 返回值:模型輸出的TensorData展開成的一維數組。

List<Long> getInt64Vals(String outputName)

  • 功能:如果輸出Tensor的DataType為DT_INT64,則調用該接口獲取指定輸出Tensor的data

  • 參數:outputName表示待獲取的INT64類型返回數據的模型輸出的名稱。

  • 返回值:模型輸出的TensorData展開成的一維數組。

List<Boolean> getBoolVals(String outputName)

  • 功能:如果輸出Tensor的DataType為DT_BOOL,則調用該接口獲取指定輸出Tensor的data。

  • 參數:outputName表示待獲取BOOL類型的返回數據的模型輸出的名稱。

  • 返回值:模型輸出的TensorData展開成的一維數組。

QueueClient

QueueClient(String endpoint, String queueName, String token, HttpConfig httpConfig, QueueUser user)

  • 功能:QueueClient類的構造函數。

  • 參數:

    • endpoint:服務端的Endpoint地址。

    • queueName:服務名稱。

    • token:服務訪問的Token。

    • httpConfig:服務請求的配置。

    • user:配置UserId(默認為隨機數)與 GroupName(默認為eas)。

JSONObject attributes()

  • 功能:獲取隊列服務的詳細信息。

  • 返回值:JSONObject類型的隊列服務信息,主要包含如下字段:

    • meta.maxPayloadBytes:隊列中允許的每個數據項的Size上限。

    • meta.name:隊列名。

    • stream.approxMaxLength:隊列中能夠存儲的數據項的數量上限。

    • stream.firstEntry:隊列中第一個數據項的Index。

    • stream.lastEntry:隊列中最后一個數據項的Index。

    • stream.length:隊列中當前存儲的數據項的數量。

Pair<Long, String> put(byte[] data, long priority, Map<String, String> tags)

  • 功能:將數據寫入隊列服務。

  • 參數:

    • data:Byte[]類型數據。

    • priority:表示數據優先級。默認值為0,表示非優先數據。將該參數配置為1時,表示高優先級數據。

    • tags:自定義參數。

  • 返回值:Pair<Long, String> 類型的 <數據index, 請求Id>。表示一個由兩個元素組成的有序對,第一個元素是一個Long類型的數據 Index,第二個元素是一個String類型的請求ID。

DataFrame[] get(long index, long length, long timeout, boolean autoDelete, Map<String, String> tags)

  • 功能:獲取隊列服務中的數據。

  • 參數:

    • index:指定獲取數據的起始Index,如果為-1則讀取最新的數據。

    • length:獲取的數據個數。

    • timeout:超時時間,以秒為單位。

    • autoDelete:獲取數據后是否自動從隊列中刪除。

    • tags:自定義參數。例如指定RequestID。

  • 返回值:DataFrame數據類。

void truncate(Long index)

  • 功能:刪除隊列服務中所有Index小于指定Index的數據。

String delete(Long index)

  • 功能:刪除隊列服務中指定Index的數據。

  • 參數:index表示待刪除數據的index。

  • 返回值:刪除成功則返回OK。

JSONObject search(long index)

  • 功能:查詢數據的排隊信息。

  • 參數:[index]表示查詢數據的index。

  • 返回值:為JSONObject類型的數據排隊信息,包含如下字段:

    • ConsumerId:表示處理該數據的實例ID。

    • IsPending:表示數據是否正在被處理。

      • True表示正在被處理。

      • False表示正在排隊。

    • WaitCount:表示前面還需排隊等待的數據個數,僅當IsPending為False時該值才有效,IsPending為True時該值為0。

    返回內容示例如下:

    • 返回{'ConsumerId': 'eas.****', 'IsPending': False, 'WaitCount':2},表示請求正在排隊。

    • 回顯日志no data in stream,返回{}。表示未在隊列中找到該數據,該情況可能是因為數據已被服務端成功處理并返回結果,或是index參數配置有誤,請檢查確認。

WebSocketWatcher watch(long index, long window, boolean indexOnly, boolean autoCommit, Map<String, String> tags)

  • 功能:訂閱隊列服務。

  • 參數:

    • index:指定獲取數據的起始Index。如果為-1,則忽略所有Pending的數據而讀取最新數據。

    • window:指定發送窗口的大小,即最大的未commit數據長度。當QS發出了window個DataFrame數據但是客戶端并沒有commit時,發送會停止。

    • indexOnly:返回的DataFrame中只包含Index和tags,而不返回具體數據,從而節約帶寬。

    • autoCommit:指定發出數據后,直接進行Commit,從而避免Commit調用。當autoCommit設置為true,window指定的參數將被忽略。

    • tags:自定義訂閱請求參數。

  • 返回值:WebSocketWatcher類型,用于獲取訂閱數據。使用方法可參考QueueService客戶端示例。

String commit(Long index) String commit(Long[] index)

  • 功能:確認數據已被消費并在隊列服務中刪除該數據。

  • 返回值:Commit成功則返回OK。

void end(boolean force)

功能:關閉隊列服務。

DataFrame

byte[] getData()

  • 功能:獲取數據值。

  • 返回值:Byte[]類型的數據值。

long getIndex()

  • 功能:獲取數據Index。

  • 返回值:Long類型的數據Index。

Map<String, String> getTags()

  • 功能:獲取數據tags。

  • 返回值:Map<String,String>類型的數據Tags,可用于獲取RequestID。例如df.getTags().get("requestId")

程序示例

字符串輸入輸出示例

對于使用自定義Processor部署服務的用戶而言,通常采用字符串進行服務調用(例如,PMML模型服務的調用),具體的Demo程序如下。

import com.aliyun.openservices.eas.predict.http.PredictClient;
import com.aliyun.openservices.eas.predict.http.HttpConfig;

public class TestString {
    public static void main(String[] args) throws Exception {
        // 啟動并初始化客戶端, client對象需要共享,千萬不可每個請求都創建一個client對象。
        PredictClient client = new PredictClient(new HttpConfig());
        client.setToken("YWFlMDYyZDNmNTc3M2I3MzMwYmY0MmYwM2Y2MTYxMTY4NzBkNzdj****");
        // 如果要使用網絡直連功能,需使用setDirectEndpoint方法
        // 如 client.setDirectEndpoint("pai-eas-vpc.cn-shanghai.aliyuncs.com");
        // 網絡直連需打通在EAS控制臺開通,提供用于訪問EAS服務的源vswitch,打通后可繞過網關以軟負載的方式直接訪問服務的實例,以實現更好的穩定性和性能。
        // 注:普通網關訪問時請使用以用戶uid為開頭的endpoint,在eas控制臺服務的調用信息中可查到。直連訪問時請使用如上的pai-eas-vpc.{region_id}.aliyuncs.com的域名進行訪問。
        client.setEndpoint("182848887922****.vpc.cn-shanghai.pai-eas.aliyuncs.com");
        client.setModelName("scorecard_pmml_example");

        // 輸入字符串定義
        String request = "[{\"money_credit\": 3000000}, {\"money_credit\": 10000}]";
        System.out.println(request);

        // 通過eas返回字符串
        try {
            String response = client.predict(request);
            System.out.println(response);
        } catch (Exception e) {
            e.printStackTrace();
        }

        // 關閉客戶端
        client.shutdown();
        return;
    }
}

如上述程序所示,使用Java SDK調用服務的流程如下:

  1. 通過PredictClient接口創建客戶端服務對象。如果在程序中需要使用多個服務,則創建多個Client對象。

  2. 為PredictClient對象配置Token、Endpoint及ModelName。

  3. 構造STRING類型的request作為輸入,通過client.predict發送HTTP請求,系統返回response。

TensorFlow輸入輸出示例

使用TensorFlow的用戶,需要將TFRequest和TFResponse分別作為輸入和輸出數據格式,具體Demo示例如下。

import java.util.List;

import com.aliyun.openservices.eas.predict.http.PredictClient;
import com.aliyun.openservices.eas.predict.http.HttpConfig;
import com.aliyun.openservices.eas.predict.request.TFDataType;
import com.aliyun.openservices.eas.predict.request.TFRequest;
import com.aliyun.openservices.eas.predict.response.TFResponse;

public class TestTF {
    public static TFRequest buildPredictRequest() {
        TFRequest request = new TFRequest();
        request.setSignatureName("predict_images");
        float[] content = new float[784];
        for (int i = 0; i < content.length; i++) {
            content[i] = (float) 0.0;
        }
        request.addFeed("images", TFDataType.DT_FLOAT, new long[]{1, 784}, content);
        request.addFetch("scores");
        return request;
    }

    public static void main(String[] args) throws Exception {
        PredictClient client = new PredictClient(new HttpConfig());

        // 如果要使用網絡直連功能,需使用setDirectEndpoint方法。
        // 如 client.setDirectEndpoint("pai-eas-vpc.cn-shanghai.aliyuncs.com");
        // 網絡直連需打通在EAS控制臺開通,提供用于訪問EAS服務的源vswitch,打通后可繞過網關以軟負載的方式直接訪問服務的實例,以實現更好的穩定性和性能。
        // 注:普通網關訪問時請使用以用戶uid為開頭的endpoint,在eas控制臺服務的調用信息中可查到。直連訪問時請使用如上的pai-eas-vpc.{region_id}.aliyuncs.com的域名進行訪問。
        client.setEndpoint("182848887922****.vpc.cn-shanghai.pai-eas.aliyuncs.com");
        client.setModelName("mnist_saved_model_example");
        client.setToken("YTg2ZjE0ZjM4ZmE3OTc0NzYxZDMyNmYzMTJjZTQ1YmU0N2FjMTAy****");
        long startTime = System.currentTimeMillis();
        int count = 1000;
        for (int i = 0; i < count; i++) {
            try {
                TFResponse response = client.predict(buildPredictRequest());
                List<Float> result = response.getFloatVals("scores");
                System.out.print("Predict Result: [");
                for (int j = 0; j < result.size(); j++) {
                    System.out.print(result.get(j).floatValue());
                    if (j != result.size() - 1) {
                        System.out.print(", ");
                    }
                }
                System.out.print("]\n");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        long endTime = System.currentTimeMillis();
        System.out.println("Spend Time: " + (endTime - startTime) + "ms");
        client.shutdown();
    }
}

如上述程序所示,使用Java SDK調用TensorFlow服務的流程如下:

  1. 通過PredictClient接口創建客戶端服務對象。如果在程序中需要使用多個服務,則創建多個Client對象。

  2. 為PredictClient對象配置Token、Endpoint及ModelName。

  3. 使用TFRequest類封裝輸入數據,使用TFResponse類封裝輸出數據。

QueueService客戶端示例

支持通過QueueClient接口使用隊列服務功能,具體demo示例如下:

import com.alibaba.fastjson.JSONObject;
import com.aliyun.openservices.eas.predict.http.HttpConfig;
import com.aliyun.openservices.eas.predict.http.QueueClient;
import com.aliyun.openservices.eas.predict.queue_client.QueueUser;
import com.aliyun.openservices.eas.predict.queue_client.WebSocketWatcher;

public class DemoWatch {
    public static void main(String[] args) throws Exception {
        /** 創建隊列服務客戶端 */
        String queueEndpoint = "18*******.cn-hangzhou.pai-eas.aliyuncs.com";
        String inputQueueName = "test_queue_service";
        String sinkQueueName = "test_queue_service/sink";
        String queueToken = "test-token";

        /** 輸入隊列,往輸入隊列添加數據,推理服務會自動從輸入隊列中讀取請求數據 */
        QueueClient inputQueue =
            new QueueClient(queueEndpoint, inputQueueName, queueToken, new HttpConfig(), new QueueUser());
        /** 輸出隊列,推理服務處理輸入數據后會將結果寫入輸出隊列 */
        QueueClient sinkQueue =
            new QueueClient(queueEndpoint, sinkQueueName, queueToken, new HttpConfig(), new QueueUser());
        /** 清除隊列數據!!!請謹慎使用 */
        inputQueue.clear();
        sinkQueue.clear();

        /** 往輸入隊列添加數據 */
        int count = 10;
        for (int i = 0; i < count; ++i) {
            String data = Integer.toString(i);
            inputQueue.put(data.getBytes(), null);
            /** 隊列服務支持多優先級隊列,可通過put函數設置數據優先級,默認優先級為0 */
            //  inputQueue.put(data.getBytes(), 0L, null);
        }

        /** 通過watch函數訂閱輸出隊列的數據,窗口大小為5 */
        WebSocketWatcher watcher = sinkQueue.watch(0L, 5L, false, true, null);
        /** WatchConfig參數可自定義重試次數、重試間隔(單位為秒)、是否無限重試;未配置WatchConfig則默認重試次數:3,重試間隔:5 */
        //  WebSocketWatcher watcher = sink_queue.watch(0L, 5L, false, true, null, new WatchConfig(3, 1));
        //  WebSocketWatcher watcher = sink_queue.watch(0L, 5L, false, true, null, new WatchConfig(true, 10));

        /** 獲取輸出數據 */
        for (int i = 0; i < count; ++i) {
            try {
                /** getDataFrame 函數用于獲取DataFrame數據類,沒有數據時會被阻塞 */
                byte[] data = watcher.getDataFrame().getData();
                System.out.println("[watch] data = " + new String(data));
            } catch (RuntimeException ex) {
                System.out.println("[watch] error = " + ex.getMessage());
                break;
            }
        }
        /** 關閉已經打開的watcher對象,每個客戶端實例只允許存在一個watcher對象,若watcher對象不關閉,再運行時會報錯 */
        watcher.close();

        Thread.sleep(2000);
        JSONObject attrs = sinkQueue.attributes();
        System.out.println(attrs.toString());

        /** 關閉客戶端 */
        inputQueue.shutdown();
        sinkQueue.shutdown();
    }
}

如上述程序所示,使用Java SDK調用服務的流程如下:

  1. 通過QueueClient接口創建隊列服務客戶端對象。如果創建了推理服務,需同時創建輸入隊列和輸出隊列對象。

  2. 使用put()函數向輸入隊列中發送數據;使用watch()函數從輸出隊列中訂閱數據。

    說明

    現實場景中,發送數據和訂閱數據可以由不同的線程處理,本示例中為了演示方便,在同一線程中完成,先Put數據,后Watch結果。

請求數據壓縮示例

對于請求數據量較大的情況,EAS支持將數據壓縮之后再發送至服務端,目前支持Zlib和Gzip兩種壓縮格式。該功能需要在服務配置中指定相應的rpc.decompressor才能生效。

服務配置如下所示:

"metadata": {
  "rpc": {
    "decompressor": "zlib"
  }
}

SDK代碼調用示例如下:

package com.aliyun.openservices.eas.predict;
import com.aliyun.openservices.eas.predict.http.Compressor;
import com.aliyun.openservices.eas.predict.http.PredictClient;
import com.aliyun.openservices.eas.predict.http.HttpConfig;
public class TestString {
    public static void main(String[] args) throws Exception{
    	  // 啟動并初始化客戶端。
        PredictClient client = new PredictClient(new HttpConfig());
        client.setEndpoint("18*******.cn-hangzhou.pai-eas.aliyuncs.com");
        client.setModelName("echo_compress");
        client.setToken("YzZjZjQwN2E4NGRkMDMxNDk5NzhhZDcwZDBjOTZjOGYwZDYxZGM2****");
        // 或者使用Compressor.Gzip。
        client.setCompressor(Compressor.Zlib);  
        // 輸入字符串定義。
        String request = "[{\"money_credit\": 3000000}, {\"money_credit\": 10000}]";
        System.out.println(request);
        // 通過eas返回字符串。
        String response = client.predict(request);
        System.out.println(response);
        // 關閉客戶端。
        client.shutdown();
        return;
    }
}

相關文檔