컨텍스트 캐시에 대한 정보 가져오기

컨텍스트 캐시가 생성된 시간, 최근에 업데이트된 시간, 만료 시간을 학습할 수 있습니다. 캐시 ID를 포함하여 Google Cloud 프로젝트와 연결된 모든 컨텍스트 캐시에 대한 정보를 가져오려면 명령어를 사용하여 컨텍스트 캐시를 나열합니다. 컨텍스트 캐시의 캐시 ID를 알고 있으면 컨텍스트 캐시에 대한 정보만 가져올 수 있습니다.

컨텍스트 캐시 목록 가져오기

Google Cloud 프로젝트와 연결된 컨텍스트 캐시 목록을 가져오려면 만든 리전과 Google Cloud 프로젝트 ID가 필요합니다. 다음에서는 Google Cloud 프로젝트의 컨텍스트 캐시 목록을 가져오는 방법을 보여줍니다.

Python

이 샘플을 사용해 보기 전에 Vertex AI 빠른 시작: 클라이언트 라이브러리 사용Python 설정 안내를 따르세요. 자세한 내용은 Vertex AI Python API 참고 문서를 참조하세요.

Vertex AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

import vertexai

from vertexai.preview import caching

# TODO(developer): Update & uncomment line below
# PROJECT_ID = "your-project-id"
vertexai.init(project=PROJECT_ID, location="us-central1")

cache_list = caching.CachedContent.list()
# Access individual properties of a CachedContent object
for cached_content in cache_list:
    print(f"Cache '{cached_content.name}' for model '{cached_content.model_name}'")
    print(f"Last updated at: {cached_content.update_time}")
    print(f"Expires at: {cached_content.expire_time}")
    # Example response:
    # Cached content 'example-cache' for model '.../gemini-1.5-pro-001'
    # Last updated at: 2024-09-16T12:41:09.998635Z
    # Expires at: 2024-09-16T13:41:09.989729Z

Go

이 샘플을 사용해 보기 전에 Vertex AI 빠른 시작: 클라이언트 라이브러리 사용Go 설정 안내를 따르세요. 자세한 내용은 Vertex AI Go API 참고 문서를 참조하세요.

Vertex AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/vertexai/genai"
	"google.golang.org/api/iterator"
)

// listContextCaches retrieves all context caches associated with the specified
// Google Cloud project and region
func listContextCaches(w io.Writer, projectID, location string) error {
	// location := "us-central1"
	ctx := context.Background()

	client, err := genai.NewClient(ctx, projectID, location)
	if err != nil {
		return fmt.Errorf("unable to create client: %w", err)
	}
	defer client.Close()

	cacheList := client.ListCachedContents(ctx)
	// `cacheList` is a standard Google API iterator.
	// See https://pkg.go.dev/google.golang.org/api/iterator#example-package for more details
	for {
		item, err := cacheList.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return fmt.Errorf("listContextCaches failed: %w", err)
		}

		fmt.Fprintf(w, "Cache %q will expire at %v\n", item.Name, item.Expiration.ExpireTime.String())
		// Example response:
		// Cache "projects/.../locations/.../cachedContents/12345678900000000" will expire at 2024-10-25 09:13:58.67004 +0000 UTC
	}

	return nil
}

REST

다음에서는 REST를 사용하여 GET 요청을 게시자 모델 엔드포인트에 보내 Google Cloud 프로젝트와 연결된 컨텍스트 캐시를 나열하는 방법을 보여줍니다.

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

HTTP 메서드 및 URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/cachedContents

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

curl

다음 명령어를 실행합니다.

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/cachedContents"

PowerShell

다음 명령어를 실행합니다.

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

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/cachedContents" | Select-Object -Expand Content

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

curl 명령어 예시

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

curl \
-X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/cachedContents

컨텍스트 캐시에 대한 정보 가져오기

컨텍스트 캐시 하나에 대한 정보를 가져오려면 캐시 ID, 컨텍스트 캐시가 연결된 Google Cloud 프로젝트 ID, 컨텍스트 캐시 만들기 요청이 처리된 리전이 필요합니다. 컨텍스트 캐시의 캐시 ID는 컨텍스트 캐시를 만들 때 반환됩니다. 컨텍스트 캐시 목록 명령어를 사용하여 프로젝트와 연결된 각 컨텍스트 캐시의 캐시 ID를 가져올 수도 있습니다.

다음에서는 컨텍스트 캐시 하나에 대한 정보를 가져오는 방법을 보여줍니다.

Python

Python용 Vertex AI SDK를 설치하거나 업데이트하는 방법은 Python용 Vertex AI SDK 설치를 참조하세요. 자세한 내용은 Vertex AI SDK for Python API 참고 문서를 참조하세요.

스트리밍 및 비스트리밍 응답

모델이 스트리밍 응답 또는 비스트리밍 응답을 생성하는지 여부를 선택할 수 있습니다. 스트리밍 응답의 경우 출력 토큰이 생성되는 즉시 각 응답이 수신됩니다. 비스트리밍 응답의 경우 모든 출력 토큰이 생성된 후에 모든 응답이 수신됩니다.

스트리밍 응답의 경우 generate_contentstream 매개변수를 사용합니다.

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

비스트리밍 응답의 경우 매개변수를 삭제하거나 매개변수를 False로 설정합니다.

샘플 코드

import vertexai

from vertexai.preview import caching

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# cache_id = "your-cache-id"

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

cached_content = caching.CachedContent(cached_content_name=cache_id)

print(cached_content.resource_name)
# Example response:
# projects/[PROJECT_ID]/locations/us-central1/cachedContents/1234567890

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?"))
  

샘플 코드

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/vertexai/genai"
)

// getContextCache shows how to retrieve the metadata of a cached content
// contentName is the ID of the cached content to retrieve
func getContextCache(w io.Writer, contentName string, projectID, location string) error {
	// location := "us-central1"
	ctx := context.Background()

	client, err := genai.NewClient(ctx, projectID, location)
	if err != nil {
		return fmt.Errorf("unable to create client: %w", err)
	}
	defer client.Close()

	cachedContent, err := client.GetCachedContent(ctx, contentName)
	if err != nil {
		return fmt.Errorf("GetCachedContent: %w", err)
	}
	fmt.Fprintf(w, "Retrieved cached content %q", cachedContent.Name)
	return nil
}

REST

다음에서는 REST를 사용하여 GET 요청을 게시자 모델 엔드포인트에 보내 Google Cloud 프로젝트와 연결된 컨텍스트 캐시를 나열하는 방법을 보여줍니다.

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

HTTP 메서드 및 URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/cachedContents/CACHE_ID

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

curl

다음 명령어를 실행합니다.

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/cachedContents/CACHE_ID"

PowerShell

다음 명령어를 실행합니다.

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

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/cachedContents/CACHE_ID" | Select-Object -Expand Content

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

curl 명령어 예시

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

curl \
-X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/${CACHE_ID}