Aggiornare una cache di contesto

Puoi eseguire l'aggiornamento quando una cache di contesto scade. La scadenza predefinita di una cache di contesto è 60 minuti dopo la relativa ora di creazione. Una cache di contesto scaduta viene eliminata durante un processo di raccolta dei rifiuti e non può essere utilizzata o aggiornata. Per aggiornare la data di scadenza di una cache di contesto non scaduta, aggiorna una delle seguenti proprietà:

  • ttl: il numero di secondi e nanosecondi di vita della cache dopo la sua creazione o dopo l'aggiornamento di ttl prima della scadenza. Quando imposti ttl, il expireTime della cache viene aggiornato.

  • expire_time: un Timestamp che specifica la data e l'ora assolute di scadenza della cache di contesto.

Aggiorna la cache del contesto utilizzando il relativo parametro ttl

Di seguito è riportato un esempio di comando curl che aggiorna la scadenza di 3600 secondi.

Gen AI SDK for Python

Installa

pip install --upgrade google-genai
Per scoprire di più, consulta la documentazione di riferimento dell'SDK.

Imposta le variabili di ambiente per utilizzare l'SDK Gen AI con 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=us-central1
export GOOGLE_GENAI_USE_VERTEXAI=True

from datetime import datetime as dt
from datetime import timezone as tz
from datetime import timedelta

from google import genai
from google.genai.types import HttpOptions, UpdateCachedContentConfig

client = genai.Client(http_options=HttpOptions(api_version="v1beta1"))

# Get content cache by name
# cache_name = "projects/111111111111/locations/us-central1/cachedContents/1111111111111111111"
content_cache = client.caches.get(name=cache_name)
print("Expire time", content_cache.expire_time)
# Example response
#   Expire time 2025-02-20 15:50:18.434482+00:00

# Update expire time using TTL
content_cache = client.caches.update(
    name=cache_name, config=UpdateCachedContentConfig(ttl="36000s")
)
time_diff = content_cache.expire_time - dt.now(tz.utc)
print("Expire time(after update):", content_cache.expire_time)
print("Expire time(in seconds):", time_diff.seconds)
# Example response
#   Expire time(after update): 2025-02-14 01:51:42.571696+00:00
#   Expire time(in seconds): 35999

# Update expire time using specific time stamp
next_week_utc = dt.now(tz.utc) + timedelta(days=7)
content_cache = client.caches.update(
    name=cache_name, config=UpdateCachedContentConfig(expireTime=next_week_utc)
)
print("Expire time(after update):", content_cache.expire_time)
# Example response
#   Expire time(after update): 2025-02-20 15:51:42.614968+00:00

REST

Puoi utilizzare REST per creare un aggiornamento della cache del contesto utilizzando l'API Vertex AI per inviare una richiesta PATCH all'endpoint del modello del publisher. L'esempio seguente mostra come aggiornare la data di scadenza utilizzando il parametro ttl.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto.
  • LOCATION: la regione in cui è stata elaborata la richiesta di creazione della cache di contesto.
  • CACHE_ID: l'ID della cache del contesto. L'ID della cache di contesto viene restituito quando viene creata la cache di contesto. Puoi anche trovare gli ID cache di contesto elencando le cache di contesto per un progetto Google Cloud in uso. Per ulteriori informazioni, consulta Creare una cache di contesto e Elenco delle cache di contesto.
  • SECONDS: un float che specifica il componente secondi della durata prima della scadenza della cache.
  • NANOSECONDS: un float che specifica il componente in nanosecondi della durata prima della scadenza della cache.

Metodo HTTP e URL:

PATCH https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cachedContents/CACHE_ID

Corpo JSON della richiesta:

{
  "seconds":"SECONDS",
  "nanos":"NANOSECONDS"
}

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

curl -X PATCH \
-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/CACHE_ID"

PowerShell

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cachedContents/CACHE_ID" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

Comando curl di esempio

PROJECT_ID="PROJECT_ID"
LOCATION="us-central1"
CACHE_ID="CACHE_ID"

curl \
-X PATCH \
-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/${CACHE_ID}" -d \
'{
   "ttl": {"seconds":"3600","nanos":"0"}
}'

Aggiorna la cache del contesto utilizzando il relativo parametro expire_time

Di seguito è riportato un esempio di comando curl che utilizza il parametro expire_time per aggiornare la data e l'ora di scadenza alle ore 09:00 del 30 giugno 2024.

REST

Puoi utilizzare REST per creare un aggiornamento della cache del contesto utilizzando l'API Vertex AI per inviare una richiesta PATCH all'endpoint del modello del publisher. L'esempio seguente mostra come aggiornare la data di scadenza utilizzando il parametro expire_time.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

Metodo HTTP e URL:

PATCH https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cachedContents/CACHE_ID

Corpo JSON della richiesta:

{
   "expire_time":"EXPIRE_TIME"
}

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

curl -X PATCH \
-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/CACHE_ID"

PowerShell

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cachedContents/CACHE_ID" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

Comando curl di esempio

PROJECT_ID="PROJECT_ID"
LOCATION="us-central1"
CACHE_ID="CACHE_ID"

curl \
-X PATCH \
-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/${CACHE_ID}" -d \
'{
   "expire_time":"2024-06-30T09:00:00.000000Z"
}'

Passaggi successivi