Mengupdate cache konteks

Anda dapat mengupdate saat cache konteks sudah tidak berlaku. Waktu habis masa berlaku default cache konteks adalah 60 menit setelah waktu pembuatannya. Cache konteks yang kedaluwarsa adalah dihapus selama proses pembersihan sampah memori dan tidak dapat digunakan atau diperbarui. Kepada memperbarui waktu saat cache konteks yang belum habis masa berlakunya habis masa berlakunya, perbarui salah satu properti berikut:

  • ttl - Jumlah detik dan nanodetik saat cache berada setelah cache dibuat atau setelah ttl diupdate sebelum masa berlakunya habis. Saat Anda menyetel ttl, expireTime cache diperbarui.

  • expire_time - Timestamp yang menentukan tanggal dan waktu absolut cache konteks akan kedaluwarsa.

Update cache konteks menggunakan parameter ttl

Berikut adalah contoh perintah curl yang memperbarui waktu habis masa berlakunya dengan 3.600 detik.

Python

Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk informasi selengkapnya, lihat Vertex AI SDK untuk Python dokumentasi referensi API.

Respons streaming dan non-streaming

Anda dapat memilih apakah model akan menghasilkan respons streaming atau non-streaming. Untuk respons bertahap, Anda menerima setiap respons segera setelah token output-nya dibuat. Untuk respons non-streaming, Anda menerima semua respons setelah semua token output dibuat.

Untuk respons streaming, gunakan parameter stream di generate_content.

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

Untuk respons non-streaming, hapus parameter, atau setel parameter ke False.

Kode contoh

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)

Go

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Vertex AI panduan memulai. Untuk informasi lebih lanjut, lihat Vertex AI Go SDK untuk dokumentasi referensi Gemini.

Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

Respons streaming dan non-streaming

Anda dapat memilih apakah model akan menghasilkan respons streaming atau non-streaming. Untuk respons bertahap, Anda menerima setiap respons segera setelah token output-nya dibuat. Untuk respons non-streaming, Anda menerima semua respons setelah semua token output dibuat.

Untuk respons streaming, gunakan GenerateContentStream.

  iter := model.GenerateContentStream(ctx, genai.Text("Tell me a story about a lumberjack and his giant ox. Keep it very short."))
  

Untuk respons non-streaming, gunakan metode GenerateContent.

  resp, err := model.GenerateContent(ctx, genai.Text("What is the average size of a swallow?"))
  

Kode contoh

import (
	"context"
	"fmt"
	"io"
	"time"

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

// updateContextCache shows how to update the expiration time of a cached content, by specifying
// a new TTL (time-to-live duration)
// contentName is the ID of the cached content to update
func updateContextCache(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)
	}

	update := &genai.CachedContentToUpdate{
		Expiration: &genai.ExpireTimeOrTTL{TTL: 2 * time.Hour},
	}

	_, err = client.UpdateCachedContent(ctx, cachedContent, update)
	fmt.Fprintf(w, "Updated cached content %q", contentName)
	return err
}

REST

Anda dapat menggunakan REST untuk membuat pembaruan cache konteks dengan menggunakan Vertex AI API untuk mengirim permintaan PATCH ke endpoint model penayang. Tujuan contoh berikut menunjukkan cara memperbarui tanggal habis masa berlaku menggunakan Parameter ttl.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • LOCATION: Wilayah tempat permintaan untuk membuat cache konteks telah diproses.
  • CACHE_ID: ID cache konteks. ID cache konteks ditampilkan saat Anda membuat cache konteks. Anda juga dapat menemukan ID cache konteks dengan mencantumkan cache konteks untuk digunakan oleh project Google Cloud. Untuk informasi selengkapnya, lihat membuat cache konteks dan mencantumkan cache konteks.
  • SECONDS: float yang menentukan komponen detik dari durasi sebelum cache berakhir.
  • NANOSECONDS: float yang menentukan komponen nanodetik dari durasi sebelum cache berakhir.

Metode HTTP dan URL:

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

Isi JSON permintaan:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

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

Update cache konteks menggunakan parameter expire_time

Berikut adalah contoh perintah curl yang menggunakan expire_time untuk memperbarui waktu habis masa berlakunya menjadi pukul 09.00 pada 30 Juni 2024.

REST

Anda dapat menggunakan REST untuk membuat pembaruan cache konteks dengan menggunakan Vertex AI API untuk mengirim permintaan PATCH ke endpoint model penayang. Tujuan contoh berikut menunjukkan cara memperbarui tanggal habis masa berlaku menggunakan Parameter expire_time.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • LOCATION: Wilayah tempat permintaan untuk membuat cache konteks telah diproses.
  • CACHE_ID: ID cache konteks. Anda dapat menemukan ID dalam respons saat membuat cache ontext.
  • EXPIRE_TIME: Timestamp yang menentukan waktu saat cache konteks berakhir.

Metode HTTP dan URL:

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

Isi JSON permintaan:

{
   "expire_time":"EXPIRE_TIME"
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

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

Langkah selanjutnya