Gemini Files 및 캐시
Gemini Files 및 캐시 콘텐츠
Gemini 파일, 재개 가능한 업로드 세션, Workspace 소유 캐시 콘텐츠를 관리합니다.
요청한 작업을 현재 지원하는 TokenLab 모델에서 Gemini 네이티브 리소스를 사용하세요. 아래 경로는 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은 비공개 권한 정보이며 한 시간 후 만료됩니다. 공개하거나 로그에 남기거나 공유하지 마세요. 일반 HTTP 리디렉션으로 따라가지 마세요.
HTTP 308은 청크가 접수됐지만 업로드가 끝나지 않았다는 뜻입니다. 같은 URL에서 계속하고 성공으로 처리하지 마세요. HTTP 404는 세션이 없거나 만료됐다는 뜻입니다. HTTP 410은 해당 세션을 더 진행할 수 없다는 뜻이므로 새 업로드 세션을 시작하세요. 파일 리소스가 포함된 최종 성공 응답만 완료로 처리합니다.
SDK 설정
프로세스 환경에 TOKENLAB_API_KEY를 설정하고 Google Gen AI SDK의 호스트와 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 사양과 모델 세부 정보를 참조하세요.