在多模態要求中加入大型檔案,並透過 Cloud Storage for Firebase 管理檔案

使用 Vertex AI for Firebase SDK 從應用程式呼叫 Gemini API 時,您可以提示 Gemini 模型根據多模態輸入內容產生文字。多重模組提示可包含多個模式 (或輸入類型),例如文字以及圖片、PDF、影片和音訊。

對於輸入的非文字部分 (例如媒體檔案),您可以選擇使用 Cloud Storage for Firebase 在要求中加入檔案。大致來說,以下是此功能需要知道的內容:

  • Cloud Storage for Firebase 可與任何多模態要求 (例如文字產生和即時通訊) 搭配使用。本指南的範例提供了基本的文字和圖片輸入方式。

  • 在要求輸入內容中指定檔案的 MIME 類型及其 Cloud Storage for Firebase 網址 (開頭一律為 gs://)。這些值是系統自動指派給任何上傳至 Cloud Storage 值區的檔案的中繼資料。

  • 您必須使用支援的檔案類型和網址


本解決方案指南說明如何在 Google Cloud 中設定 Cloud Storage for Firebase、從應用程式上傳檔案到 Cloud Storage for Firebase 值區,然後在對 Gemini API 的多重模式要求中附上檔案的 MIME 類型和 Cloud Storage for Firebase 網址。

如果您想查看程式碼範例,或者,您已經設定 Cloud Storage for Firebase,並準備好開始搭配多模態要求使用 Cloud Storage 了嗎?

跳至程式碼範例

在應用程式中使用 Cloud Storage for Firebase 的好處

Cloud Storage for Firebase 採用與 Google Cloud Storage 相同的快速、安全且可擴充的基礎架構來儲存 blob 和檔案,而其用戶端 SDK 是專為行動和網頁應用程式所設計。

Vertex AI for Firebase SDK 的要求大小上限為 20 MB。如果要求過大,您會收到 HTTP 413 錯誤。如果檔案大小會導致要求總大小超過 20 MB,請使用 Cloud Storage for Firebase 網址,將檔案納入多模態要求中。不過,如果檔案較小,通常都能以內嵌資料直接傳送 (但請注意,以內嵌資料形式提供的檔案會在傳輸過程中編碼為 Base64,進而增加要求的大小)。

使用 Cloud Storage for Firebase 還有下列幾項好處:

  • 您可以讓使用者直接從應用程式將圖片上傳至 Cloud Storage for Firebase 值區,接著只要指定檔案的 MIME 類型和 Cloud Storage for Firebase 網址 (該檔案的 ID),即可在多模態提示中加入這些圖片。

  • 當使用者需要提供圖片時 (尤其是網路品質不佳或不穩定時),您就可以節省他們的時間和頻寬。

    • 如果檔案上傳或下載中斷,Cloud Storage for Firebase SDK 會自動從上次中斷的地方重新啟動作業。
    • 同一個上傳檔案可以多次使用,而使用者不必在每次在應用程式中需要時都上傳相同的檔案 (例如在新的多模態要求中)。
  • 您可以使用 Firebase 安全性規則,限制使用者存取儲存在 Cloud Storage for Firebase 中的檔案,只允許獲得授權的使用者上傳、下載或刪除檔案。

  • 您可以透過 Firebase 或 Google Cloud 存取值區中的檔案,並靈活地進行伺服器端處理,例如使用 Google Cloud Storage API 篩選圖片或影片轉碼。

系統支援哪些類型的檔案和網址?

如要搭配使用 Cloud Storage for Firebase 網址與 Vertex AI for Firebase SDK,檔案及網址必須符合以下規定:

  • 使用 Vertex AI for Firebase SDK 時,檔案必須符合多模態要求輸入檔案的需求。這包括 MIME 類型和檔案大小等要求。

  • 檔案必須儲存在 Cloud Storage for Firebase 值區 (這表示 Firebase 服務 (如 Firebase 安全性規則) 可以存取該值區。如果您可以在 Firebase 控制台中檢視值區,則表示該值區就是 Cloud Storage for Firebase 值區。

  • Cloud Storage for Firebase 值區必須位於您註冊應用程式的同一個 Firebase 專案中。

  • 檔案的 Cloud Storage for Firebase 網址必須以 gs:// 開頭,也就是所有 Google Cloud Storage 網址的建構方式。

  • 檔案的網址不能是「瀏覽器」網址 (例如,您可以在網際網路上找到圖片的網址)。

此外,值區的 Firebase 安全性規則必須允許適當的存取檔案。例如:

  • 如果您有公開規則,則「任何」使用者或用戶端都可以存取該檔案,並使用 Vertex AI for Firebase SDK 在呼叫中提供其網址。這些類型的規則只應用於初期原型設計和早期原型設計 (除非這類檔案實際上是完全可公開存取的檔案)。

  • 如果您建立了完善的規則 (強烈建議),Firebase 會先檢查登入的使用者或用戶端是否擁有檔案的存取權,然後才允許透過您提供的網址執行呼叫。

搭配 Vertex AI for Firebase 使用 Cloud Storage for Firebase 網址

步驟 1:設定 Cloud Storage for Firebase

您需要執行的高階工作如下:

  1. 在 Firebase 專案中建立 Cloud Storage for Firebase 值區。

  2. Firebase 安全性規則套用至這個值區。Firebase 安全性規則可限制授權使用者的存取權,協助您保護檔案。

  3. 將 Cloud Storage for Firebase 的用戶端程式庫新增至您的應用程式。

    請注意,您可以略過這項工作,但之後「務必」在多模態要求中明確加入 MIME 類型和 Cloud Storage for Firebase 網址值

步驟 2:將檔案上傳至值區

當您上傳檔案到值區時,Cloud Storage 會自動將以下兩項資訊套用至檔案。您需要在多模態要求中加入這些值 (如本指南的下一個步驟所示)。

  • MIME 類型:這是檔案的媒體類型 (例如 image/png)。Cloud Storage for Firebase 會在上傳期間自動嘗試偵測 MIME 類型,並將中繼資料套用至值區中的物件。不過,您可以在上傳期間視需要指定 MIME 類型。

  • Cloud Storage for Firebase 網址:這是檔案的專屬 ID。 網址的開頭必須是 gs://

步驟 3:在多模態要求中加入檔案的 MIME 類型和網址

將檔案儲存在 Cloud Storage for Firebase 值區後,您就可以在多模態要求中加入檔案的 MIME 類型及 Cloud Storage for Firebase 網址。請注意,這些範例顯示的是非串流的 generateContent 要求,但您也可以將 Cloud Storage for Firebase 網址與串流和即時通訊搭配使用。

如要將檔案納入要求中,您可以使用下列任一選項:

方法 1:使用 Storage 參考資料加入 MIME 類型和網址

如果您才剛將檔案上傳至值區,並想要立即將檔案納入多模態要求中,請使用此選項。呼叫需要 MIME 類型和 Cloud Storage for Firebase 網址。

選項 2:明確加入 MIME 類型和網址

如果您知道 MIME 類型和 Cloud Storage for Firebase 網址的值,並想要明確納入多模態要求中,請使用這個選項。這個呼叫需要 MIME 類型和網址。