Une fois le service EAS déployé, une passerelle partagée est fournie par défaut. Utilisez cette passerelle pour invoquer le service d'inférence de modèle déployé via un point de terminaison Internet ou un point de terminaison VPC.
Nous recommandons d'utiliser une passerelle partagée pour les environnements de développement et de test. Pour les environnements de production, utilisez une passerelle dédiée.
Choisir une adresse d'invocation
Une fois la passerelle partagée déployée, deux types d'adresses d'invocation sont disponibles par défaut :
Adresse d'invocation | Description | Cas d'utilisation |
Internet Endpoint | La passerelle partagée EAS transfère les requêtes vers le service cible. Cette méthode convient à tout environnement disposant d'un accès à Internet public. |
|
VPC Endpoint | Convient aux scénarios où votre application et le service EAS sont déployés dans la même région. Important Par rapport à l'invocation via Internet public, l'invocation VPC offre une latence plus faible en évitant la surcharge du réseau public. Elle est également plus économique, car le trafic au sein d'un VPC est généralement gratuit. |
|
Invoquer le service
Étape 1 : Obtenir le point de terminaison et le jeton
Après le déploiement d'un service, le système génère automatiquement un point de terminaison et un jeton d'autorisation.
La console fournit le point de terminaison de base. Lorsque vous construisez l'URL complète de la requête, vous devez ajouter le chemin d'API correct à ce point de terminaison de base. Un chemin incorrect est la cause la plus fréquente des erreurs 404 Not Found.
Dans l'onglet Inference Service, cliquez sur le nom du service cible pour accéder à la page Overview.
Dans la section Basic Information, cliquez sur View Endpoint Information.
-
Dans le panneau Invocation Method, copiez le point de terminaison et le jeton :
Selon vos besoins, sélectionnez Internet Endpoint ou VPC Endpoint.
Les exemples suivants utilisent <EAS_ENDPOINT> comme espace réservé pour le point de terminaison et <EAS_TOKEN> comme espace réservé pour le jeton.
Cliquez sur View Endpoint Information pour ouvrir le panneau. Le panneau propose deux onglets : Shared Gateway et VPC High-Speed Direct Connection. L'adresse du réseau public, l'adresse VPC et le jeton se trouvent sous l'onglet Shared Gateway.
Étape 2 : Construire et envoyer la requête
Le format de la requête est identique, que vous utilisiez un Internet Endpoint ou un VPC Endpoint. Une requête standard comprend les éléments suivants :
|
Élément |
Description |
|
Méthode |
Les méthodes les plus courantes sont POST et GET. |
|
Chemin de la requête (URL) |
Format : <EAS_ENDPOINT> + chemin de l'API. Exemple : |
|
Autorisation (obligatoire) |
|
|
Content-Type |
|
|
Corps de la requête |
La spécification de l'API du modèle déployé détermine le format. La taille du corps de la requête ne peut pas dépasser 1 Mo lorsqu'elle est envoyée via une passerelle. |
Exemple d'invocation
L'exemple suivant montre comment invoquer le service de modèle DeepSeek-R1-Distill-Qwen-7B déployé avec vLLM. Supposons que <EAS_ENDPOINT> corresponde à http://16********.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/test.
Corps de la requête :
{
"model": "DeepSeek-R1-Distill-Qwen-7B",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "hello!"
}
]
}
Exemple de code :
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)
Pour plus d'informations sur l'invocation des services de grands modèles de langage (LLM), consultez Invocation de service LLM.
Autres scénarios de déploiement
-
Modèles déployés depuis Model Gallery : La page Overview du modèle fournit généralement des exemples d'invocation d'API, y compris le chemin d'URL complet et le format de la requête.
Commande cURL
Paramètres courants :
Paramètre
Description
Exemple
-XSpécifie la méthode HTTP.
-X POST-HAjoute un en-tête de requête.
-H "Content-Type: application/json"-dAjoute un corps de requête.
-d '{"key": "value"}'Exemple d'appel d'API Chat : envoyez une requête POST vers
<EAS_ENDPOINT>/v1/chat/completionsavec les en-têtes suivants :Content-Type: application/jsonetAuthorization: <EAS_TOKEN>. La structure du corps de la requête JSON est la suivante :model: le nom du modèle, qui peut être récupéré via l'API/v1/models.messages: un tableau de messages contenant un rôlesystem(exemple de contenu :You are a helpful assistant.) et un rôleuser(exemple de contenu :Hello!).
Code Python
L'exemple suivant utilise le modèle Qwen3-Reranker-8B pour montrer comment invoquer le service avec du code Python. Notez que son URL et son corps de requête diffèrent de l'exemple cURL. Suivez toujours les instructions figurant sur la page Overview du modèle.
Le code Python contient les configurations clés suivantes : définissez
urlsurEAS_ENDPOINT/v1/reranket configurezAuthorizationetContent-Typedansheaders. Définissez les chaînes de modèleprefix,suffix,query_templateetdocument_template(contenant les jetons spéciauxim_start/im_end). Construisez le corps de la requêtedataavec le champmodel(valeur :Qwen3-Reranker-8B),queryet les champsdocuments(les documents d'exemple incluent « The capital of China is Beijing »). Enfin, dans la fonctionmain(), envoyez une requête POST en utilisantrequests.post(url, headers=headers, json=data)et affichez le résultat renvoyé. -
Déploiements basés sur des scénarios :
Services déployés avec un processeur générique (tel que TensorFlow, Caffe et PMML) : consultez Construire une requête de service basée sur un processeur générique.
Autres services personnalisés : le format de la requête est déterminé par le format d'entrée des données défini dans votre image ou votre code personnalisé.
Modèles auto-entraînés : la méthode d'invocation est identique à celle du modèle d'origine.
FAQ
Pour les problèmes courants et les solutions liés à l'invocation de service, consultez FAQ sur l'invocation de service.