יצירת חוויות היברידיות באפליקציות של אפל באמצעות מודלים במכשיר ובאירוח בענן

אתם יכולים ליצור תכונות ואפליקציות מבוססות-AI ל-Apple באמצעות הסקה היברידית עם Firebase AI Logic. הסקת מסקנות היברידית מאפשרת להריץ הסקת מסקנות באמצעות מודלים במכשיר (במיוחד באמצעות מסגרת Foundation Models של אפל) כשהם זמינים, ולעבור בצורה חלקה למודלים של Google שמתארחים בענן אם הם לא זמינים (ולהיפך).

בדף הזה מוסבר איך מתחילים להשתמש ב-SDK של הלקוח, ומוצגות אפשרויות נוספות להגדרה ויכולות, כמו רמת אקראיות.

שימו לב: הסקת מסקנות במכשיר באמצעות Firebase AI Logic נתמכת באפליקציות של אפל שמשתמשות ב-Firebase AI Logic SDK בגרסה 12.13.0 ומעלה ופועלות במכשירים שמופעלת בהם Apple Intelligence. השימוש בהם כפוף לדרישות השימוש המקובל ב-Foundation Models framework של Apple.

תרחישים מומלצים לדוגמה

  • שימוש במודל במכשיר לצורך הסקה מאפשר:

    • פרטיות משופרת
    • הסקת מסקנות ללא עלות
    • פונקציונליות אופליין
  • שימוש במוצרים עם פונקציונליות משולבת:

    • לספק לכל הלקוחות חוויית שימוש דומה באפליקציה, ללא קשר למכשיר של משתמש הקצה
    • שיפור הזמינות של תכונות מבוססות-AI גנרטיבי, ללא קשר לקישוריות לאינטרנט, למגבלות מכסה או ליכולות המכשיר

יכולות, ממשקי API ומכשירים נתמכים

לפני שמטמיעים היסק היברידי והיסק במכשיר באמצעות Firebase AI Logic, כדאי לעיין בקטע הזה כדי להבין מה נתמך באפליקציות של אפל.

יכולות ותכונות נתמכות להסקת מסקנות במכשיר

הסקת מסקנות במכשיר תומכת רק ביצירת טקסט, ובאפשרויות הבאות של יצירת טקסט:

חשוב לעיין ברשימה המפורטת של הסקת מסקנות היברידית או במכשיר שלא נתמכות עדיין שמופיעה בחלק התחתון של הדף הזה.

ממשקי API ומכשירים נתמכים

שנתחיל?

חשוב לעיין בקטע שלמעלה שמתאר את היכולות, ממשקי ה-API והמכשירים הנתמכים.

בשלבים הבאים מוסבר איך לבצע את ההגדרה הכללית הנדרשת לכל בקשת פרומפט נתמכת שרוצים לשלוח.

שלב 1: הגדרת פרויקט Firebase וקישור האפליקציה ל-Firebase

  1. נכנסים למסוף Firebase ובוחרים את הפרויקט ב-Firebase.

  2. במסוף Firebase, נכנסים אל AI Services (שירותי AI) >‏ AI Logic (לוגיקת AI).

  3. לוחצים על Get started (תחילת העבודה) כדי להפעיל תהליך עבודה מודרך שיעזור לכם להגדיר את ממשקי ה-API והמשאבים הנדרשים לפרויקט.

  4. אם מופיעה בקשה, פועלים לפי ההוראות במסך כדי לרשום את האפליקציה ולהוסיף את הגדרות Firebase לאפליקציה.

  5. כשמתבקשים לבחור 'ספק Gemini API', מומלץ לבחור באפשרות Gemini Developer API, שמאפשרת להתחיל במהירות ללא עלות.

    בכל שלב בהמשך, תמיד תוכלו להגדיר את Agent Platform Gemini API (formerly Vertex AI) (ואת הדרישה שלו לחיוב).

  6. ממשיכים בתהליך העבודה כדי להגדיר את ממשקי ה-API הנדרשים ואת השירותים המשויכים ל-Firebase AI Logic.

    החל מתחילת יולי 2026, בשלב הזה של תהליך העבודה, תופעל Firebase App Check באופן אוטומטי עבור AI Logic, שהוא שירות חיוני שעוזר להגן על Gemini API כשניגשים אליו ישירות מהאפליקציה. כדי להתחיל (ראו את השלבים בהמשך המדריך), תצטרכו להגדיר את App Check ספק ניפוי הבאגים לפיתוח מקומי כשApp Check מופעל.

  7. כדי להוסיף את ה-SDK הנדרש לאפליקציה, ממשיכים לשלב הבא במדריך הזה.

שלב 2: מוסיפים את ערכות ה-SDK הנדרשות

משתמשים ב-Swift Package Manager ‏ (SPM) כדי להתקין ולנהל יחסי תלות ב-Xcode. תמיכה בהיברידיות זמינה רק כשמשתמשים ב-SPM.

הספרייה Firebase AI Logic מספקת גישה לממשקי ה-API לאינטראקציה עם מודלים גנרטיביים. הספרייה כלולה כחלק מ-Firebase SDK לפלטפורמות של אפל (firebase-ios-sdk).

אם אתם כבר משתמשים ב-Firebase, אתם צריכים לוודא שחבילת Firebase שלכם היא מגרסה 12.13.0 ואילך.

  1. ב-Xcode, כשהפרויקט של האפליקציה פתוח, עוברים אל File > Add Package Dependencies (קובץ > הוספת תלות בחבילה).

  2. כשמוצגת בקשה, מוסיפים את מאגר Firebase Apple platforms SDK:

    https://github.com/firebase/firebase-ios-sdk
    
  3. בוחרים את גרסת ה-SDK הכי עדכנית.

  4. בוחרים בספריות FirebaseAILogic ו-FirebaseAppCheck.

אחרי שתסיימו, פלטפורמת Xcode תתחיל אוטומטית לטפל ביחסי התלות ולהוריד אותם ברקע.

שלב 3: הגדרת ספק ניפוי הבאגים App Check לפיתוח מקומי

החל מתחילת יולי 2026, כחלק מתהליך העבודה המודרך להגדרה של 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. מוצאים את האפליקציה, לוחצים על תפריט האפשרויות הנוספות () ובוחרים באפשרות ניהול אסימוני ניפוי באגים.

    3. פועלים לפי ההוראות במסך כדי לרשום את אסימון הניפוי באגים.

פרטים על ספק אימות לצורכי ניפוי באגים (כולל איך מקבלים אסימון חדש לניפוי באגים) זמינים במסמכים הרשמיים של App Check.

שלב 4: מאתחלים את השירות ויוצרים מופע של סשן מודל

לוחצים על הספק Gemini API כדי לראות בדף הזה תוכן וקוד שספציפיים לספק.

לפני ששולחים למודל בקשת הנחיה, צריך להגדיר את הדברים הבאים.

  1. מאתחלים את השירות עבור ספק Gemini API שבחרתם.

  2. יצירת מכונת GenerativeModelSession עם HybridModel.

  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 או של מודלים שמארחים בענן נתמכות.

  • אין תמיכה בהטמעות היברידיות או בהטמעות במכשיר בתבניות הבאות של הנחיות: Gemini Live API ותבניות של הנחיות לשרת. בנוסף, לא מומלץ להסתמך על טוקנים של ספירה כי הספירה תהיה שונה בין מודלים שמתארחים בענן לבין מודלים שפועלים במכשיר, ולכן אין דרך אינטואיטיבית לחזור אחורה.

  • התכונות הבאות עדיין לא נתמכות להסקת מסקנות במכשיר. אם אתם רוצים להשתמש באחת מהתכונות האלה, מומלץ להשתמש רק במודל שמתארח בענן כדי ליהנות מחוויה עקבית יותר.

    • יצירת טקסט מקלט מולטי-מודאלי, כמו תמונות, אודיו, סרטונים ומסמכים (קובצי PDF)

    • יצירת מדיה, כמו תמונות, אודיו או סרטונים

    • שליחת בקשות שחורגות מ-4,096 טוקנים (או בערך 3,000 מילים באנגלית).

    • אספקת כלים מובנים למודל במכשיר כדי לעזור לו ליצור את התשובה (כמו הפעלת קוד, הקשר של כתובת URL ועיגון באמצעות חיפוש Google)

  • במסוף Firebase, המעקב אחרי AI לא מציג נתונים לגבי הסקה במכשיר (כולל יומנים במכשיר). עם זאת, אפשר לעקוב אחרי כל הסקה שמתבססת על מודל שמתארח בענן, בדיוק כמו אחרי הסקות אחרות, באמצעות Firebase AI Logic.

מגבלות נוספות

בנוסף לאמור למעלה, יש למסקנות במכשיר את המגבלות הבאות:


רוצה לתת משוב על חוויית השימוש ב-Firebase AI Logic?