使用裝置端和雲端託管模型,在 Apple 應用程式中建構混合式體驗

您可以使用 Firebase AI Logic 透過混合式推論建構 AI 技術輔助的 Apple 應用程式和功能。混合式推論功能可讓您在裝置端執行推論 (具體來說,就是使用 Apple 的基礎模型架構),並在無法執行時順暢地改用雲端託管的 Google 模型 (反之亦然)。

本頁說明如何開始使用用戶端 SDK,並介紹其他設定選項和功能,例如溫度參數。

請注意,如果 Apple 應用程式使用 Firebase AI Logic SDK 12.13.0 以上版本,且裝置已啟用 Apple Intelligence,則支援透過 Firebase AI Logic 進行裝置端推論。並受適用於 Apple 基礎模型架構的使用規定約束。

建議用途

  • 使用裝置端模型進行推論的優點:

    • 強化隱私權
    • 免付費推論
    • 離線功能
  • 使用混合功能提供:

    • 無論使用者裝置為何,都能為所有顧客提供類似的應用程式體驗
    • 提升生成式 AI 功能的可用性,不受網路連線、配額限制或裝置功能影響

支援的功能、API 和裝置

使用 Firebase AI Logic 導入混合式和裝置端推論前,請先詳閱本節,瞭解 Apple 應用程式支援的功能。

支援的裝置端推論功能

裝置端推論僅支援文字生成,具體來說,支援下列文字生成功能:

請務必查看本頁底部的詳細清單,瞭解目前不支援的混合式或裝置端推論

支援的 API 和裝置

開始使用

請務必詳閱上方章節,瞭解支援的功能、API 和裝置。

這些入門步驟說明傳送任何支援的提示要求時,所需的一般設定。

步驟 1:設定 Firebase 專案,並將應用程式連結至 Firebase

  1. 登入 Firebase 控制台,然後選取 Firebase 專案。

  2. Firebase 控制台中,依序前往「AI Services」(AI 服務) >「AI Logic」(AI 邏輯)

  3. 按一下「開始使用」,啟動導覽工作流程,協助您為專案設定必要 API 和資源。

  4. 設定專案以使用「Gemini API」供應商。

    建議您先使用 Gemini Developer API 您隨時可以設定 Vertex AI Gemini API (以及帳單的相關規定)。

    對於 Gemini Developer API,主控台會啟用必要的 API,並在專案中建立 Gemini API 金鑰。
    請勿將這個 Gemini API 金鑰加入應用程式的程式碼集。 瞭解詳情

  5. 如果控制台的工作流程中出現提示,請按照畫面上的指示註冊應用程式,並將其連結至 Firebase。

  6. 請繼續按照本指南的下一個步驟,將 SDK 新增至應用程式。

步驟 2:新增必要的 SDK

使用 Swift Package Manager (SPM) 安裝及管理 Xcode 依附元件。只有在使用 SPM 時,才能支援混合式出價策略。

Firebase AI Logic 程式庫可存取 API,與生成模型互動。這個程式庫是 Firebase SDK for Apple 平台 (firebase-ios-sdk) 的一部分。

如果您已使用 Firebase,請確認 Firebase 套件為 12.13.0 以上版本。

  1. 在 Xcode 中保持開啟應用程式專案,然後依序點選「File」(檔案) 和「Add Package Dependencies」(新增 Package 依附元件)

  2. 系統提示時,請新增 Firebase Apple 平台 SDK 存放區:

    https://github.com/firebase/firebase-ios-sdk
    
  3. 選取最新版 SDK。

  4. 選取 FirebaseAILogic 程式庫。

完成後,Xcode 會自動開始在背景中解析並下載依附元件。

步驟 3:初始化服務並建立模型工作階段例項

按一下 Gemini API 供應商,即可在這個頁面查看供應商專屬內容和程式碼。

傳送提示要求給模型前,請先完成下列設定。

  1. 為所選的 Gemini API 供應商初始化服務。

  2. 使用 HybridModel 建立 GenerativeModelSession 執行個體。

  3. 根據偏好設定 primarysecondary 模型。您可以設定嘗試推論的順序:

    • 先嘗試裝置端推論,但允許回退至雲端:將 primary 設為「系統」模型,並將 secondary 設為雲端模型。

    • 先嘗試雲端推論,但允許備援至裝置端:將 primary 設為雲端模型,並將 secondary 設為「系統」模型。

    請注意,SDK 支援設定單一 model,也就是說,SDK 只會嘗試裝置端或雲端推論。不過,如要提供混合體驗,您必須建立 HybridModel,並同時設定 primarysecondary 模型。

    進一步瞭解「推論模式」的行為 (嘗試推論的順序),請參閱「設定選項」。

以下範例說明如何先嘗試裝置端推論,但允許回退至雲端代管模型:

// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())

// Initialize a cloud model that supports your use case
let cloudModel = ai.geminiModel(name: "GEMINI_MODEL_NAME")
// Initialize an on-device model that supports your use case
let systemModel = FirebaseAI.SystemLanguageModel.default

// Create a Hybrid Model
// Provide your preferred model as `primary` and your fallback model as `secondary`
// In this example, attempt to use on-device model; otherwise, fall back to cloud.
let hybridModel = HybridModel(
  primary: systemModel,
  secondary: cloudModel
)

// Create a GenerativeModelSession with the HybridModel created earlier.
let session = firebaseAI.generativeModelSession(
  model: hybridModel,
)

步驟 4:將提示要求傳送至模型

本節說明如何執行下列操作:

使用純文字輸入生成文字

嘗試這個範例前,請務必先完成本指南的「開始使用」一節。

如要從含有文字的提示生成文字,請使用 respond(to:),如下所示:

// Imports + initialization of Gemini API backend service + creation of model session

// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."

// To generate text output, call `respond(to:)` with the text input
let response = try await session.respond(to: prompt)
print(response.content)

從純文字輸入內容串流文字

嘗試這個範例前,請務必先完成本指南的「開始使用」一節。

您可以不必等待模型生成完整結果,而是使用串流處理部分結果,加快互動速度。如要串流含有文字的提示所生成的文字,請使用 streamResponse(to:),如下所示:

// Imports + initialization of Gemini API backend service + creation of model session

// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."

// To stream generated text output, call `streamResponse(to:)` with the text input
let stream = session.streamResponse(to: prompt)
for try await snapshot in stream {
  print(snapshot.content)
}

你還能做些什麼?

您可以為混合式體驗使用各種額外的設定選項和功能:

混合式或裝置端推論目前不支援的功能

由於這是實驗版本,因此不支援雲端主機代管模型的所有功能。Firebase AI Logic

  • 混合式或裝置端實作不支援:Imagen 模型、Gemini Live API 和提示範本。此外,由於雲端代管和裝置端模型之間的權杖數量不同,因此不應依賴權杖數量,以免無法直覺地回溯。

  • 下列功能目前不支援裝置端推論。 如要使用上述任一項功能,建議只使用雲端代管模型,以獲得更一致的體驗。

    • 根據多模態輸入內容 (例如圖片、音訊、影片和文件 (PDF)) 生成文字

    • 生成圖片、音訊或影片等媒體

    • 傳送超過 4096 個權杖 (或約 3000 個英文字) 的要求。

    • 為裝置端模型提供內建工具,協助生成回覆 (例如程式碼執行、網址情境和以 Google 搜尋建立基準)

  • Firebase 控制台中的 AI monitoring 功能不會顯示任何裝置端推論資料 (包括裝置端記錄)。不過,使用雲端代管模型進行的任何推論,都可以透過 Firebase AI Logic 監控,就像其他推論一樣。

其他限制

除了上述限制外,裝置端推論還有下列限制:


提供有關 Firebase AI Logic 的使用體驗意見回饋