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

VPC地址調用

EAS支持通過Python官方SDK、Java官方SDK或自行實現調用邏輯的方式對服務進行VPC地址調用。本文詳細介紹每種調用方式的實現方法。

優勢

  • 避免了公網調用中的網絡性能開銷,可以提升調用速度。

  • 內網傳輸可以節省流量費用。

使用限制

  • 調用服務的服務器必須與部署的模型服務位于同一地域。例如,如果服務部署在華東2(上海),則只能從華東2(上海)的ECS服務器發送調用請求。

  • DSW關于MaxCompute的服務,無法使用VPC地址調用。

調用方式

EAS部署模型服務后,系統會自動生成一個VPC調用的服務地址。您可以在模型在線服務(EAS)頁面,單擊待調用服務服務方式列下的調用信息,查看VPC地址調用的訪問地址Token。通過該調用信息可以進行調用測試,示例如下。

$ curl http://166408185518****.vpc.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/heart_predict_online -H 'Authorization: ZGI1YWYxNmQwYjMzMDM1YTNlMmFmNmEzYjIzZTVlZGQ0NDJhYTRm****' -d '[{"sex":0,"cp":0,"fbs":0,"restecg":0,"exang":0,"slop":0,"thal":0,"age":0,"trestbps":0,"chol":0,"thalach":0,"oldpeak":0,"ca":0}]'
說明

您可以將http替換成https,進行更安全的加密傳輸。

調用測試成功后,即可調用服務。為方便用戶調用服務,EAS提供了以下三種調用方式:

使用官方SDK調用(Python)

使用Python官方SDK調用服務的方法如下:

  1. 安裝。

    pip install -U eas-prediction --user

    Python SDK調用詳情請參見GitHub官網

  2. 編寫調用程序。

    以字符串作為輸入輸出的程序為例,其他格式(TensorFlowPyTorch等)的輸入輸出程序示例請參見GitHub官網

    #!/usr/bin/env python
    from eas_prediction import PredictClient
    from eas_prediction import StringRequest
    if __name__ == '__main__':
        #下面的client = PredictClient()入參源于VPC地址調用的訪問地址。
        client = PredictClient('http://166408185518****.vpc.cn-hangzhou.pai-eas.aliyuncs.com','heart_predict_online')
        #Token可以在VPC地址調用信息中獲取,詳情請參見調用方式部分。
        client.set_token('ZGI1YWYxNmQwYjMzMDM1YTNlMmFmNmEzYjIzZTVlZGQ0NDJhYTRm****')    
        client.init()
        #輸入請求需要根據模型進行構造,此處僅以字符串作為輸入輸出的程序為例。
        request = StringRequest('[{"sex":0,"cp":0,"fbs":0,"restecg":0,"exang":0,"slop":0,"thal":0,"age":0,"trestbps":0,"chol":0,"thalach":0,"oldpeak":0,"ca":0}]')    
        for x in range(0, 1):
            resp = client.predict(request)
            print(resp)

    其中client = PredictClient()的函數入參源于VPC調用的訪問地址。例如VPC調用的訪問地址為http://166408185518****.vpc.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/heart_predict_online,則 PredictClient()函數的調用格式為client = PredictClient('http://166408185518****.vpc.cn-hangzhou.pai-eas.aliyuncs.com','heart_predict_online')

  3. 執行調用程序。

    $ python heart_predict.py

    其中heart_predict.pyPython程序的文件名,需要根據實際情況修改。獲得的預測結果如下。

    IT-C02YJ0V8JHD2:Desktop wowei$ python heart_predict.py
    [{"p_0":0.9941226679708888,"p_1":0.005877332029111252}]

使用官方SDK調用(Java)

使用Java官方SDK調用服務的方法如下:

  1. 添加依賴包。

    因為編寫Java客戶端代碼需要使用Maven管理項目,所以需要在pom.xml文件中添加客戶端依賴包eas-sdk。最新Release版本為2.0.1,代碼示例如下。

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

    Java SDK調用詳情請參見GitHub官網

  2. 編寫調用程序。

    以字符串作為輸入輸出的程序為例,其他格式(TensorFlowPyTorch等)的輸入輸出程序示例請參見GitHub官網

    import com.aliyun.openservices.eas.predict.http.PredictClient;
    import com.aliyun.openservices.eas.predict.http.HttpConfig;
    public class Test_String {
        public static void main(String[] args) throws Exception{
            //啟動并初始化客戶端。
            PredictClient client = new PredictClient(new HttpConfig());
            //Token可以在VPC地址調用信息中獲取,詳情請參見調用方式部分。
            client.setToken("ZGI1YWYxNmQwYjMzMDM1YTNlMmFmNmEzYjIzZTVlZGQ0NDJhYTRm****");
            //下面的Endpoint信息源于VPC調用的訪問地址。
            client.setEndpoint("http://166408185518****.vpc.cn-hangzhou.pai-eas.aliyuncs.com");
            //配置服務名稱。
            client.setModelName("heart_predict_online");
            //定義輸入字符串。輸入請求需要根據模型進行構造,此處僅以字符串作為輸入輸出的程序為例。
            String request = "[{\"sex\":0,\"cp\":0,\"fbs\":0,\"restecg\":0,\"exang\":0,\"slop\":0,\"thal\":0,\"age\":0,\"trestbps\":0,\"chol\":0,\"thalach\":0,\"oldpeak\":0,\"ca\":0}]";
            System.out.println(request);
            //通過EAS返回字符串。 
            try {
                String response = client.predict(request);
                System.out.println(response);
            } catch(Exception e) {
                e.printStackTrace();
            }
            //關閉客戶端。
            client.shutdown();
            return;
        }
    }

    其中 client.setEndpoint()client.setModelName()的函數入參源于VPC調用的訪問地址。例如VPC調用的訪問地址為http://166408185518****.vpc.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/heart_predict_online,則 client.setEndpoint()函數的調用格式為client.setEndpoint("http://166408185518****.vpc.cn-hangzhou.pai-eas.aliyuncs.com")client.setModelName()函數的調用格式為client.setModelName("heart_predict_online")

  3. 執行調用程序。

    執行調用邏輯程序可以獲得如下結果。

    [{"p_0":0.9941226679708888,"p_1":0.005877332029111252}]

自行實現調用邏輯

EAS支持使用Python、Java或其他語言自行實現調用邏輯,您需要根據不同框架構建服務請求,詳情請參見構建通用Processor服務請求。自行實現調用邏輯的示例如下,采用HTTP接口調用。

import requests
#URL信息可以在VPC地址調用信息中獲取,詳情請參見調用方式部分。
url = 'http://166408185518****.vpc.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/heart_predict_online'
#header信息(Token)可以在VPC地址調用信息中獲取,詳情請參見調用方式部分。
headers = {"Authorization": 'ZGI1YWYxNmQwYjMzMDM1YTNlMmFmNmEzYjIzZTVlZGQ0NDJhYTRm****'}
#根據具體模型要求的數據格式構造服務請求,此處僅以字符串作為輸入輸出的程序為例。
data = '[{"sex":0,"cp":0,"fbs":0,"restecg":0,"exang":0,"slop":0,"thal":0,"age":0,"trestbps":0,"chol":0,"thalach":0,"oldpeak":0,"ca":0}]'
resp = requests.post(url, data=data, headers=headers)
print resp
print resp.content