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 專屬欄位,但無法在頂層的 Operation proto 中新增。
如果成功,回應主體會含有以下結構的資料:
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
JSON 表示法 |
---|
{
// config
"whiteSpaceConfig": {
object ( |
WhiteSpaceConfig
空白字元區塊演算法的設定 (以空白字元分隔)。
maxTokensPerChunk
integer
每個區塊的權杖數量上限。對這個分塊演算法而言,權杖就是字詞。注意:我們將符記定義為以空格分隔的字詞,而非分詞器的輸出內容。截至 2025 年 4 月 17 日,最新 Gemini 嵌入模型脈絡窗口為 8192 個權杖。我們假設每個單字平均有 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
貝殼
回應主體
如果成功,回應主體會包含 File
的執行例項。
方法:files.list
列出要求專案擁有的 File
中繼資料。
端點
gethttps: / /generativelanguage.googleapis.com /v1beta /files
查詢參數
pageSize
integer
(選用步驟) 每頁傳回的 File
數量上限。如未指定,則預設值為 10。pageSize
上限為 100。
pageToken
string
(選用步驟) 先前 files.list
呼叫傳回的頁面權杖。
要求主體
要求主體必須為空白。
要求範例
Python
Node.js
Go
貝殼
方法:files.delete
刪除 File
。
端點
deletehttps: / /generativelanguage.googleapis.com /v1beta /{name=files /*}
路徑參數
name
string
必要欄位。要刪除的 File
名稱。範例:files/abc-123
採用 files/{file}
形式。
要求主體
要求主體必須為空白。
要求範例
Python
Node.js
Go
貝殼
回應主體
如果成功,回應主體會是空白的 JSON 物件。
REST 資源:files
資源:File
上傳至 API 的檔案。下一個 ID:15
name
string
不可變更。ID。File
資源名稱。ID (不含「files/」前置字串的名稱) 最多可包含 40 個字元,且只能是小寫英數字元或破折號 (-)。ID 開頭和結尾不得為破折號。如果建立時名稱為空白,系統會產生專屬名稱。範例:files/123-456
displayName
string
(選用步驟) File
的使用者可讀顯示名稱。顯示名稱長度不得超過 512 個半形字元 (包括空格)。例如:「歡迎圖片」
mimeType
string
僅供輸出。檔案的 MIME 類型。
sizeBytes
string (int64 format)
僅供輸出。檔案大小 (以位元組為單位)。
createTime
string (Timestamp
format)
僅供輸出。建立 File
的時間戳記。
使用 RFC 3339,產生的輸出內容一律會經過 Z 標準化,並使用 0、3、6 或 9 個小數點後位數。系統也接受「Z」以外的偏移量。例如:"2014-10-02T15:01:23Z"
、"2014-10-02T15:01:23.045123456Z"
或 "2014-10-02T15:01:23+05:30"
。
updateTime
string (Timestamp
format)
僅供輸出。上次更新 File
的時間戳記。
使用 RFC 3339,產生的輸出內容一律會經過 Z 標準化,並使用 0、3、6 或 9 個小數點後位數。系統也接受「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
預計到期時才需要設定。
使用 RFC 3339,產生的輸出內容一律會經過 Z 標準化,並使用 0、3、6 或 9 個小數點後位數。系統也接受「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
訊息包含三部分的資料:錯誤代碼、錯誤訊息和錯誤詳細資料。
如要進一步瞭解這個錯誤模型,以及如何使用這個錯誤模型,請參閱 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: ..., ... } ] } |