コンテキスト キャッシュが期限切れになる時期は更新できます。コンテキスト キャッシュのデフォルトの有効期限は、作成時刻から 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 の設定手順を実施してください。詳細については、Vertex AI Go SDK for Gemini リファレンス ドキュメントをご覧ください。
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
REST を使用してコンテキスト キャッシュを作成または更新するには、Vertex AI API を使用してパブリッシャー モデル エンドポイントに PATCH リクエストを送信します。次の例は、ttl
パラメータを使用して有効期限を更新する方法を示しています。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
- LOCATION: コンテキスト キャッシュの作成リクエストが処理されたリージョン。
- CACHE_ID: コンテキスト キャッシュの ID。コンテキスト キャッシュ ID は、コンテキスト キャッシュの作成時に返されます。コンテキスト キャッシュ ID は、Google Cloud プロジェクトのコンテキスト キャッシュを一覧表示することでも確認できます。詳細については、コンテキスト キャッシュを作成するとコンテキスト キャッシュを一覧表示するをご覧ください。
- 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
REST を使用してコンテキスト キャッシュを作成または更新するには、Vertex AI API を使用してパブリッシャー モデル エンドポイントに PATCH リクエストを送信します。次の例は、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"
}'