Gemini API는 프롬프트 입력과 별도로 미디어 파일 업로드를 지원하므로 여러 요청과 여러 프롬프트에서 미디어를 재사용할 수 있습니다. 자세한 내용은 미디어를 사용한 프롬프트 가이드를 참고하세요.
메서드: media.upload
데이터를 ragStore에 업로드하고, RagStore 문서에 저장하기 전에 사전 처리하고 청크로 나눕니다.
엔드포인트
- 미디어 업로드 요청을 위한 업로드 URI:
https: / /generativelanguage.googleapis.com /upload /v1beta /{ragStoreName=ragStores /*}:uploadToRagStore
- 메타데이터 전용 요청을 위한 메타데이터 URI:
https: / /generativelanguage.googleapis.com /v1beta /{ragStoreName=ragStores /*}:uploadToRagStore
경로 매개변수
ragStoreName
string
필수 항목입니다. 변경할 수 없습니다. 파일을 업로드할 RagStore
의 이름입니다. 예: ragStores/my-rag-store-123
ragStores/{ragstore}
형식이 사용됩니다.
요청 본문
요청 본문에는 다음과 같은 구조의 데이터가 포함됩니다.
displayName
string
선택사항입니다. 생성된 문서의 표시 이름입니다.
customMetadata[]
object (CustomMetadata
)
데이터와 연결할 맞춤 메타데이터입니다.
chunkingConfig
object (ChunkingConfig
)
선택사항입니다. 서비스에 데이터를 청크하는 방법을 알려주는 구성입니다. 제공되지 않으면 서비스에서 기본 매개변수를 사용합니다.
mimeType
string
선택사항입니다. 데이터의 MIME 유형입니다. 제공되지 않으면 업로드된 콘텐츠에서 추론됩니다.
응답 본문
이는 google.longrunning.Operation의 사본입니다. scotty와 상호작용하려면 최상위 작업 프로토에 추가할 수 없는 scotty 특정 필드를 추가해야 하므로 복사해야 합니다.
성공한 경우 응답 본문은 다음과 같은 구조의 데이터를 포함합니다.
name
string
서버에 할당된 이름으로, 해당 이름을 최초로 반환한 서비스 내에서만 고유합니다. 기본 HTTP 매핑을 사용하는 경우 name
은 operations/{unique_id}
로 끝나는 리소스 이름이어야 합니다.
metadata
object
작업과 관련된 서비스별 메타데이터입니다. 일반적으로 진행률 정보 및 생성 시간과 같은 일반 메타데이터가 포함됩니다. 일부 서비스는 이러한 메타데이터를 제공하지 않을 수 있습니다. 장기 실행 작업을 반환하는 메소드는 메타데이터 유형이 있는 경우 이를 문서화해야 합니다.
임의 유형의 필드를 포함하는 객체입니다. 추가 필드 "@type"
은 유형을 식별하는 URI를 포함합니다. 예: { "id": 1234, "@type": "types.example.com/standard/id" }
done
boolean
값이 false
이면 작업이 아직 진행 중이라는 의미입니다. true
이면 작업이 완료된 것이며, error
또는 response
를 사용할 수 있습니다.
result
Union type
error
또는 유효한 response
일 수 있습니다. done
== false
이면 error
와 response
가 모두 설정되지 않습니다. done
== true
이면 error
또는 response
중 정확히 하나를 설정할 수 있습니다. 일부 서비스는 결과를 제공하지 않을 수 있습니다. result
은 다음 중 하나여야 합니다.error
object (Status
)
실패하거나 취소된 작업의 오류 결과입니다.
response
object
정상적이며 성공한 작업 응답입니다. Delete
와 같이 원래 메서드가 성공 시 데이터를 반환하지 않는 경우 응답은 google.protobuf.Empty
입니다. 원래 메서드가 표준 Get
/Create
/Update
이면 응답은 리소스여야 합니다. 다른 메서드의 경우 응답은 XxxResponse
유형이어야 하며, 여기에서 Xxx
는 원래 메서드의 이름입니다. 예를 들어 원래 메서드 이름이 TakeSnapshot()
이면 추론된 응답 유형은 TakeSnapshotResponse
입니다.
임의 유형의 필드를 포함하는 객체입니다. 추가 필드 "@type"
은 유형을 식별하는 URI를 포함합니다. 예: { "id": 1234, "@type": "types.example.com/standard/id" }
JSON 표현 |
---|
{
"name": string,
"metadata": {
"@type": string,
field1: ...,
...
},
"done": boolean,
// result
"error": {
object ( |
ChunkingConfig
서비스에 파일을 청크하는 방법을 알려주는 파라미터입니다. google3/cloud/ai/platform/extension/lib/retrieval/config/chunker_config.proto에서 영감을 받았습니다.
config
Union type
config
는 다음 중 하나여야 합니다.whiteSpaceConfig
object (WhiteSpaceConfig
)
공백 청크 구성입니다.
JSON 표현 |
---|
{
// config
"whiteSpaceConfig": {
object ( |
WhiteSpaceConfig
공백 청크 알고리즘[공백으로 구분됨]의 구성입니다.
maxTokensPerChunk
integer
청크당 최대 토큰 수입니다. 토큰은 이 청크 처리 알고리즘의 단어로 정의됩니다. 참고: 토큰은 토큰화 도구의 출력이 아닌 공백으로 분할된 단어로 정의됩니다. 2025년 4월 17일 기준 최신 Gemini 임베딩 모델의 컨텍스트 윈도우는 현재 8,192개 토큰입니다. 평균 단어는 5자라고 가정합니다. 따라서 최악의 경우 토큰당 한 글자를 가정하여 상한을 2**9(512단어 또는 2560토큰)로 설정합니다. 이는 컨텍스트 윈도우 오버플로를 방지하기 위한 보수적인 추정치입니다.
maxOverlapTokens
integer
인접한 두 청크 간에 겹치는 최대 토큰 수입니다.
JSON 표현 |
---|
{ "maxTokensPerChunk": integer, "maxOverlapTokens": integer } |
메서드: files.get
지정된 File
의 메타데이터를 가져옵니다.
엔드포인트
gethttps: / /generativelanguage.googleapis.com /v1beta /{name=files /*}
경로 매개변수
name
string
필수 항목입니다. 가져올 File
의 이름입니다. 예: files/abc-123
files/{file}
형식이 사용됩니다.
요청 본문
요청 본문은 비어 있어야 합니다.
요청 예시
Python
Node.js
Go
Shell
응답 본문
성공한 경우 응답 본문에 File
의 인스턴스가 포함됩니다.
메서드: files.list
요청 프로젝트가 소유한 File
의 메타데이터를 나열합니다.
엔드포인트
gethttps: / /generativelanguage.googleapis.com /v1beta /files
쿼리 매개변수
pageSize
integer
선택사항입니다. 페이지당 반환할 최대 File
수입니다. 지정하지 않으면 기본값은 10입니다. 최대 pageSize
은 100입니다.
pageToken
string
선택사항입니다. 이전 files.list
호출의 페이지 토큰입니다.
요청 본문
요청 본문은 비어 있어야 합니다.
요청 예시
Python
Node.js
Go
Shell
메서드: files.delete
File
을 삭제합니다.
엔드포인트
deletehttps: / /generativelanguage.googleapis.com /v1beta /{name=files /*}
경로 매개변수
name
string
필수 항목입니다. 삭제할 File
의 이름입니다. 예: files/abc-123
files/{file}
형식이 사용됩니다.
요청 본문
요청 본문은 비어 있어야 합니다.
요청 예시
Python
Node.js
Go
Shell
응답 본문
성공하면 응답 본문은 빈 JSON 객체입니다.
REST 리소스: 파일
리소스: 파일
API에 업로드된 파일입니다. 다음 ID: 15
name
string
변경할 수 없습니다. 식별자. File
리소스 이름입니다. ID('files/' 접두사 제외 이름)에는 소문자 영숫자 또는 대시 (-)가 최대 40개 포함될 수 있습니다. ID는 대시로 시작하거나 끝날 수 없습니다. 생성 시 이름이 비어 있으면 고유한 이름이 생성됩니다. 예를 들면 files/123-456
입니다.
displayName
string
선택사항입니다. File
의 사람이 읽을 수 있는 표시 이름입니다. 표시 이름은 공백을 포함하여 512자(영문 기준) 이하여야 합니다. 예: '환영 이미지'
mimeType
string
출력 전용입니다. 파일의 MIME 유형입니다.
sizeBytes
string (int64 format)
출력 전용입니다. 파일 크기(바이트)입니다.
createTime
string (Timestamp
format)
출력 전용입니다. File
이 생성된 시점의 타임스탬프입니다.
생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
또는 "2014-10-02T15:01:23+05:30"
입니다.
updateTime
string (Timestamp
format)
출력 전용입니다. File
가 마지막으로 업데이트된 시간의 타임스탬프입니다.
생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
또는 "2014-10-02T15:01:23+05:30"
입니다.
expirationTime
string (Timestamp
format)
출력 전용입니다. File
가 삭제되는 시점의 타임스탬프입니다. File
가 만료될 예정인 경우에만 설정됩니다.
생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
또는 "2014-10-02T15:01:23+05:30"
입니다.
sha256Hash
string (bytes format)
출력 전용입니다. 업로드된 바이트의 SHA-256 해시입니다.
base64 인코딩 문자열입니다.
uri
string
출력 전용입니다. File
의 URI입니다.
downloadUri
string
출력 전용입니다. File
의 다운로드 URI입니다.
state
enum (State
)
출력 전용입니다. 파일의 처리 상태입니다.
source
enum (Source
)
파일의 소스입니다.
error
object (Status
)
출력 전용입니다. 파일 처리가 실패한 경우의 오류 상태입니다.
metadata
Union type
metadata
는 다음 중 하나여야 합니다.videoMetadata
object (VideoFileMetadata
)
출력 전용입니다. 동영상의 메타데이터입니다.
JSON 표현 |
---|
{ "name": string, "displayName": string, "mimeType": string, "sizeBytes": string, "createTime": string, "updateTime": string, "expirationTime": string, "sha256Hash": string, "uri": string, "downloadUri": string, "state": enum ( |
VideoFileMetadata
동영상 File
의 메타데이터입니다.
videoDuration
string (Duration
format)
동영상 길이입니다.
소수점 아래가 최대 9자리까지이고 's
'로 끝나는 초 단위 기간입니다. 예를 들면 "3.5s"
입니다.
JSON 표현 |
---|
{ "videoDuration": string } |
주
파일의 수명 주기 상태입니다.
열거형 | |
---|---|
STATE_UNSPECIFIED |
기본값입니다. 이 값은 상태가 생략된 경우에 사용됩니다. |
PROCESSING |
파일이 처리 중이므로 아직 추론에 사용할 수 없습니다. |
ACTIVE |
파일이 처리되어 추론에 사용할 수 있습니다. |
FAILED |
파일을 처리할 수 없습니다. |
소스
열거형 | |
---|---|
SOURCE_UNSPECIFIED |
소스를 지정하지 않은 경우 사용됩니다. |
UPLOADED |
사용자가 파일을 업로드했음을 나타냅니다. |
GENERATED |
파일이 Google에서 생성되었음을 나타냅니다. |
REGISTERED |
파일이 등록된 파일(Google Cloud Storage 파일)임을 나타냅니다. |
상태
Status
유형은 REST API, RPC API를 비롯하여 다양한 프로그래밍 환경에 적합한 논리적 오류 모델을 정의하며, gRPC에서 사용됩니다. 각 Status
메시지에는 오류 코드, 오류 메시지, 오류 세부정보라는 3가지 데이터가 포함됩니다.
API 설계 가이드에서 이 오류 모델과 모델 작업 방법에 대해 자세히 알아볼 수 있습니다.
code
integer
상태 코드로, google.rpc.Code
의 열거형 값이어야 합니다.
message
string
개발자에게 정보를 제공하는 오류 메시지로, 영어로 작성되어야 합니다. 사용자에게 표시되는 모든 오류 메시지는 현지화되어 google.rpc.Status.details
필드에 전송되거나, 클라이언트 측에서 현지화되어야 합니다.
details[]
object
오류 세부정보를 설명하는 메시지 목록입니다. API에서 사용할 일반적인 메시지 유형 집합이 있습니다.
임의 유형의 필드를 포함하는 객체입니다. 추가 필드 "@type"
은 유형을 식별하는 URI를 포함합니다. 예: { "id": 1234, "@type": "types.example.com/standard/id" }
JSON 표현 |
---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |