Aggiornare una cache contestuale

Puoi eseguire l'aggiornamento alla scadenza di una cache di contesto. La scadenza predefinita di un 60 minuti dopo la creazione. Una cache di contesto scaduta è eliminate durante un processo di garbage collection e non possono essere utilizzate o aggiornate. A aggiornare l'ora di scadenza di una cache di contesto non scaduta, aggiornare una delle seguenti proprietà:

  • ttl: il numero di secondi e nanosecondi in cui la cache risiede dopo creato o dopo l'aggiornamento di ttl prima che scada. Quando imposti ttl, il expireTime della cache è stato aggiornato.

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

Aggiorna la cache di contesto utilizzando il parametro ttl

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

Python

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta SDK Vertex AI per Python documentazione di riferimento dell'API.

Risposte dinamiche e non dinamiche

Puoi scegliere se il modello genera risposte flussi di dati oppure risposte non in streaming. Per le risposte dinamiche, ricevi ogni risposta non appena viene generato il relativo token di output. Per le risposte non dinamiche, ricevi tutte le risposte dopo che sono stati generati tutti i token di output.

Per una risposta in modalità flusso, utilizza il parametro stream in generate_content.

  response = model.generate_content(contents=[...], stream = True)
  

Per una risposta non in streaming, rimuovi il parametro o impostalo su False.

Codice di esempio

import vertexai
import datetime

from vertexai.preview import caching

# TODO(developer): Update and un-comment below lines
# project_id = "PROJECT_ID"
# cache_id = "CACHE_ID"

vertexai.init(project=project_id, location="us-central1")

cached_content = caching.CachedContent(cached_content_name=cache_id)

# Update the expiration time by 1 hour
cached_content.update(ttl=datetime.timedelta(hours=1))

cached_content.refresh()
print(cached_content.expire_time)

REST

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

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

  • PROJECT_ID: il tuo ID progetto.
  • LOCATION: la regione in cui viene inviata la richiesta crea la cache di contesto è stato elaborato.
  • CACHE_ID: l'ID della cache di contesto. L'ID della cache di contesto viene restituito quando crei la cache di contesto. Tu Può anche trovare gli ID delle cache di contesto elencando le cache di contesto per un progetto Google Cloud in uso. Per ulteriori informazioni, vedi creare una cache di contesto e elencare le cache contestuali.
  • SECONDS: un float che specifica il componente secondi della durata prima della scadenza della cache.
  • NANOSECONDS: un float che specifica il componente dei nanosecondi della durata prima della scadenza della cache.

Metodo HTTP e URL:

PATCH https://LOCATION-aiplatform.googleapis.com/v1beta1/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. ed esegui questo comando:

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/v1beta1/projects/PROJECT_ID/locations/LOCATION/cachedContents/CACHE_ID"

PowerShell

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

$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/v1beta1/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_NUMBER="PROJECT_NUMBER"
LOCATION="us-central1"
PROJECT_ID="PROJECT_ID"
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_NUMBER}/locations/${LOCATION}/cachedContents/${CACHE_ID}" -d \
'{
   "ttl": {"seconds":"3600","nanos":"0"}
}'

Aggiorna la cache di contesto utilizzando il parametro expire_time

Di seguito è riportato un esempio di un comando curl che utilizza expire_time per aggiornare la relativa ora di scadenza alle 09:00 del 30 giugno 2024.

REST

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

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

  • PROJECT_ID: il tuo ID progetto.
  • LOCATION: la regione in cui viene inviata la richiesta crea la cache di contesto è stato elaborato.
  • CACHE_ID: l'ID della cache di contesto. Puoi trovare l'ID nella risposta quando create thec ontext cache.
  • EXPIRE_TIME: un Timestamp che specifica l'ora in cui scade la cache contestuale.

Metodo HTTP e URL:

PATCH https://LOCATION-aiplatform.googleapis.com/v1beta1/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. ed esegui questo comando:

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/v1beta1/projects/PROJECT_ID/locations/LOCATION/cachedContents/CACHE_ID"

PowerShell

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

$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/v1beta1/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_NUMBER="PROJECT_NUMBER"
LOCATION="us-central1"
PROJECT_ID="PROJECT_ID"
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_NUMBER}/locations/${LOCATION}/cachedContents/${CACHE_ID}" -d \
'{
   "expire_time":"2024-06-30T09:00:00.000000Z"
}' 

Passaggi successivi