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

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

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

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

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

  • שימוש במודל במכשיר להסקת מסקנות מספק:

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

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

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

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

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

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

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

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

שנתחיל?

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

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

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

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

  2. במסוף Firebase, נכנסים לדף AI Services ‏ > AI Logic.

  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. כשמוצגת בקשה, מוסיפים את מאגר ה-SDK של Firebase לפלטפורמות של אפל:

    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 באמצעות ה-factory של ספק אימות לצורכי ניפוי באגים לפני שמגדירים את 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: שליחת בקשת הנחיה למודל

בקטע הזה מוסבר איך:

יצירת טקסט דינמי מבוסס-AI מקלט של טקסט בלבד

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

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

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

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

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

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

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

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

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

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


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