De nombreux modèles ouverts sur Gemini Enterprise Agent Platform proposent des modèles entièrement gérés et sans serveur en tant qu'API à l'aide de Gemini Enterprise Agent Platform Chat Completions API. Pour ces modèles, il n'est pas nécessaire de provisionner ni de gérer l'infrastructure.
Vous pouvez diffuser vos réponses en flux continu pour réduire la perception de la latence côté utilisateur. Une réponse en flux continu utilise des événements envoyés par le serveur (SSE) pour diffuser la réponse de manière incrémentielle.
Cette page explique comment effectuer des appels en flux continu et sans flux continu vers des modèles ouverts compatibles avec l'API OpenAI Chat Completions. Pour connaître les considérations spécifiques à Llama, consultez Demander des prédictions Llama.
Avant de commencer
Pour utiliser des modèles ouverts avec Gemini Enterprise Agent Platform, procédez comme suit. L'API Agent Platform (aiplatform.googleapis.com) doit être activée pour utiliser Gemini Enterprise Agent Platform. Si vous disposez déjà d'un projet pour lequel l'API Agent Platform est activée, vous pouvez utiliser ce projet au lieu de créer un projet.
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
Enable the Gemini Enterprise Agent Platform API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.- Accédez à la fiche de modèle Model Garden pour le modèle que vous souhaitez utiliser, puis cliquez Activer pour activer le modèle dans votre projet.
Effectuer un appel en flux continu à un modèle ouvert
L'exemple suivant effectue un appel en flux continu à un modèle ouvert :
Python
Avant d'essayer cet exemple, suivez les instructions de configuration Python décrites dans le guide de démarrage rapide d'Agent Platform à l'aide des bibliothèques clientes.
Pour vous authentifier auprès d'Agent Platform, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.
Avant d'exécuter cet exemple, assurez-vous de définir la variable d'environnement OPENAI_BASE_URL.
Pour en savoir plus, consultez Authentification et identifiants.
from openai import OpenAI client = OpenAI() stream = client.chat.completions.create( model="MODEL", messages=[{"role": "ROLE", "content": "CONTENT"}], max_tokens=MAX_OUTPUT_TOKENS, stream=True, ) for chunk in stream: print(chunk.choices[0].delta.content or "", end="")
- MODEL : nom du modèle que vous souhaitez utiliser,
par exemple
deepseek-ai/deepseek-v3.1-maas. - ROLE : rôle associé à un
message. Vous pouvez spécifier
userouassistant. Le premier message doit utiliser le rôleuser. Les modèles fonctionnent avec des toursuseretassistantalternés. Si le message final utilise le rôleassistant, le contenu de la réponse continue immédiatement à partir du contenu de ce message. Cela vous permet de limiter une partie de la réponse du modèle. - CONTENT : contenu, tel que le texte, du message
userouassistant. - MAX_OUTPUT_TOKENS : nombre maximal de jetons pouvant être générés dans la réponse. Un jeton correspond environ à quatre caractères. 100 jetons correspondent à environ 60-80 mots.
Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses potentiellement plus longues.
REST
Une fois que vous avez configuré votre environnement, vous pouvez utiliser REST pour tester un prompt textuel. L'exemple suivant envoie une requête au point de terminaison du modèle de l'éditeur.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- LOCATION: région compatible avec les modèles ouverts.
- MODEL : nom du modèle que vous souhaitez utiliser,
par exemple
deepseek-ai/deepseek-v2. - ROLE : rôle associé à un
message. Vous pouvez spécifier
userouassistant. Le premier message doit utiliser le rôleuser. Les modèles fonctionnent avec des toursuseretassistantalternés. Si le message final utilise le rôleassistant, le contenu de la réponse continue immédiatement à partir du contenu de ce message. Cela vous permet de limiter une partie de la réponse du modèle. - CONTENT : contenu, tel que le texte, du message
userouassistant. - MAX_OUTPUT_TOKENS : nombre maximal de jetons pouvant être générés dans la réponse. Un jeton correspond environ à quatre caractères. 100 jetons correspondent à environ 60-80 mots.
Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses potentiellement plus longues.
- STREAM : valeur booléenne qui spécifie si la réponse est diffusée ou non. Diffusez votre réponse en flux continu pour réduire la perception de la latence que peuvent avoir les utilisateurs finaux. Définissez la valeur sur
truepour diffuser la réponse et surfalsepour la renvoyer simultanément.
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions
Corps JSON de la requête :
{
"model": "MODEL",
"messages": [
{
"role": "ROLE",
"content": "CONTENT"
}
],
"max_tokens": MAX_OUTPUT_TOKENS,
"stream": true
}
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON semblable à la suivante.
Effectuer un appel sans flux continu à un modèle ouvert
L'exemple suivant effectue un appel sans flux continu à un modèle ouvert :
Python
Avant d'essayer cet exemple, suivez les instructions de configuration Python décrites dans le guide de démarrage rapide d'Agent Platform à l'aide des bibliothèques clientes.
Pour vous authentifier auprès d'Agent Platform, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.
Avant d'exécuter cet exemple, assurez-vous de définir la variable d'environnement OPENAI_BASE_URL.
Pour en savoir plus, consultez Authentification et identifiants.
from openai import OpenAI client = OpenAI() completion = client.chat.completions.create( model="MODEL", messages=[{"role": "ROLE", "content": "CONTENT"}], max_tokens=MAX_OUTPUT_TOKENS, stream=False, ) print(completion.choices[0].message)
- MODEL : nom du modèle que vous souhaitez utiliser,
par exemple
deepseek-ai/deepseek-v3.1-maas. - ROLE : rôle associé à un
message. Vous pouvez spécifier
userouassistant. Le premier message doit utiliser le rôleuser. Les modèles fonctionnent avec des toursuseretassistantalternés. Si le message final utilise le rôleassistant, le contenu de la réponse continue immédiatement à partir du contenu de ce message. Cela vous permet de limiter une partie de la réponse du modèle. - CONTENT : contenu, tel que le texte, du message
userouassistant. - MAX_OUTPUT_TOKENS : nombre maximal de jetons pouvant être générés dans la réponse. Un jeton correspond environ à quatre caractères. 100 jetons correspondent à environ 60-80 mots.
Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses potentiellement plus longues.
REST
Une fois que vous avez configuré votre environnement, vous pouvez utiliser REST pour tester un prompt textuel. L'exemple suivant envoie une requête au point de terminaison du modèle de l'éditeur.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- LOCATION: région compatible avec les modèles ouverts.
- MODEL : nom du modèle que vous souhaitez utiliser,
par exemple
deepseek-ai/deepseek-v2. - ROLE : rôle associé à un
message. Vous pouvez spécifier
userouassistant. Le premier message doit utiliser le rôleuser. Les modèles fonctionnent avec des toursuseretassistantalternés. Si le message final utilise le rôleassistant, le contenu de la réponse continue immédiatement à partir du contenu de ce message. Cela vous permet de limiter une partie de la réponse du modèle. - CONTENT : contenu, tel que le texte, du message
userouassistant. - MAX_OUTPUT_TOKENS : nombre maximal de jetons pouvant être générés dans la réponse. Un jeton correspond environ à quatre caractères. 100 jetons correspondent à environ 60-80 mots.
Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses potentiellement plus longues.
- STREAM : valeur booléenne qui spécifie si la réponse est diffusée ou non. Diffusez votre réponse en flux continu pour réduire la perception de la latence que peuvent avoir les utilisateurs finaux. Définissez la valeur sur
truepour diffuser la réponse et surfalsepour la renvoyer simultanément.
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions
Corps JSON de la requête :
{
"model": "MODEL",
"messages": [
{
"role": "ROLE",
"content": "CONTENT"
}
],
"max_tokens": MAX_OUTPUT_TOKENS,
"stream": false
}
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON semblable à la suivante.
Points de terminaison régionaux et mondiaux
Pour les points de terminaison régionaux, les requêtes sont traitées à partir de la région que vous avez spécifiée. Si vous avez des exigences en matière de résidence des données ou si un modèle n'est pas compatible avec le point de terminaison mondial, utilisez les points de terminaison régionaux.
Lorsque vous utilisez le point de terminaison mondial, Google peut traiter et diffuser vos requêtes à partir de n'importe quelle région compatible avec le modèle que vous utilisez. Dans certains cas, cela peut entraîner une latence plus élevée. Le point de terminaison mondial contribue à améliorer la disponibilité globale et à réduire les erreurs.
Il n'y a pas de différence de prix avec les points de terminaison régionaux lorsque vous utilisez le point de terminaison mondial. Toutefois, les quotas de points de terminaison mondiaux et les fonctionnalités de modèle compatibles peuvent différer des points de terminaison régionaux. Pour en savoir plus, consultez la page du modèle tiers associé.
Spécifier le point de terminaison mondial
Pour utiliser le point de terminaison mondial, définissez la région sur global.
Par exemple, l'URL de requête d'une commande curl utilise le format suivant :
https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/endpoints/openapi
Pour le SDK Agent Platform, un point de terminaison régional est défini par défaut. Définissez la région sur GLOBAL pour utiliser le point de terminaison mondial.
Restreindre l'utilisation des points de terminaison d'API mondiaux
Pour appliquer l'utilisation de points de terminaison régionaux, utilisez la contrainte de règle d'administration constraints/gcp.restrictEndpointUsage afin de bloquer les requêtes envoyées au point de terminaison d'API mondial. Pour en savoir plus, consultez
Restreindre l'utilisation des points de terminaison.
Étape suivante
- Découvrez comment utiliser l'appel de fonction.
- En savoir plus sur la sortie structurée.
- En savoir plus sur les prédictions par lots.