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 個の操作
| Method | Path | Operation |
|---|---|---|
| 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 仕様 とモデル詳細を参照してください。