컨텍스트 캐시 업데이트

컨텍스트 캐시가 만료되면 업데이트할 수 있습니다. 컨텍스트 캐시의 기본 만료 시간은 생성 시간으로부터 60분 후입니다. 만료된 컨텍스트 캐시는 가비지 컬렉션 프로세스 중에 삭제되며 사용하거나 업데이트할 수 없습니다. 만료되지 않은 컨텍스트 캐시의 만료 시간을 업데이트하려면 다음 속성 중 하나를 업데이트하세요.

  • ttl - 캐시가 생성된 후 또는 ttl이 만료되기 전에 업데이트된 후 캐시가 유지되는 시간(초 및 나노초)입니다. ttl을 설정하면 캐시의 expireTime이 업데이트됩니다.

  • expire_time - 컨텍스트 캐시가 만료되는 절대 날짜와 시간을 지정하는 Timestamp입니다.

ttl 매개변수를 사용하여 컨텍스트 캐시 업데이트

다음은 만료 시간을 3,600초씩 업데이트하는 curl 명령어의 예입니다.

Gen AI SDK for Python

설치

pip install --upgrade google-genai
자세한 내용은 SDK 참고 문서를 참조하세요.

Vertex AI에서 생성형 AI SDK를 사용하도록 환경 변수를 설정합니다.

# 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

Vertex AI API를 사용하여 게시자 모델 엔드포인트에 PATCH 요청을 보내면 REST를 사용하여 컨텍스트 캐시를 업데이트할 수 있습니다. 다음 예는 ttl 매개변수를 사용하여 만료일을 업데이트하는 방법을 보여줍니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • LOCATION: 컨텍스트 캐시 만들기 요청이 처리된 리전입니다.
  • CACHE_ID: 컨텍스트 캐시 ID입니다. 컨텍스트 캐시를 만들 때 컨텍스트 캐시 ID가 반환됩니다. 또한 다음을 사용하여 Google Cloud 프로젝트의 컨텍스트 캐시를 나열해 컨텍스트 캐시 ID를 찾을 수도 있습니다. 자세한 내용은 컨텍스트 캐시 만들기컨텍스트 캐시 나열을 참조하세요.
  • SECONDS: 캐시가 만료되기 전까지 기간의 초 부분을 지정하는 float입니다.
  • NANOSECONDS: 캐시가 만료되기 전까지 기간의 나노초 부분을 지정하는 float입니다.

HTTP 메서드 및 URL:

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

JSON 요청 본문:

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

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

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

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$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

다음과 비슷한 JSON 응답이 표시됩니다.

curl 명령어 예시

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"}
}'

expire_time 매개변수를 사용하여 컨텍스트 캐시 업데이트

다음은 expire_time 매개변수를 사용하여 만료 시간을 2024년 6월 30일 오전 9시로 업데이트하는 curl 명령어의 예입니다.

REST

Vertex AI API를 사용하여 게시자 모델 엔드포인트에 PATCH 요청을 보내면 REST를 사용하여 컨텍스트 캐시를 업데이트할 수 있습니다. 다음 예는 expire_time 매개변수를 사용하여 만료일을 업데이트하는 방법을 보여줍니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

HTTP 메서드 및 URL:

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

JSON 요청 본문:

{
   "expire_time":"EXPIRE_TIME"
}

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

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

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$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

다음과 비슷한 JSON 응답이 표시됩니다.

curl 명령어 예시

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"
}'

다음 단계