Após a implantação de um service EAS, o sistema fornece um gateway compartilhado por padrão. Use esse gateway para invocar o service de inferência do modelo implantado por meio de um Internet Endpoint ou VPC Endpoint.
Recomendamos o uso do gateway compartilhado em ambientes de desenvolvimento e teste. Para ambientes de produção, use um gateway dedicado.
Escolha um endereço de invocação
Após a implantação do gateway compartilhado, dois tipos de endereços de invocação ficam disponíveis por padrão:
Endereço de invocação | Descrição | Casos de uso |
Internet Endpoint | O gateway compartilhado do EAS encaminha as requisições para o service de destino. Esta opção é adequada para qualquer ambiente com acesso à internet pública. |
|
VPC Endpoint | Indicado para cenários em que sua aplicação e o service EAS estão implantados na mesma região. Importante Em comparação com a invocação pela internet pública, a invocação via VPC oferece menor latência ao evitar a sobrecarga da rede pública e é mais econômica, pois o tráfego dentro de uma VPC geralmente é gratuito. |
|
Se sua aplicação e o service EAS estiverem em regiões diferentes, não será possível usar o endereço VPC do gateway compartilhado para acessar o service, mesmo que as VPCs estejam conectadas. Nesse caso, o acesso só é viável mediante o endereço IP e a porta da instância. No entanto, como o endereço IP muda quando o service é reiniciado ou atualizado, recomendamos o uso de um gateway dedicado.
Invocar o service
Etapa 1: Obter o endpoint e o token
Após a implantação de um service, o sistema gera automaticamente um endpoint e um token de autorização.
O console fornece o endpoint base. Ao construir a URL completa da requisição, anexe o caminho correto da API a este endpoint base. Um caminho incorreto é a causa mais comum de erros 404 Not Found.
Na aba Inference Service, clique em no nome do service de destino para acessar a página Overview.
Na seção Basic Information, clique em View Endpoint Information.
-
No painel Invocation Method, copie o endpoint e o token:
Conforme sua necessidade, selecione Internet Endpoint ou VPC Endpoint.
Os exemplos a seguir usam <EAS_ENDPOINT> como espaço reservado para o endpoint e <EAS_TOKEN> como espaço reservado para o token.
Clique em View Endpoint Information para abrir o painel. O painel oferece duas abas: Shared Gateway e VPC High-Speed Direct Connection. O endereço de rede pública, o endereço VPC e o Token encontram-se na aba Shared Gateway.
Etapa 2: Construir e enviar a requisição
O formato da requisição é o mesmo, independentemente do uso de um Internet Endpoint ou VPC Endpoint. Uma requisição padrão inclui os seguintes elementos:
|
Elemento |
Descrição |
|
Método |
Os métodos mais comuns são POST e GET. |
|
Caminho da requisição (URL) |
Formato: <EAS_ENDPOINT> + caminho da API. Exemplo: |
|
Autorização (Obrigatório) |
|
|
Content-Type |
|
|
Corpo da requisição |
A especificação da API do modelo implantado determina o formato. O corpo da requisição não pode exceder 1 MB quando enviado por meio de um gateway. |
Exemplo de invocação
O exemplo a seguir demonstra como invocar o service do modelo DeepSeek-R1-Distill-Qwen-7B implantado com vLLM. Considere que <EAS_ENDPOINT> seja http://16********.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/test.
Corpo da requisição:
{
"model": "DeepSeek-R1-Distill-Qwen-7B",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "hello!"
}
]
}
Exemplo de código:
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
# Replace with your actual endpoint.
url = 'http://16********.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/test/v1/chat/completions'
# The value of Authorization in the header is your actual token.
headers = {
"Content-Type": "application/json",
"Authorization": "*********5ZTM1ZDczg5OT**********",
}
# Construct the service request based on the data format required by the specific model.
data = {
"model": "DeepSeek-R1-Distill-Qwen-7B",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "hello!"
}
]
}
# Send the request.
resp = requests.post(url, json=data, headers=headers)
print(resp)
print(resp.content)
Para obter mais informações sobre como invocar services de Large Language Model (LLM), consulte Invocação de service LLM.
Outros cenários de implantação
-
Modelos implantados a partir do Model Gallery: A página Overview do modelo geralmente fornece exemplos de invocação da API, incluindo o caminho completo da URL e o formato da requisição.
Comando cURL
Parâmetros comuns:
Parâmetro
Descrição
Exemplo
-XEspecifica o método HTTP.
-X POST-HAdiciona um cabeçalho de requisição.
-H "Content-Type: application/json"-dAdiciona um corpo de requisição.
-d '{"key": "value"}'Exemplo de chamada da Chat API: Envie uma requisição POST para
<EAS_ENDPOINT>/v1/chat/completionscom os seguintes cabeçalhos:Content-Type: application/jsoneAuthorization: <EAS_TOKEN>. A estrutura do corpo da requisição JSON é a seguinte:model: O nome do modelo, que pode ser recuperado por meio da API/v1/models.messages: Um array de mensagens contendo uma funçãosystem(exemplo de conteúdo:You are a helpful assistant.) e uma funçãouser(exemplo de conteúdo:Hello!).
Código Python
O exemplo a seguir utiliza o modelo Qwen3-Reranker-8B para demonstrar como invocar o service com código Python. Observe que sua URL e corpo de requisição diferem do exemplo cURL. Siga sempre as instruções na página Overview do modelo.
O código Python contém as seguintes configurações principais: Defina
urlcomoEAS_ENDPOINT/v1/reranke configureAuthorizationeContent-Typeemheaders. Defina as strings de modeloprefix,suffix,query_templateedocument_template(contendo os tokens especiaisim_start/im_end). Construa o corpo da requisiçãodatacom o campomodel(valor:Qwen3-Reranker-8B), além dos camposqueryedocuments(os documentos de exemplo incluem "The capital of China is Beijing"). Por fim, na funçãomain(), envie uma requisição POST usandorequests.post(url, headers=headers, json=data)e imprima o resultado retornado. -
Implantações baseadas em cenários:
Services implantados com um processador genérico (como TensorFlow, Caffe e PMML): Consulte Construir uma requisição de service baseada em um processador genérico.
Outros services personalizados: O formato da requisição é determinado pelo formato de entrada de dados definido em sua imagem ou código personalizado.
Modelos treinados internamente: O método de invocação é o mesmo utilizado para o modelo original.
Perguntas frequentes
Para problemas comuns e soluções relacionadas à invocação de services, consulte Perguntas frequentes sobre invocação de services.