通過共用網關進行公網或內網調用

更新時間:
Copy as MD

EAS 服務部署後預設提供共用網關,支援通過公網調用地址或 VPC調用地址調用已部署的模型推理服務。

重要

建議在開發測試環境使用共用網關,生產環境請使用專屬網關

選擇調用地址

共用網關部署完成後預設提供兩種調用地址:

調用地址

說明

適用情境

公網調用地址

請求經 EAS 共用網關轉寄至目標服務,適用於可訪問公網的任意環境。

  • 阿里雲外部調用

  • 本地開發測試

VPC調用地址

適用於應用程式與EAS服務部署在同一地區。

重要

相比公網調用,VPC內網調用速度更快(免去公網的網路效能開銷)且成本更低(內網流量通常免費)。

  • 阿里雲內部調用(與EAS服務同地區)

  • 需要更低的延遲和成本

  • 不希望服務暴露在公網

應用程式與EAS服務跨地區時,打通VPC後,仍無法通過共用網關的VPC地址訪問,僅支援通過服務執行個體ip:port訪問服務。由於服務重啟或更新後IP會變化,建議使用專屬網關。

調用服務

步驟一:擷取訪問地址和 Token

服務部署完成後,系統自動產生訪問地址和授權令牌。

重要

控制台提供的是基礎地址。構造完整請求 URL 時,需在基礎地址後拼接正確的介面路徑。路徑錯誤是導致404 Not Found的最常見原因。

  1. 推理服务頁簽,單擊目標服務名稱進入概览頁面。

  2. 基本信息地區,單擊查看调用信息

  3. 调用信息面板,複製訪問地址和 Token:

    • 根據需要選擇公網調用地址VPC調用地址

    • 後續樣本中使用 <EAS_ENDPOINT> 表示訪問地址,<EAS_TOKEN> 表示 Token。

    image

步驟二:構造並發送請求

無論使用公網調用地址還是 VPC調用地址,請求格式相同。標準請求包含以下要素:

要素

說明

要求方法(Method)

最常用的是 POST 和 GET

請求路徑(URL)

格式:<EAS_ENDPOINT> + API 路徑,樣本:http://16********.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/test+/v1/chat/completion

Authorization(必填)

Authorization: <EAS_TOKEN>,用於認證

Content-Type

Content-Type: application/json,POST 請求通常必填

請求體(Body)

格式由所部署的模型 API 規範決定,通過網關調用時不得超過 1 MB

調用樣本

以下樣本調用通過 vLLM 部署的 DeepSeek-R1-Distill-Qwen-7B 模型服務,假設 <EAS_ENDPOINT> 為http://16********.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/test

請求體

{
    "model": "DeepSeek-R1-Distill-Qwen-7B",
    "messages": [
    {
        "role": "system",
        "content": "You are a helpful assistant."
    },
    {
        "role": "user",
        "content": "hello!"
    }
    ]
}

程式碼範例

curl http://16********.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/test/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: *********5ZTM1ZDczg5OT**********" \
-X POST \
-d '{
    "model": "DeepSeek-R1-Distill-Qwen-7B",
    "messages": [
    {
        "role": "system",
        "content": "You are a helpful assistant."
    },
    {
        "role": "user",
        "content": "hello!"
    }
    ]
}' 
import requests

# 替換為實際訪問地址
url = 'http://16********.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/test/v1/chat/completions'
# header資訊 Authorization的值為實際的Token
headers = {
    "Content-Type": "application/json",
    "Authorization": "*********5ZTM1ZDczg5OT**********",
}
# 根據模型要求的格式構造請求。
data = {
    "model": "DeepSeek-R1-Distill-Qwen-7B",
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "hello!"
        }
    ]
}
# 發送請求
resp = requests.post(url, json=data, headers=headers)
print(resp)
print(resp.content)

更多 LLM 服務調用說明,請參見LLM 調用

其他部署情境調用

  • 通過 Model Gallery 部署的模型:其模型介绍頁面通常提供 API 呼叫樣本,包括完整的 URL 路徑和請求格式。

    cURL 命令

    常用參數:

    參數

    說明

    樣本

    -X

    指定 HTTP 方法

    -X POST

    -H

    添加要求標頭

    -H "Content-Type: application/json"

    -d

    添加請求體

    -d '{"key": "value"}'

    image

    Python 代碼

    以 Qwen3-Reranker-8B 模型為例,使用 Python 代碼調用服務。注意其 URL 和請求體與 cURL 樣本不同,請以模型介紹頁面為準。

    image

  • 情境化部署:

  • 通用 Processor(包括 TensorFlow、Caffe、PMML 等)部署的服務:請參見基於通用Processor構造服務要求

  • 其他自訂服務:請求格式由自訂鏡像或代碼中定義的資料輸入格式決定。

  • 自己訓練的模型:調用方式與原模型一致。

常見問題

服務調用常見問題和解決方案,參見服務調用 FAQ