L'API Vertex AI Gemini vous permet de créer une application avec des modèles Gemini. Utilisez l'API Vertex AI Gemini pour créer des requêtes, puis recevoir des réponses afin de créer des applications pour votre cas d'utilisation. Les rubriques suivantes incluent des exemples de cas d'utilisation des modèles Gemini:
- Cas d'utilisation de Gemini 1.5 Pro
- Cas d'utilisation de Gemini 1.0 Pro Vision
- Cas d'utilisation de Gemini 1.0 Pro
Commencer
Pour commencer à utiliser l'API Vertex AI Gemini, utilisez ce document pour examiner le Corps de la requête du modèle Gemini, les paramètres du modèle, le Corps de la réponse, et quelques exemples de requêtes et réponses.
Lorsque vous êtes prêt, consultez le guide de démarrage rapide de l'API Vertex AI Gemini pour apprendre à configurer sur Google Cloud, puis envoyer une requête à l'API Vertex AI Gemini à l'aide d'un SDK Vertex AI, de REST ou de la console Google Cloud.
Envoyer une requête HTTP
Les onglets suivants vous montrent comment envoyer une requête HTTP avec chaque modèle Gemini:
Gemini 1.5 Pro
POST https://{REGION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{REGION}/publishers/google/models/gemini-1.5-pro:streamGenerateContent
Gemini 1.0 Pro
POST https://{REGION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{REGION}/publishers/google/models/gemini-1.0-pro:streamGenerateContent
Gemini 1.0 Pro Vision
POST https://{REGION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{REGION}/publishers/google/models/gemini-1.0-pro-vision:streamGenerateContent
Pour envoyer une requête de flux au modèle, consultez la méthode streamGenerateContent
pour plus d'informations.
Pour envoyer une requête sans streaming au modèle, utilisez plutôt la méthode generateContent
.
Pour obtenir la liste des régions compatibles, consultez la section Emplacements disponibles.
Versions de modèle
Pour utiliser la version mise à jour automatiquement, spécifiez le nom du modèle sans le numéro de version final, par exemple gemini-1.0-pro
au lieu de gemini-1.0-pro-001
.
Pour en savoir plus, consultez la page Versions et cycle de vie des modèles Gemini.
Corps de la requête
Le corps de la requête contient des données présentant la structure suivante :
{ "contents": [ { "role": string, "parts": [ { // Union field data can be only one of the following: "text": string, "inlineData": { "mimeType": string, "data": string }, "fileData": { "mimeType": string, "fileUri": string }, // End of list of possible types for union field data. "videoMetadata": { "startOffset": { "seconds": integer, "nanos": integer }, "endOffset": { "seconds": integer, "nanos": integer } } } ] } ], "systemInstruction": { "role": string, "parts": [ { "text": string } ] }, "tools": [ { "functionDeclarations": [ { "name": string, "description": string, "parameters": { object (OpenAPI Object Schema) } } ] } ], "safetySettings": [ { "category": enum (HarmCategory), "threshold": enum (HarmBlockThreshold) } ], "generationConfig": { "temperature": number, "topP": number, "topK": number, "candidateCount": integer, "maxOutputTokens": integer, "stopSequences": [ string ], "responseMimeType": string } }
Paramètres du modèle Gemini
Vous pouvez utiliser les paramètres suivants dans le corps de votre requête:
Paramètres | Description |
---|---|
role |
Rôle dans une conversation associée au contenu. La spécification d'un rôle est requise même dans les cas d'utilisation à un seul tour.
Les valeurs acceptées incluent les suivantes :
|
parts |
Parties ordonnées qui composent l'entrée. Les parties peuvent avoir différents types MIME.
Pour gemini-1.0-pro , seul le champ text est valide.
La limite de jeton est de 32 760.
Pour gemini-1.0-pro-vision , vous pouvez spécifier uniquement du texte, du texte et jusqu'à 16 images, ou du texte et une vidéo. La limite de jeton est de 16 384.
Pour gemini-1.5-pro , vous pouvez spécifier n'importe quelle combinaison et nombre de fichiers texte, image, vidéo et audio. La limite de jeton est de 1 000 000.
Pour calculer le nombre de jetons dans votre requête, consultez . |
text |
Instructions textuelles ou dialogue de chat à inclure dans la requête. |
inlineData |
Données d'octets sérialisés de l'image, du clip audio ou de l'extrait vidéo.
Pour gemini-1.0-pro-vision , vous pouvez spécifier une image au maximum avec inlineData . Pour spécifier jusqu'à 16 images, utilisez fileData .
|
mimeType |
Type de contenu de l'image ou de la vidéo spécifié dans les champs data ou fileUri . Les valeurs acceptées incluent les suivantes :
Cliquer pour développer les types MIME
Pour gemini-1.0-pro-vision , la durée maximale de la vidéo est de deux minutes.
Pour Gemini 1.5 Pro , la durée maximale d'un fichier audio est de 8,4 heures et la durée maximale d'un fichier vidéo (sans audio) est d'une heure. Pour en savoir plus, consultez la section Exigences multimédias pour Gemini 1.5 Pro.
Les fichiers texte doivent être encodés au format UTF-8. Le contenu du fichier texte est comptabilisé dans la limite du jeton. Aucune limite ne s'applique à la résolution d'image. |
data |
Encodage base64 de l'image ou de la vidéo à intégrer à la requête. Lorsque vous intégrez des contenus multimédias, vous devez également spécifier MIMETYPE.
Limite de taille : 20 Mo. |
fileUri |
URI Cloud Storage de l'image ou de la vidéo à inclure dans la requête. Le bucket qui stocke le fichier doit se trouver dans le même projet Google Cloud que celui qui envoie la requête. Vous devez également spécifier MIMETYPE.
La taille limite pour gemini-1.5-pro est de 2 Go.
Pour gemini-1.0-pro-vision , la taille maximale est de 20 Mo.
|
videoMetadata |
Facultatif. Pour les entrées vidéo, le décalage de début et de fin de la vidéo sous forme de durée. Par exemple, pour spécifier un extrait de 10 secondes commençant à 1:00, définissez "start_offset": { "seconds": 60 } et "end_offset": { "seconds": 70 } .
|
systemInstruction (bêta)
|
Facultatif. Disponible pour gemini-1.5-pro et gemini-1.0-pro-002 .
Instructions permettant au modèle de l'orienter vers de meilleures performances. Par exemple, "répondez de manière aussi concise que possible" ou "N'utilisez pas de termes techniques dans votre réponse". Les chaînes text sont comptabilisées dans la limite de jetons.
Le champ role de systemInstruction est ignoré et n'affecte pas les performances du modèle.
|
tools |
Morceau de code qui permet au système d'interagir avec des systèmes externes pour effectuer une action ou un ensemble d'actions en dehors du champ d'application et des connaissances du modèle. |
functionDeclarations |
Une ou plusieurs déclarations de fonction. Chaque déclaration de fonction contient des informations sur une fonction qui inclut les éléments suivants :
Pour en savoir plus, consultez la page Appel de fonction. |
category |
Catégorie de sécurité pour laquelle configurer un seuil. Les valeurs acceptées incluent les suivantes :
Cliquer pour développer les catégories de sécurité
|
threshold |
Seuil de blocage des réponses susceptibles d'appartenir à la catégorie de sécurité spécifiée en fonction de la probabilité.
|
temperature |
La température est utilisée pour l'échantillonnage pendant la génération des réponses, qui se produit lorsque topP et topK sont appliqués. La température permet de contrôler le degré de hasard dans la sélection des jetons.
Les températures inférieures sont idéales pour les requêtes qui nécessitent une réponse moins ouverte ou créative, tandis que des températures plus élevées peuvent conduire à des résultats plus diversifiés ou créatifs. Une température de 0 signifie que les jetons de probabilité les plus élevés sont toujours sélectionnés. Dans ce cas, les réponses pour une requête donnée sont principalement déterministes, mais une petite quantité de variation est toujours possible.
Si le modèle renvoie une réponse trop générique ou trop courte, ou s'il renvoie une réponse de remplacement, essayez d'augmenter la température.
|
maxOutputTokens |
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. Plage pour gemini-1.5-pro: 1-8192 (par défaut: 8192 )
Plage pour gemini-1.0-pro: 1-8192 (par défaut: 8192 )
Plage pour gemini-1.0-pro-vision: 1-2048 (par défaut: 2048 )
|
topK |
Top-K modifie la façon dont le modèle sélectionne les jetons pour la sortie. Une valeur top-K de 1 signifie que le prochain jeton sélectionné est le plus probable parmi tous les jetons du vocabulaire du modèle (également appelé décodage glouton), tandis qu'une valeur top-K de 3 signifie que le jeton suivant est sélectionné parmi les trois jetons les plus probables à l'aide de la température.
Pour chaque étape de sélection des jetons, les jetons top-K ayant les plus fortes probabilités sont échantillonnés. Les jetons sont ensuite filtrés en fonction du top-P avec le jeton final sélectionné à l'aide de l'échantillonnage de température. Spécifiez une valeur inférieure pour obtenir des réponses moins aléatoires et une valeur supérieure pour des réponses plus aléatoires. Plage : 1-40
gemini-1.0-pro et gemini-1.5-pro ne sont pas compatibles. topK
Par défaut pour gemini-1.0-pro-vision : 32
|
topP |
Top-P modifie la façon dont le modèle sélectionne les jetons pour la sortie. Les jetons sont sélectionnés en partant de la probabilité la plus forte (voir top-K) à la plus basse, jusqu'à ce que la somme de leurs probabilités soit égale à la valeur top-P. Par exemple, si les jetons A, B et C ont une probabilité de 0,3, 0,2 et 0,1 et que la valeur de top-P est 0.5 , le modèle sélectionne A ou B comme jeton suivant à l'aide de la température et exclut le jeton C comme candidat.
Spécifiez une valeur inférieure pour obtenir des réponses moins aléatoires et une valeur supérieure pour des réponses plus aléatoires. Plage : 0.0 - 1.0
gemini-1.5-pro : 0.94
Valeur par défaut pour gemini-1.0-pro : 1
Valeur par défaut pour gemini-1.0-pro-vision : 1
|
candidateCount |
Nombre de variantes de réponse à renvoyer.
Cette valeur doit être 1. |
stopSequences |
Spécifie une liste de chaînes qui indiquent au modèle d'arrêter de générer du texte si l'une des chaînes est détectée dans la réponse. Si une chaîne apparaît plusieurs fois dans la réponse, celle-ci effectue une troncation lors de la première rencontre.
Les chaînes sont sensibles à la casse.
Par exemple, si la réponse suivante est renvoyée lorsque stopSequences n'est pas spécifié :
public
static string reverse(string myString)
La réponse renvoyée avec stopSequences défini sur ["Str",
"reverse"] est alors la suivante :
public static string
Cinq éléments maximum dans la liste. |
responseMimeType (bêta)
|
Facultatif. Disponible pour gemini-1.5-pro .
Format de sortie du texte candidat généré. Types MIME acceptés :
|
Corps de la réponse
{ "candidates": [ { "content": { "parts": [ { "text": string } ] }, "finishReason": enum (FinishReason), "safetyRatings": [ { "category": enum (HarmCategory), "probability": enum (HarmProbability), "blocked": boolean } ], "citationMetadata": { "citations": [ { "startIndex": integer, "endIndex": integer, "uri": string, "title": string, "license": string, "publicationDate": { "year": integer, "month": integer, "day": integer } } ] } } ], "usageMetadata": { "promptTokenCount": integer, "candidatesTokenCount": integer, "totalTokenCount": integer } }
Élément de réponse | Description |
---|---|
text |
Texte généré. |
finishReason |
Raison pour laquelle le modèle a cessé de générer des jetons. Si ce champ est vide, le modèle n'a pas cessé de générer les jetons. Étant donné que la réponse utilise la requête pour le contexte, il n'est pas possible de modifier le comportement de la manière dont le modèle cesse de générer des jetons.
|
category |
Catégorie de sécurité pour laquelle configurer un seuil. Les valeurs acceptées incluent les suivantes :
Cliquer pour développer les catégories de sécurité
|
probability |
Niveaux de probabilité de préjudice dans le contenu.
|
blocked |
Une option boolean associée à un attribut de sécurité qui indique si l'entrée ou la sortie du modèle a été bloquée. Si la valeur blocked est définie sur true , le champ errors de la réponse contient un ou plusieurs codes d'erreur. Si la valeur blocked est définie sur false , la réponse n'inclut pas le champ errors .
|
startIndex |
Entier spécifiant l'emplacement du début d'une citation dans le contenu. |
endIndex |
Entier qui spécifie l'emplacement de la fin de la citation dans le fichier content .
|
url |
URL de la source d'une citation. Une source d'URL peut être un site Web d'actualités ou un dépôt GitHub. |
title |
Titre de la source d'une citation. Il peut s'agir, par exemple, du titre d'un article d'actualité ou d'un livre. |
license |
Licence associée à une citation. |
publicationDate |
Date à laquelle une citation a été publiée. Ses formats valides sont YYYY , YYYY-MM et YYYY-MM-DD .
|
promptTokenCount |
Nombre de jetons dans la requête. |
candidatesTokenCount |
Nombre de jetons dans la ou les réponses. |
totalTokenCount |
Nombre de jetons dans la requête et la ou les réponses. |
Exemples de requêtes
Texte
REST
Pour tester une requête de texte à l'aide de l'API Vertex AI avec des événements envoyés par le serveur (SSE) activés, envoyez une requête POST au point de terminaison du modèle de l'éditeur avec ?alt=sse
à la fin de l'URL.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : l'ID de votre projet.
Méthode HTTP et URL :
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent?alt=sse
Corps JSON de la requête :
{ "contents": { "role": "user", "parts": { "text": "Give me a recipe for banana bread." } }, "safety_settings": { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_LOW_AND_ABOVE" }, "generation_config": { "temperature": 0.2, "topP": 0.8, "topK": 40 } }
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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent?alt=sse"
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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent?alt=sse" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON semblable à l'exemple de réponse.
Chat
Consultez également la section Envoyer des requêtes de requête de chat (Gemini).
REST
Pour tester une requête de chat à l'aide de l'API Vertex AI avec des événements envoyés par le serveur (SSE) activés, envoyez une requête POST au point de terminaison du modèle de l'éditeur avec ?alt=sse
à la fin de l'URL.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : l'ID de votre projet.
Méthode HTTP et URL :
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent?alt=sse
Corps JSON de la requête :
{ "contents": [ { "role": "USER", "parts": { "text": "Hello!" } }, { "role": "MODEL", "parts": { "text": "Argh! What brings ye to my ship?" } }, { "role": "USER", "parts": { "text": "Wow! You are a real-life priate!" } } ], "safety_settings": { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_LOW_AND_ABOVE" }, "generation_config": { "temperature": 0.2, "topP": 0.8, "topK": 40, "maxOutputTokens": 200, } }
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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent?alt=sse"
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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent?alt=sse" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON semblable à l'exemple de réponse.
Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Node.js.
Pour vous authentifier auprès de Vertex AI, 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.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Java.
Pour vous authentifier auprès de Vertex AI, 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.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Go.
Pour vous authentifier auprès de Vertex AI, 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.
Multimodal
Consultez également la page Envoyer des requêtes d'invites multimodales.
REST
Pour tester une requête multimodale à l'aide de l'API Vertex AI, envoyez une requête POST au point de terminaison du modèle du diffuseur.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : l'ID de votre projet.
Méthode HTTP et URL :
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro-vision:streamGenerateContent
Corps JSON de la requête :
{ "contents": { "role": "user", "parts": [ { "fileData": { "mimeType": "image/jpeg", "fileUri": "gs://cloud-samples-data/ai-platform/flowers/daisy/10559679065_50d2b16f6d.jpg" } }, { "text": "Describe this picture." } ] }, "safety_settings": { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_LOW_AND_ABOVE" }, "generation_config": { "temperature": 0.4, "topP": 1.0, "topK": 32, "maxOutputTokens": 2048 } }
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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro-vision:streamGenerateContent"
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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro-vision:streamGenerateContent" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON semblable à l'exemple de réponse.
Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Node.js.
Pour vous authentifier auprès de Vertex AI, 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.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Java.
Pour vous authentifier auprès de Vertex AI, 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.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Go.
Pour vous authentifier auprès de Vertex AI, 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.
C#
Avant d'essayer cet exemple, suivez les instructions de configuration pour C# décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI C#.
Pour vous authentifier auprès de Vertex AI, 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.
Fonction
Consultez également la page Appel de fonction.
REST
Pour tester une requête de fonction à l'aide de l'API Vertex AI, envoyez une requête POST au point de terminaison du modèle du diffuseur.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : l'ID de votre projet.
Méthode HTTP et URL :
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent
Corps JSON de la requête :
{ "contents": { "role": "user", "parts": { "text": "Which theaters in Mountain View show Barbie movie?" } }, "tools": [ { "function_declarations": [ { "name": "find_movies", "description": "find movie titles currently playing in theaters based on any description, genre, title words, etc.", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "description": { "type": "string", "description": "Any kind of description including category or genre, title words, attributes, etc." } }, "required": [ "description" ] } }, { "name": "find_theaters", "description": "find theaters based on location and optionally movie title which are is currently playing in theaters", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "movie": { "type": "string", "description": "Any movie title" } }, "required": [ "location" ] } }, { "name": "get_showtimes", "description": "Find the start times for movies playing in a specific theater", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "movie": { "type": "string", "description": "Any movie title" }, "theater": { "type": "string", "description": "Name of the theater" }, "date": { "type": "string", "description": "Date for requested showtime" } }, "required": [ "location", "movie", "theater", "date" ] } } ] } ] }
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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent"
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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON semblable à l'exemple de réponse.
Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
Exemples de réponses
Texte
data: {"candidates": [{"content": {"role": "model","parts": [{"text": "Ingredients:\n\n- 3 ripe bananas, mashed\n- 1 cup sugar"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": "\n- 1/2 cup (1 stick) unsalted butter, softened\n"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": "- 2 large eggs\n- 2 cups all-purpose flour\n- 1 teaspoon baking soda\n- 1/2 teaspoon salt\n- "}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": "1/2 cup chopped walnuts (optional)\n\nInstructions:\n\n1. Preheat oven to 350 degrees F (175 degrees C). Grease"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": " and flour a 9x5 inch loaf pan.\n2. In a large bowl, cream together the butter and sugar until light and fluffy. Beat in the eggs one at a time, then stir in the mashed bananas.\n3"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}],"citationMetadata": {"citations": [{"startIndex": 322,"endIndex": 451,"uri": "https://discover.texasrealfood.com/texas-home-cooking/whats-in-season-plums-exploring-health-benefits-varieties-and-recipes"}]}}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": ". In a separate bowl, whisk together the flour, baking soda, and salt. Gradually add the dry ingredients to the wet ingredients, mixing until just combined. Fold in the walnuts, if desired.\n4. Pour the batter into the"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}],"citationMetadata": {"citations": [{"startIndex": 472,"endIndex": 614,"uri": "https://commandame.com/urban-cookhouse-half-baked-cookie-recipe/"}]}}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": " prepared loaf pan and bake for 50-60 minutes, or until a toothpick inserted into the center comes out clean.\n5. Let the bread cool in the pan for 10 minutes before turning it out onto a wire rack to cool completely."}]},"finishReason": "STOP","safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}],"citationMetadata": {"citations": [{"startIndex": 666,"endIndex": 796,"uri": "https://dessertdonelight.com/healthy-hawaiian-banana-bread/"},{"startIndex": 728,"endIndex": 851,"uri": "https://earlsgrocery.com/gluten-free-bread/gluten-free-yeast-free-bread-healthy-and-nutition"}]}}],"usageMetadata": {"promptTokenCount": 8,"candidatesTokenCount": 245,"totalTokenCount": 253}}
Chat
data: {"candidates": [{"content": {"role": "model","parts": [{"text": "Avast there, landlubber! Ye be mistaken. I be but a"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "LOW"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": " humble pirate of the seven seas, brought to life by the magic of artificial intelligence"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": ". I be no real-life pirate, but I be mighty good at pretendin'!"}]},"finishReason": "STOP","safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}],"usageMetadata": {"promptTokenCount": 23,"candidatesTokenCount": 50,"totalTokenCount": 73}}
Multimode
[{
"candidates": [
{
"content": {
"role": "model",
"parts": [
{
"text": " A daisy is growing up through a pile of brown and yellow fall leaves"
}
]
},
"finishReason": "STOP",
"safetyRatings": [
{
"category": "HARM_CATEGORY_HARASSMENT",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"probability": "NEGLIGIBLE"
}
]
}
],
"usageMetadata": {
"promptTokenCount": 262,
"candidatesTokenCount": 14,
"totalTokenCount": 276
}
}]
Fonction
[{
"candidates": [
{
"content": {
"parts": [
{
"functionCall": {
"name": "find_theaters",
"args": {
"movie": "Barbie",
"location": "Mountain View, CA"
}
}
}
]
},
"finishReason": "STOP",
"safetyRatings": [
{
"category": "HARM_CATEGORY_HARASSMENT",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"probability": "NEGLIGIBLE"
}
]
}
],
"usageMetadata": {
"promptTokenCount": 9,
"totalTokenCount": 9
}
}]
Étapes suivantes
Découvrez comment utiliser l'API Vertex AI Gemini :
- Découvrez comment envoyer des requêtes d'invites de chat.
- Découvrez comment envoyer des requêtes multimodales.
- Découvrez comment appeler des fonctions.
- Découvrez comment obtenir un nombre de jetons.
- Découvrez comment configurer des attributs de sécurité.