إنشاء تجارب مختلطة في تطبيقات Apple باستخدام نماذج على الجهاز ونماذج مستضافة على السحابة الإلكترونية

Firebase AI Logic

يمكنك إنشاء تطبيقات وميزات مستندة إلى الذكاء الاصطناعي لأجهزة Apple باستخدام الاستدلال المختلط من خلال Firebase AI Logic. يتيح الاستدلال المختلط تشغيل الاستدلال باستخدام النماذج على الجهاز فقط (وتحديدًا إطار عمل Foundation Models من Apple) عندما تكون متاحة، والرجوع بسلاسة إلى نماذج Google المستضافة على السحابة الإلكترونية في الحالات الأخرى (والعكس صحيح).

توضّح هذه الصفحة كيفية البدء باستخدام حزمة تطوير البرامج (SDK) للعميل، بالإضافة إلى عرض خيارات وإمكانات إعداد إضافية، مثل درجة العشوائية.

يُرجى العِلم أنّ الاستدلال على الجهاز فقط من خلال Firebase AI Logic متاح لتطبيقات Apple التي تستخدم الإصدار 12.13.0 أو إصدار أحدث من حزمة تطوير البرامج (SDK) لـ Firebase AI Logic وتعمل على الأجهزة التي تم تفعيل ميزة Apple Intelligence عليها. ويخضع ذلك لـ متطلبات الاستخدام المقبول لإطار عمل Foundation Models من Apple.

حالات الاستخدام المقترَحة

  • يوفّر استخدام نموذج على الجهاز فقط للاستدلال ما يلي:

    • خصوصية محسّنة
    • استدلال بدون أي تكلفة
    • وظائف بلا إنترنت
  • يوفّر استخدام الوظائف المختلطة ما يلي:

    • تزويد جميع العملاء بتجربة تطبيق مماثلة بغض النظر عن جهاز المستخدم النهائي
    • تحسين مدى توفّر الميزات المستندة إلى الذكاء الاصطناعي التوليدي، بغض النظر عن الاتصال بالإنترنت أو حدود الحصص أو إمكانات الجهاز

الإمكانات وواجهات برمجة التطبيقات والأجهزة المتوافقة

قبل تنفيذ الاستدلال المختلط والاستدلال على الجهاز باستخدام Firebase AI Logic، يُرجى مراجعة هذا القسم للتعرّف على الميزات المتوافقة مع تطبيقات Apple.

الإمكانات والميزات المتوافقة مع الاستدلال على الجهاز فقط

لا يتيح الاستدلال على الجهاز سوى إنشاء النصوص، وتحديدًا إمكانات إنشاء النصوص التالية:

يُرجى مراجعة القائمة التفصيلية للاستدلال المختلط أو الاستدلال على الجهاز فقط غير المتاحَين بعد في أسفل هذه الصفحة.

واجهات برمجة التطبيقات والأجهزة المتوافقة

البدء

يُرجى التأكّد من مراجعة القسم أعلاه الذي يوضّح الإمكانات وواجهات برمجة التطبيقات والأجهزة المتوافقة.

توضّح خطوات البدء هذه الإعداد العام المطلوب لأي طلب موجّه متوافق تريد إرساله.

الخطوة 1: إعداد مشروع Firebase وربط التطبيق بـ Firebase

  1. سجِّل الدخول إلى Firebase console, ثم اختَر مشروع Firebase.

  2. في Firebase console، انتقِل إلى خدمات الذكاء الاصطناعي > منطق الذكاء الاصطناعي.

  3. انقر على البدء لتشغيل سير عمل مُوجَّه يساعدك في إعداد واجهات برمجة التطبيقات والموارد المطلوبة لمشروعك.

  4. اضبط مشروعك لاستخدام مقدّم خدمة "Gemini API".

    ننصحك بالبدء باستخدام Gemini Developer API. يمكنك في أي وقت إعداد Vertex AI Gemini API (ومتطلبات الفوترة الخاصة به).

    بالنسبة إلى Gemini Developer API، ستفعِّل وحدة التحكّم واجهات برمجة التطبيقات المطلوبة وتنشئ مفتاح Gemini API في مشروعك.
    لا تُضِف مفتاح API هذا إلى قاعدة رموز تطبيقك.Gemini مزيد من المعلومات

  5. إذا طُلب منك ذلك في سير عمل وحدة التحكّم، اتّبِع التعليمات المعروضة على الشاشة لتسجيل تطبيقك وربطه بمنصّة Firebase.

  6. انتقِل إلى الخطوة التالية في هذا الدليل لإضافة حزمة تطوير البرامج (SDK) إلى تطبيقك.

الخطوة 2: إضافة حِزم تطوير البرامج (SDK) المطلوبة

استخدِم Swift Package Manager (SPM) لتثبيت تبعيات Xcode وإدارتها. لا تتوفّر ميزة الدعم المختلط إلا عند استخدام SPM.

توفر مكتبة Firebase AI Logic إمكانية الوصول إلى واجهات برمجة التطبيقات للتفاعل مع النماذج التوليدية. يتم تضمين المكتبة كجزء من حزمة Firebase SDK لمنصّات Apple ‏ (firebase-ios-sdk).

إذا كنت تستخدم Firebase حاليًا، تأكَّد من أنّ حزمة Firebase هي الإصدار 12.13.0 أو إصدار أحدث.

  1. في Xcode، افتح مشروع تطبيقك وانتقِل إلى ملف > إضافة تبعيات الحزمة.

  2. عند مطالبتك بذلك، أضِف مستودع حزمة Firebase SDK لمنصّات Apple:

    https://github.com/firebase/firebase-ios-sdk
    
  3. اختَر أحدث إصدار من حزمة SDK.

  4. اختَر مكتبة FirebaseAILogic.

بعد الانتهاء، سيبدأ Xcode تلقائيًا في حلّ التبعيات وتنزيلها في الخلفية.

الخطوة 3: تهيئة الخدمة وإنشاء مثيل لجلسة النموذج

انقر على مقدّم الخدمة 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,
)

الخطوة 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 ونماذج الطلبات غير متاحة للتنفيذ المختلط أو التنفيذ على الجهاز فقط implementations. بالإضافة إلى ذلك، يجب عدم الاعتماد على عدد الرموز المميزة لأنّ العدد سيختلف بين النماذج المستضافة على السحابة الإلكترونية والنماذج على الجهاز فقط، لذا لا يوجد خيار رجوع بديهي.

  • الميزات التالية غير متاحة بعد للاستنتاج على الجهاز فقط. إذا أردت استخدام أي من هذه الميزات، ننصحك باستخدام نموذج مستضاف على السحابة الإلكترونية فقط للحصول على تجربة أكثر اتساقًا.

    • إنشاء نص من إدخالات متعددة الوسائط، مثل الصور والمحتوى الصوتي والفيديوهات والمستندات (ملفات PDF)

    • إنشاء وسائط، مثل الصور أو المحتوى الصوتي أو الفيديو

    • إرسال طلبات تتجاوز 4096 رمزًا مميزًا (أو ما يقارب 3000 كلمة باللغة الإنجليزية)

    • تزويد النموذج على الجهاز فقط بالأدوات المضمّنة لمساعدته في إنشاء ردّه (مثل تنفيذ الرموز البرمجية وسياق عنوان URL وتحديد المصدر من خلال "بحث Search")

  • لا يعرض تتبّع استخدام الذكاء الاصطناعي في Firebase console أي بيانات للاستدلال على الجهاز فقط (بما في ذلك سجلّات الجهاز). ومع ذلك، يمكن رصد أي استدلال يستخدم نموذجًا مستضافًا على السحابة الإلكترونية تمامًا مثل أي استدلال آخر من خلال Firebase AI Logic

قيود إضافية

بالإضافة إلى ما سبق، يفرض الاستدلال على الجهاز فقط القيود التالية:


تقديم ملاحظات حول تجربتك معFirebase AI Logic