在多模態要求中加入大型檔案,並透過 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 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 會先檢查已登入的使用者或用戶端是否具備檔案存取權,再允許透過提供的網址進行呼叫。

搭配使用 Cloud Storage for Firebase 網址與 Vertex AI 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:使用儲存空間參考資料加入 MIME 類型和網址

如果您已將檔案上傳到值區,且想要立即在多模態要求中加入檔案 (透過 Storage 參考資料),請使用這個選項。這個呼叫需要 MIME 類型和 Cloud Storage for Firebase 網址。

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

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