Vous pouvez utiliser les API REST ou le SDK Python pour référencer le contenu stocké dans un cache de contexte dans une application d'IA générative. Avant de pouvoir l'utiliser, vous devez d'abord créer le cache de contexte.
L'objet de cache de contexte que vous utilisez dans votre code inclut les propriétés suivantes :
name: nom de la ressource du cache de contexte. Son format estprojects/PROJECT_NUMBER/locations/LOCATION/cachedContents/CACHE_ID. Lorsque vous créez un cache de contexte, vous pouvez trouver son nom de ressource dans la réponse. Le numéro de projet est un identifiant numérique de votre projet. L'ID de cache est un ID pour votre cache. Lorsque vous spécifiez un cache de contexte dans votre code, vous devez utiliser le nom complet de la ressource de cache de contexte. Voici un exemple qui montre comment spécifier un nom de ressource de contenu mis en cache dans un corps de requête :"cached_content": "projects/123456789012/locations/us-central1/123456789012345678"model: nom de ressource du modèle utilisé pour créer le cache. Son format estprojects/PROJECT_NUMBER/locations/LOCATION/publishers/PUBLISHER_NAME/models/MODEL_ID.createTime:Timestampqui spécifie la date et l'heure de création du cache de contexte.updateTime:Timestampqui spécifie la date et l'heure de la dernière mise à jour d'un cache de contexte. Une fois un cache de contexte créé, et avant qu'il ne soit mis à jour, sescreateTimeetupdateTimesont identiques.expireTime:Timestampqui spécifie la date et l'heure d'expiration d'un cache de contexte. La valeurexpireTimepar défaut se situe 60 minutes après la valeurcreateTime. Vous pouvez mettre à jour le cache avec un nouveau délai d'expiration. Pour en savoir plus, consultez Mettre à jour le cache de contexte. Une fois qu'un cache a expiré, il est marqué pour suppression. Ne partez pas du principe qu'il peut être utilisé ou mis à jour. Si vous devez utiliser un cache de contexte qui a expiré, vous devez le recréer avec un délai d'expiration approprié.
Restrictions d'utilisation du cache de contexte
Vous pouvez spécifier les fonctionnalités suivantes lorsque vous créez un cache de contexte. Vous ne devez pas les spécifier à nouveau dans votre requête :
Propriété
GenerativeModel.system_instructions. Cette propriété permet d'indiquer des instructions au modèle avant qu'il ne reçoive des instructions d'un utilisateur. Pour en savoir plus, consultez Instructions système.Propriété
GenerativeModel.tool_config. La propriététool_configpermet de spécifier les outils utilisés par le modèle Gemini, comme un outil utilisé par la fonctionnalité d'appel de fonction.Propriété
GenerativeModel.tools. La propriétéGenerativeModel.toolspermet de spécifier des fonctions pour créer une application d'appel de fonction. Pour en savoir plus, consultez Appel de fonction.
Utiliser un exemple de cache de contexte
Vous trouverez ci-dessous la procédure à suivre pour utiliser un cache de contexte. Lorsque vous utilisez un cache de contexte, vous ne pouvez pas spécifier les propriétés suivantes :
GenerativeModel.system_instructionsGenerativeModel.tool_configGenerativeModel.tools
Python
Installation
pip install --upgrade google-genai
Pour en savoir plus, consultez la documentation de référence du SDK.
Définissez des variables d'environnement pour utiliser le SDK Gen AI avec Vertex AI :
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Go
Découvrez comment installer ou mettre à jour le Go.
Pour en savoir plus, lisez la documentation de référence du SDK.
Définissez des variables d'environnement pour utiliser le SDK Gen AI avec Vertex AI :
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Java
Découvrez comment installer ou mettre à jour le Java.
Pour en savoir plus, lisez la documentation de référence du SDK.
Définissez des variables d'environnement pour utiliser le SDK Gen AI avec Vertex AI :
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Node.js
Installer
npm install @google/genai
Pour en savoir plus, consultez la documentation de référence du SDK.
Définissez des variables d'environnement pour utiliser le SDK Gen AI avec Vertex AI :
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
REST
Vous pouvez vous servir de REST pour utiliser un cache de contexte avec une requête en envoyant une requête POST au point de terminaison du modèle de l'éditeur à l'aide de l'API Vertex AI.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet.
- LOCATION : région dans laquelle la requête de création de cache de contexte a été traitée.
- MIME_TYPE : requête textuelle à envoyer au modèle.
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-2.0-flash-001:generateContent
Corps JSON de la requête :
{
"cachedContent": "projects/PROJECT_NUMBER/locations/LOCATION/cachedContents/CACHE_ID",
"contents": [
{"role":"user","parts":[{"text":"PROMPT_TEXT"}]}
],
"generationConfig": {
"maxOutputTokens": 8192,
"temperature": 1,
"topP": 0.95,
},
"safetySettings": [
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_HARASSMENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
}
],
}
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/publishers/google/models/gemini-2.0-flash-001:generateContent"
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/publishers/google/models/gemini-2.0-flash-001:generateContent" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON semblable à la suivante.
Exemple de commande curl
LOCATION="us-central1"
MODEL_ID="gemini-2.0-flash-001"
PROJECT_ID="test-project"
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:generateContent" -d \
'{
"cachedContent": "projects/${PROJECT_NUMBER}/locations/${LOCATION}/cachedContents/${CACHE_ID}",
"contents": [
{"role":"user","parts":[{"text":"What are the benefits of exercise?"}]}
],
"generationConfig": {
"maxOutputTokens": 8192,
"temperature": 1,
"topP": 0.95,
},
"safetySettings": [
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_HARASSMENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
}
],
}'
- Découvrez comment mettre à jour le délai d'expiration d'un cache de contexte.
- Découvrez comment créer un cache de contexte.
- Découvrez comment obtenir des informations sur tous les caches de contexte associés à un projet Google Cloud .
- Découvrez comment supprimer un cache de contexte.