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 个操作

MethodPath操作
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 内容生成。

本页内容