Gemini API 支援上傳媒體檔案,與提示輸入內容分開,讓媒體可在多個要求和提示中重複使用。詳情請參閱使用媒體提示指南。
REST 資源:files
資源:File
上傳至 API 的檔案。
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 檔案。 |
方法: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 物件。
方法:files.register
向 FileService 註冊 Google Cloud Storage 檔案。使用者應提供 Google Cloud Storage URI,並會收到每個 URI 的檔案資源做為回報。請注意,檔案不會複製,只會向 File API 註冊。如果其中一個檔案無法註冊,整個要求就會失敗。
端點
posthttps: / /generativelanguage.googleapis.com /v1beta /files:register
要求主體
要求主體會包含結構如下的資料:
uris[]
string
必填。要註冊的 Google Cloud Storage URI。範例:gs://bucket/object。
方法:media.upload
建立 File。
端點
- 上傳 URI,適用於媒體上傳要求:
https: / /generativelanguage.googleapis.com /upload /v1beta /files
- 中繼資料 URI (僅限中繼資料要求):
https: / /generativelanguage.googleapis.com /v1beta /files
要求主體
要求主體會包含結構如下的資料:
file
object (File)
(選用步驟) 要建立的檔案中繼資料。
要求範例
圖片
Python
Node.js
Go
貝殼
音訊
Python
Node.js
Go
貝殼
文字
Python
Node.js
Go
貝殼
影片
Python
Node.js
Go
貝殼
Python
Go
Status
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: ..., ... } ] } |