Ce guide explique comment utiliser la mise en cache du contexte avec vos modèles Gemini affinés pour améliorer les performances et réduire les coûts pour les requêtes qui incluent de grandes quantités de contexte. Cette page décrit les éléments suivants : En mettant en cache le contexte fréquemment utilisé, vous évitez de renvoyer de grandes quantités de données à chaque requête envoyée à votre modèle affiné. Le processus de gestion ( La mise en cache du contexte est compatible avec les modèles affinés à partir du modèle de base suivant : Avant de commencer, vous avez besoin des éléments suivants : Le processus de création d'un cache de contexte pour un modèle affiné est semblable à celui d'un modèle de base. Pour connaître la procédure générale, consultez Créer un cache de contexte. La principale différence est que vous devez spécifier la version de votre modèle affiné dans le champ L'exemple suivant montre comment créer un cache de contexte avec un modèle Gemini ajusté.
Vous pouvez utiliser REST pour créer un cache de contexte à l'aide de l'API Vertex AI afin d'envoyer une requête POST au point de terminaison du modèle de l'éditeur. L'exemple suivant montre comment créer un cache de contexte à l'aide d'un fichier stocké dans un bucket Cloud Storage.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
Méthode HTTP et URL :
Corps JSON de la requête :
Pour envoyer votre requête, choisissez l'une des options suivantes : Enregistrez le corps de la requête dans un fichier nommé Enregistrez le corps de la requête dans un fichier nommé Vous devriez recevoir une réponse JSON de ce type :
Le processus d'utilisation d'un cache de contexte avec un modèle affiné est semblable à celui d'un modèle de base. Pour connaître la procédure générale, consultez Utiliser un cache de contexte. La principale différence est que vous envoyez la requête au point de terminaison de votre modèle affiné déployé ( Lorsque vous utilisez un cache de contexte, vous ne pouvez pas spécifier les propriétés suivantes dans votre requête : L'exemple de code suivant montre comment utiliser un cache de contexte avec un modèle Gemini ajusté.
Vous pouvez utiliser REST pour spécifier 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 :
Méthode HTTP et URL :
Corps JSON de la requête :
Pour envoyer votre requête, choisissez l'une des options suivantes : Enregistrez le corps de la requête dans un fichier nommé Enregistrez le corps de la requête dans un fichier nommé Vous devriez recevoir une réponse JSON semblable à la suivante.
Read, Update, Delete) d'un cache de contexte est le même pour les modèles Gemini de base et ceux affinés. Cette page se concentre sur les étapes spécifiques à la création et à l'utilisation d'un cache avec un modèle affiné.Modèles compatibles
gemini-2.0-flash-001Prérequis
Créer un cache de contexte pour un modèle affiné
model au lieu du modèle de base. Utilisez le format projects/{PROJECT}/locations/{LOCATION}/models/{MODEL}@{VERSION}.REST
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cachedContents
{
"model": "projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID@MODEL_VERSION",
"displayName": "CACHE_DISPLAY_NAME",
"contents": [{
"role": "user",
"parts": [{
"fileData": {
"mimeType": "MIME_TYPE",
"fileUri": "CONTENT_TO_CACHE_URI"
}
}]
},
{
"role": "model",
"parts": [{
"text": "This is sample text to demonstrate explicit caching."
}]
}]
}
curl
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/cachedContents"PowerShell
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/cachedContents" | Select-Object -Expand ContentExemple de commande curl
LOCATION="us-central1"
MODEL_ID="model-id"
PROJECT_ID="test-project"
MODEL_VERSION=1
MIME_TYPE="video/mp4"
CACHED_CONTENT_URI="gs://path-to-bucket/video-file-name.mp4"
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}/cachedContents -d \
'{
"model":"projects/${PROJECT_ID}/locations/${LOCATION}/models/${MODEL_ID}@${MODEL_VERSION}",
"contents": [
{
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "${MIME_TYPE}",
"fileUri": "${CACHED_CONTENT_URI}"
}
}
]
}
]
}'
Utiliser un cache de contexte pour un modèle affiné
.../endpoints/{ENDPOINT_ID}) au lieu du point de terminaison du modèle de base (.../publishers/google/models/{MODEL}).
GenerativeModel.system_instructionsGenerativeModel.tool_configGenerativeModel.toolsREST
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:generateContent
{
"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"
}
],
}
curl
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/ENDPOINT_ID:generateContent"PowerShell
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/ENDPOINT_ID:generateContent" | Select-Object -Expand ContentExemple de commande curl
LOCATION="us-central1"
PROJECT_ID="test-project"
ENDPOINT_ID=987654321
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}/endpoints/${ENDPOINT_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"
}
],
}'
Mise en cache du contexte pour les modèles Gemini ajustés
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/19 (UTC).