Gemini Files 与缓存
Gemini Files 与缓存内容
上传 Gemini 文件,并管理 Workspace 所有的文件与缓存内容。
请在当前支持相应操作的 TokenLab 模型上使用 Gemini Files 和缓存内容。发送请求前,先查看模型详情中的支持方法。
Workspace 归属
文件和缓存内容归属于已认证请求所在的 Workspace。创建、列出、读取、引用、更新和删除时都必须使用同一个 Workspace。资源名称或文件 URI 不会转移所有权。
Files
受支持的来源可用 register 注册;该操作不会上传本地文件字节。本地文件请通过上传端点发送字节。通过列表或读取接口检查文件状态,待文件就绪后再在 Gemini 内容中使用返回的 URI。Files 路由支持注册、读取和删除,没有文件更新操作。
缓存内容
为支持的模型创建缓存内容,然后在同一 Workspace 的后续 generateContent 请求中,将返回的 name 用作 cachedContent。GET 读取缓存元数据,PATCH 更新有效期,DELETE 删除缓存。缓存删除或过期后,不能再用于生成。
续传上传
向 POST /upload/v1beta/files 发送元数据,并设置 X-Goog-Upload-Protocol: resumable 和 X-Goog-Upload-Command: start 以启动会话。读取响应头 X-Goog-Upload-URL 的完整值。将每个文件字节分块 POST 到该 URL,并携带上传命令和已确认的偏移量。
该 URL 是私密授权凭据,可授权续传,有效期为一小时。请勿公开、记录到日志或转发,也不要将它当作普通 HTTP 重定向跟随。308 表示分块已接收但上传尚未完成;请继续使用同一 URL。404 表示会话不存在或已过期。410 表示会话无法继续;请启动新会话。只有最终成功响应包含文件资源时,上传才算完成。
SDK 配置
在进程环境中设置 TOKENLAB_API_KEY。将 Google Gen AI SDK 配置为使用 TokenLab 主机和 v1beta 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 | 操作 |
|---|---|---|
| POST | /v1beta/files:register | 注册受支持的来源 |
| POST | /v1beta/files | 创建文件元数据 |
| 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} | 删除缓存内容 |
| POST | /upload/v1beta/files | 上传字节或启动会话 |
| POST | /upload/v1beta/files/session/{sessionId} | 续传上传 |
列表接口支持 pageSize 和 pageToken。后续 Gemini 请求可使用返回的缓存名称作为 cachedContent。完整字段请参阅 OpenAPI 规范 和 Gemini 内容生成。