Gemini Files とキャッシュ

Gemini Files とキャッシュコンテンツ

Gemini ファイル、再開可能なアップロードセッション、Workspace 所有のキャッシュを管理します。

これらの Gemini ネイティブリソースは、対象操作を現在サポートしている TokenLab モデルで使用してください。以下のパスは Gemini API 形式です。

Workspace の所有権とモデル対応

ファイルとキャッシュコンテンツは、認証済みリクエストの Workspace に属します。作成、一覧、読み取り、参照、更新、削除は同じ Workspace から行ってください。リソース名やファイル URI を使っても所有権は移りません。

Files

対応する既存ソースの登録には register を使います。ローカルのファイルデータはアップロードされません。必要に応じて JSON でメタデータを作成し、ファイルデータはアップロードエンドポイントへ送信します。一覧または取得で状態を確認し、ready になってから返された URI を Gemini のコンテンツで参照してください。不要になったファイルは削除します。

キャッシュコンテンツ

対応モデル向けにキャッシュを作成し、必要に応じて contents、システム指示、ツール、ツール設定、TTL または有効期限を指定します。同じ Workspace から後続の Gemini generateContent を呼び出す際、返された name を cachedContent として指定します。GET と一覧はキャッシュのメタデータを返し、PATCH は有効期間を更新し、DELETE 後は生成で利用できなくなります。

再開可能なアップロード

再開可能なアップロードでは、開始エンドポイントにメタデータを POST し、X-Goog-Upload-Protocol: resumable と X-Goog-Upload-Command: start を指定します。応答ヘッダー X-Goog-Upload-URL の値をそのまま取得し、アップロードコマンドと確認済みオフセットを付けて各チャンクをその URL に POST します。この URL は非公開の権限情報で、有効期間は1時間です。公開、ログ記録、共有をしないでください。通常の HTTP リダイレクトとして追跡しないでください。

HTTP 308 はチャンクを受け付けたもののアップロードが未完了であることを示します。同じ URL で続行し、成功とは扱わないでください。HTTP 404 はセッションが存在しないか期限切れであることを示します。HTTP 410 はそのセッションを続行できないことを示すため、新しいセッションを開始してください。ファイルリソースを含む最終成功応答を完了条件とします。

SDK の設定

プロセス環境に TOKENLAB_API_KEY を設定し、Google Gen AI SDK の接続先を TokenLab ホストと Gemini API バージョンに設定します。

import os
from google import genai

client = genai.Client(
    api_key=os.environ["TOKENLAB_API_KEY"],
    http_options={"base_url": "https://api.tokenlab.sh", "api_version": "v1beta"},
)
import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI({
  apiKey: process.env.TOKENLAB_API_KEY,
  httpOptions: { baseUrl: "https://api.tokenlab.sh", apiVersion: "v1beta" },
});

キーとアップロード URL をソース管理、ブラウザーのストレージ、ログに保存しないでください。

12 個の操作

MethodPathOperation
POST/v1beta/files:register対応ソースを登録
POST/v1beta/filesファイルメタデータを作成
POST/upload/v1beta/filesバイトを送信/セッションを開始
POST/upload/v1beta/files/session/{sessionId}再開可能なアップロードを続行
GET/v1beta/filesファイル一覧
GET/v1beta/files/{fileId}ファイルメタデータを取得
DELETE/v1beta/files/{fileId}ファイルを削除
POST/v1beta/cachedContentsキャッシュを作成
GET/v1beta/cachedContentsキャッシュ一覧
GET/v1beta/cachedContents/{cacheId}キャッシュを取得
PATCH/v1beta/cachedContents/{cacheId}有効期間を更新
DELETE/v1beta/cachedContents/{cacheId}キャッシュを削除

一覧エンドポイントは pageSize と pageToken に対応します。後続の Gemini リクエストでは返されたキャッシュ名を cachedContent として指定します。全フィールドは OpenAPI 仕様 とモデル詳細を参照してください。

このページの内容