公网/VPC地址调用

本文介绍如何通过公网或VPC内网访问的方式调用服务。

适用场景

  • 公网访问:要求调用服务的服务器能访问公网。

  • VPC地址访问:要求调用服务的服务器与部署的模型服务位于同一地域。例如,服务部署在华东2(上海),则只能从华东2(上海)的服务器发送调用请求。

重要

VPC地址访问相比公网访问有以下优势:

  • 避免了公网调用中的网络性能开销,可以提升调用速度。

  • 内网传输可以节省流量费用。

如何调用

获取访问地址和Token

EAS部署模型服务后,系统会自动生成公网和VPC的访问地址。

您可以在模型在线服务(EAS)页面,单击待调用服务名称进入服务概览页面,在基本信息区域单击查看调用信息,获取公网或VPC地址调用的访问地址(EAS_ENDPOINTToken( EAS_TOKEN)。

image

通用调用

说明

您可以将http替换成https,进行更安全的加密传输。

curl  <url> -H 'Authorization: <EAS_TOKEN>' -d '<request data>'
import requests
# <url> 需替换为服务实际的访问地址
url = '<url>'
# header信息 <EAS_TOKEN>需替换为实际的Token
headers = {"Authorization": "<EAS_TOKEN>"}
# 根据具体模型要求的数据格式构造服务请求,此处仅以字符串作为输入输出的程序为例。
data = '<request data>'
resp = requests.post(url, data=data, headers=headers)
print(resp)
print(resp.content)

其中:

  • <url> 需替换为实际的访问地址。如果自定义了接口路径<path>,则<url>为<EAS_ENDPOINT>/<path>,否则为<EAS_ENDPOINT>。

  • <EAS_TOKEN>需替换为实际的Token。

  • <request data>为请求数据,需根据不同模型服务的要求进行构造。

调用示例

vLLM部署的DeepSeek-R1-Distill-Qwen-7B模型服务为例,获取访问地址和Token如下:

  • <EAS_ENDPOINT>:http://16********.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/test

  • <EAS_TOKEN>:*********5ZTM1ZDczg5OT**********

使用兼容OpenAI的对话接口,则<path>为v1/chat/completions

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为服务实际的访问地址
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)

更多调用参考

模型服务的调用方式取决于具体部署的模型服务:

  • 如果是通过Model Gallery部署的模型服务,可以参考模型介绍页面进行调用。

    image

  • 大语言模型服务调用请参见LLM调用