使用裝置端和雲端託管模型,在 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 和裝置

以下各節說明支援的 API,以及支援的裝置 (和裝置端模型)。

雲端與裝置端推論支援的 API

  • 雲端內推論會使用您選擇的 Gemini API 供應商 (Gemini Developer API 或 Agent Platform Gemini API (formerly Vertex AI))。

  • 裝置端推論會使用 Apple 的 Foundation Models 架構,該架構僅適用於已啟用 Apple Intelligence 的裝置。啟用 Apple Intelligence 時,系統會自動下載裝置端模型。

支援的 Apple 裝置和裝置端模型

如要進行裝置端推論 (使用 Apple 的 Foundation Models 架構),請參閱 Apple 說明文件,查看已啟用 Apple Intelligence 的裝置清單。

開始使用

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

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

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

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

  3. 按一下「Get started」(開始使用),啟動引導式工作流程,協助您設定專案所需的 API 和資源。

  4. 如果出現提示,請按照畫面上的指示註冊應用程式,並將 Firebase 設定新增至應用程式。

  5. 系統要求您選擇「Gemini API 供應商」時,建議選取 Gemini Developer API,即可快速開始使用,不必付費。

    日後隨時可以設定 Agent Platform Gemini API (formerly Vertex AI) (以及相關計費規定)。

  6. 繼續執行工作流程,設定 Firebase AI Logic 的必要 API 和相關服務。

    這個工作流程階段會自動強制執行 AI Logic 的 Firebase App Check,這是一項重要服務,可在應用程式直接存取 Gemini API 時提供保護。在開始設定時 (請參閱本指南後續步驟),您需要為本機開發環境設定 App Check 偵錯服務,以便強制執行 App Check。

  7. 請繼續進行本指南的下一個步驟,將必要的 SDK 新增至應用程式。

步驟 2:新增必要的 SDK

使用 Swift Package Manager (SPM) 安裝及管理 Xcode 依附元件。混合支援僅適用於 SPM。

Firebase AI Logic 程式庫提供 API,可與生成式模型互動。這個程式庫包含在 Apple 平台適用的 Firebase SDK (firebase-ios-sdk) 中。

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

  1. 在 Xcode 中開啟應用程式專案,然後依序點選「File」>「Add Package Dependencies」。

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

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

  4. 選取 FirebaseAILogic 和 FirebaseAppCheck 程式庫。

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

步驟 3:設定 App Check 偵錯服務,以便在本機開發

在控制台完成 AI Logic 的引導式設定工作流程後,系統會自動強制執行 Firebase App Check,保護Gemini API。在本機開發環境中,您需要設定 App Check 偵錯服務,略過認證程序,同時維持 App Check 的強制執行。

在模擬器中以互動方式執行應用程式時 (例如在本機開發期間),請按照下列步驟使用偵錯服務:

  1. 在 Xcode 專案中,請先匯入 FirebaseAppCheck,並使用偵錯服務工廠初始化 App Check,再設定 Firebase。

    import SwiftUI
    import FirebaseCore
    import FirebaseAppCheck
    
    @main
    struct YourApp: App {
      init() {
        let providerFactory = AppCheckDebugProviderFactory()
        AppCheck.setAppCheckProviderFactory(providerFactory)
        FirebaseApp.configure()
      }
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
    
  2. 取得偵錯權杖:

    1. 在模擬器或測試裝置上啟動應用程式。

    2. 開啟 Xcode 控制台,尋找 App Check 偵錯權杖。例如:

      <Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.
      
    3. 複製權杖 (例如 123a4567-b89c-12d3-e456-789012345678)。

  3. 使用 App Check 註冊偵錯權杖:

    1. 在 Firebase 控制台中,依序前往「Security」(安全性) >「App Check」>「Apps」(應用程式) 分頁標籤。

    2. 找到應用程式,按一下溢位選單 (),然後選取「Manage debug tokens」。

    3. 按照畫面上的指示註冊偵錯權杖。

如要進一步瞭解偵錯服務 (包括如何取得新的偵錯權杖),請參閱官方 App Check 文件。

步驟 4:初始化服務並建立模型工作階段執行個體

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

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

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

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

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

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

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

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

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

以下範例說明如何先嘗試在裝置端推論,但允許改用雲端託管模型:

// 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,
)

步驟 5:向模型傳送提示要求

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

根據純文字輸入內容生成文字

試用這個範例前,請務必完成本指南的「入門」一節。

如要根據含有文字的提示詞生成文字,請使用 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 SDK 的功能都適用於混合或裝置端推論。

混合導入作業尚未支援的功能

下列功能無法與混合式實作搭配使用 (無論是在裝置端或透過雲端備用):

  • Gemini Live API:不支援雙向即時串流。

  • 伺服器提示詞範本:不支援代管伺服器提示詞範本。

  • 計算權杖:不應依賴計算權杖,因為雲端託管和裝置端模型的計算結果會有所不同,因此沒有直覺式的備用方案。

裝置端推論目前不支援的功能

裝置端推論尚不支援下列功能,但雲端託管模型可使用這些功能。

  • 生成媒體,例如圖片、音訊或影片

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

  • 傳送超過 4096 個詞元 (或約 3000 個英文字) 的要求

  • 為裝置端模型提供內建工具,協助生成回覆 (例如執行程式碼、網址背景資訊、使用 Google Search 建立基準,以及使用 Google Maps 建立基準)。不過,您可以使用函式呼叫提供自己的工具。

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

其他限制

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


提供「Firebase AI Logic」使用體驗的意見回饋