컨텍스트 캐시가 만료되면 업데이트할 수 있습니다. 컨텍스트 캐시의 기본 만료 시간은 생성 시간으로부터 60분 후입니다. 만료된 컨텍스트 캐시는 가비지 컬렉션 프로세스 중에 삭제되며 사용할 수 없거나 업데이트할 수 없습니다. 만료되지 않은 컨텍스트 캐시의 만료 시간을 업데이트하려면 다음 속성 중 하나를 업데이트하세요.
ttl
- 캐시가 생성된 후 또는ttl
가 만료되기 전에 업데이트된 후 캐시가 유지되는 시간(초 및 나노초)입니다.ttl
을 설정하면 캐시의expireTime
이 업데이트됩니다.expire_time
- 컨텍스트 캐시가 만료되는 절대 날짜와 시간을 지정하는Timestamp
입니다.
ttl
매개변수를 사용하여 컨텍스트 캐시 업데이트
다음은 만료 시간을 3,600초씩 업데이트하는 curl 명령어의 예입니다.
Python
Vertex AI SDK for Python을 설치하거나 업데이트하는 방법은 Vertex AI SDK for Python 설치를 참조하세요. 자세한 내용은 Vertex AI SDK for Python API 참고 문서를 참조하세요.
스트리밍 및 비스트리밍 응답
모델이 스트리밍 응답 또는 비스트리밍 응답을 생성하는지 여부를 선택할 수 있습니다. 스트리밍 응답의 경우 출력 토큰이 생성되는 즉시 각 응답이 수신됩니다. 비스트리밍 응답의 경우 모든 출력 토큰이 생성된 후에 모든 응답이 수신됩니다.
스트리밍 응답의 경우 generate_content
의 stream
매개변수를 사용합니다.
response = model.generate_content(contents=[...], stream = True)
비스트리밍 응답의 경우 매개변수를 삭제하거나 매개변수를 False
로 설정합니다.
샘플 코드
Go
이 샘플을 사용해 보기 전에 Vertex AI 빠른 시작의 Go 설정 안내를 따르세요. 자세한 내용은 Gemini용 Vertex AI Go SDK 참고 문서를 참조하세요.
Vertex AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
스트리밍 및 비스트리밍 응답
모델이 스트리밍 응답 또는 비스트리밍 응답을 생성하는지 여부를 선택할 수 있습니다. 스트리밍 응답의 경우 출력 토큰이 생성되는 즉시 각 응답이 수신됩니다. 비스트리밍 응답의 경우 모든 출력 토큰이 생성된 후에 모든 응답이 수신됩니다.
스트리밍 응답의 경우 GenerateContentStream
메서드를 사용합니다.
iter := model.GenerateContentStream(ctx, genai.Text("Tell me a story about a lumberjack and his giant ox. Keep it very short."))
비스트리밍 응답의 경우 GenerateContent
메서드를 사용합니다.
resp, err := model.GenerateContent(ctx, genai.Text("What is the average size of a swallow?"))
샘플 코드
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/v1beta1/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/v1beta1/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/v1beta1/projects/PROJECT_ID/locations/LOCATION/cachedContents/CACHE_ID" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
curl 명령어 예시
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"}
}'
expire_time
매개변수를 사용하여 컨텍스트 캐시 업데이트
다음은 expire_time
매개변수를 사용하여 만료 시간을 2024년 6월 30일 오전 9시로 업데이트하는 curl 명령어의 예입니다.
REST
Vertex AI API를 사용하여 게시자 모델 엔드포인트에 PATCH 요청을 보내면 REST를 사용하여 컨텍스트 캐시를 업데이트할 수 있습니다. 다음 예는 expire_time
매개변수를 사용하여 만료일을 업데이트하는 방법을 보여줍니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID
- LOCATION: 컨텍스트 캐시 만들기 요청이 처리된 리전입니다.
- CACHE_ID: 컨텍스트 캐시 ID입니다. 컨텍스트 캐시를 만들 때 응답에서 ID를 찾을 수 있습니다.
- EXPIRE_TIME: 컨텍스트 캐시가 만료되는 시간을 지정하는
Timestamp
입니다.
HTTP 메서드 및 URL:
PATCH https://LOCATION-aiplatform.googleapis.com/v1beta1/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/v1beta1/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/v1beta1/projects/PROJECT_ID/locations/LOCATION/cachedContents/CACHE_ID" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
curl 명령어 예시
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"
}'
다음 단계
- 컨텍스트 캐시 사용 방법 알아보기
- Google Cloud 프로젝트와 연결된 모든 컨텍스트 캐시에 대한 정보를 가져오는 방법 알아보기