عند طلب Gemini API من تطبيقك باستخدام حزمة تطوير برامج (SDK) Vertex AI in Firebase، يحتوي طلبك على عدد من المَعلمات التي تتحكم في استجابات الذكاء الاصطناعي التوليدي. وتشمل هذه الإعدادات عادةً اسم النموذج، وملف بدء توليد النموذج (الحد الأقصى للرموز والحرارة وما إلى ذلك)، وإعدادات الأمان، وتعليمات النظام، وبيانات الطلب.
في معظم الحالات، ستحتاج إلى تغيير هذه الإعدادات عند الطلب أو حسب الحاجة لعددٍ من السيناريوهات:
- يمكنك تعديل نموذج الذكاء الاصطناعي التوليدي بدون إصدار تطبيق جديد. يمكنك الترقية إلى إصدارات أحدث وأكثر ثباتًا من النموذج قبل إيقاف الإصدارات السابقة نهائيًا، أو استخدام نماذج ذات تكلفة أقل أو أداء أعلى استنادًا إلى احتياجات المستخدمين وخصائصهم، أو نشر أحدث نماذج بشكل مشروط على شرائح مستخدمين معيّنة (مثل المختبِرين التجريبيين).
- اضبط الموقع الجغرافي الذي تحصل فيه على النموذج لكي يكون أقرب إلى المستخدِمين.
- يمكنك استخدام اختبار A/B لاختبار طلبات النظام المختلفة، ثم طرح قيم التجربة الفائزة تدريجيًا على المستخدمين.
- استخدِم ميزة "تسمية الميزات" لعرض ميزات الذكاء الاصطناعي التوليدي أو إخفائها بسرعة في تطبيقك.
توفّر أداة Firebase Remote Config كل هذه الميزات وغيرها، ما يتيح لك تعديل قيم المَعلمات حسب الحاجة وبشكل مشروط لنسخ التطبيق التي تتطابق مع الخصائص التي تحدّدها في وحدة تحكّم Firebase، بدون إصدار إصدار جديد من تطبيقك.
يقدّم دليل الحلول هذا حالات استخدام مقترَحة محدّدة ويوضّح كيفية إضافة Remote Config إلى تطبيق الذكاء الاصطناعي التوليدي.
ما هي مزايا استخدام Firebase Remote Config مع تطبيقك؟
يتيح لك Firebase Remote Config تعديل سلوك تطبيقك بشكل ديناميكي بدون الحاجة إلى تحديث التطبيق. ويُعدّ ذلك مفيدًا بشكل خاص للتطبيقات التي تستخدِم الذكاء الاصطناعي التوليدي، حيث يكون التكرار السريع والضبط الدقيق أمرًا بالغ الأهمية.
حالات الاستخدام الأساسية لتطبيق Remote Config مع تطبيقات الذكاء الاصطناعي التوليدي
ننصحك باستخدام Remote Config مع Vertex AI in Firebase في حالات الاستخدام الأساسية التالية:
- الترقية إلى أحدث إصدار من النموذج بدون تحديث التطبيق: استخدِم مَعلمات Remote Config لتغيير اسم النموذج حسب الحاجة، حتى تتمكّن من الترقية إلى أحدث إصدار من Gemini النموذج المفضّل لديك فور توفّره.
- تعديل تعليمات النظام وإعدادات الأمان بدون تحديث التطبيق: يمكنك تخزين تعليمات النظام وإعدادات الأمان داخل مَعلمات Remote Config لضمان إمكانية تغييرها عند الطلب في حال رصد مشاكل بعد النشر.
- تقليل المخاطر وفرض أمان الذكاء الاصطناعي: استخدِم Remote Config عمليات الطرح لطرح تغييرات الذكاء الاصطناعي التوليدي بأمان وبشكل تدريجي لمستخدمي iOS وAndroid.
حالات الاستخدام المتقدّمة والمُقترَحة لخدمة Remote Config مع تطبيقات الذكاء الاصطناعي التوليدي
بعد تجهيز تطبيقك باستخدام Remote Config وGoogle Analytics، يمكنك استكشاف حالات الاستخدام المتقدّمة:
- ضبط الموقع الجغرافي استنادًا إلى الموقع الجغرافي للعميل: استخدِم Remote Config الشروط لضبط الموقع الجغرافي للنموذج استنادًا إلى الموقع الجغرافي الذي تم رصده للعميل.
- تجربة نماذج مختلفة: يمكنك اختبار نماذج الذكاء الاصطناعي التوليدي المختلفة والتبديل بينها بسرعة، أو حتى نشر نماذج مختلفة في شرائح مستخدمين مختلفة، للعثور على النموذج الأنسب لحالة الاستخدام المحدّدة.
- تحسين أداء النموذج: يمكنك ضبط مَعلمات النموذج بدقة، مثل طلب النظام والحد الأقصى للرموز المميّزة للإخراج ودرجة الحرارة والإعدادات الأخرى.
استخدام تعليمات النظام وطلبات المساعدة وإعدادات النماذج المختلفة استنادًا إلى سمات العميل: عند استخدام Remote Config مع Google Analytics، يمكنك إنشاء شروط استنادًا إلى سمات العميل أو شرائح الجمهور المخصّصة وضبط مَعلمات مختلفة استنادًا إلى هذه السمات.
على سبيل المثال، إذا كنت تستخدم الذكاء الاصطناعي التوليدي لتقديم دعم فني في تطبيقك، ننصحك بضبط تعليمات النظام الخاصة بمنصّة التطبيق لضمان تقديم تعليمات دقيقة لمستخدمي منصّة Android وiOS والويب.
تخصيص التجارب لكل مستخدم: استخدِم Remote Config التخصيص لتحديد تلقائيًا إعدادات الذكاء الاصطناعي التوليدي المثلى لكل مستخدم.
تحكّم في التكاليف: يمكنك تعديل نماذج الذكاء الاصطناعي التوليدي التي يتمّ استدعاؤها عن بُعد، وعدد مرّات استخدامها، وضبط قيم الحدّ الأقصى لرمز الإخراج ديناميكيًا استنادًا إلى جمهور المستخدِم لتقليل التكاليف غير الضرورية.
تحسين تجربة التطبيق ونتائجه: استخدِم A/B Testing مع Remote Config مع تطبيقات iOS وAndroid و Flutter لاختبار التغييرات في مَعلمات الذكاء الاصطناعي التوليدي على مستوى شرائح المستخدمين المختلفة لمعرفة مدى تأثيرها في المقاييس الرئيسية، مثل الاحتفاظ بالمستخدمين والأرباح.
من خلال ربط تطبيق الذكاء الاصطناعي التوليدي بـ Firebase Remote Config، يمكنك إنشاء تطبيقات مستندة إلى الذكاء الاصطناعي تتسم بالمرونة والأمان والتكلفة المنخفضة، مع توفير تجارب ممتعة للمستخدمين.
إضافة Firebase Remote Config إلى تطبيقك
في دليل الحلّ هذا، ستستخدم Firebase Remote Config لتعديل المَعلمات ديناميكيًا في تطبيق Android الذي يستخدِم حزمة تطوير البرامج (SDK) Vertex AI in Firebase. ستتعرّف على كيفية:
- استرِجع المَعلمات، مثل أسماء الطُرز وتعليمات النظام، وفعِّلها من Firebase Remote Config.
- عدِّل طلبات Gemini API لاستخدام المَعلمات التي يتم استرجاعها ديناميكيًا، مما يتيح لك التبديل بين النماذج المختلفة أو تعديل تعليمات النظام بدون تحديث التطبيق.
- التحكّم في المَعلمات عن بُعد، وتعديل سلوك النموذج وإمكاناته حسب الحاجة
المتطلبات الأساسية
يفترض هذا الدليل أنّك على دراية باستخدام Xcode لتطوير تطبيقات لأنظمة Apple الأساسية (مثل iOS). قبل البدء، تأكَّد من تنفيذ ما يلي:
أكمِل دليل البدء الخاص بحزمة تطوير البرامج (SDK) Vertex AI in Firebase. تأكَّد من تنفيذ كلّ ما يلي:
- إعداد مشروع جديد أو حالي على Firebase، بما في ذلك استخدام خطط أسعار Blaze وتفعيل واجهات برمجة التطبيقات المطلوبة
- ربط تطبيقك بمنصّة Firebase، بما في ذلك تسجيل تطبيقك وإضافة إعدادات Firebase إلى تطبيقك
- أضِف حزمة تطوير البرامج (SDK) وأبدِئ خدمة Vertex AI والنموذج التوليدي في تطبيقك.
فعِّل Google Analytics في مشروعك و أضِف حزمة تطوير البرامج (SDK) الخاصة به إلى تطبيقك (مطلوب للاستهداف الشَرطي، مثل ضبط الموقع الجغرافي للخدمة والنموذج استنادًا إلى الموقع الجغرافي لجهاز العميل).
الخطوة 1: ضبط قيم المَعلمات في وحدة تحكّم Firebase
أنشئ نموذج Remote Config عميل وضبط المَعلمات والقيم للاسترجاع والاستخدام في التطبيق.
- افتح مشروعك على Firebase في وحدة تحكُّم Firebase، ومن قائمة التنقّل، وسِّع Run (تشغيل) واختَر Remote Config.
- تأكَّد من اختيار العميل من أداة اختيار العميل/الخادم فيверху الصفحة Remote Config.
- إذا كانت هذه هي المرّة الأولى التي تستخدِم فيها نماذج عملاء Remote Config، انقر على إنشاء الإعداد. ظهرت لوحة إنشاء مَعلمتك الأولى.
- إذا لم تكن هذه هي المرة الأولى التي تستخدم فيها نماذج Remote Config، انقر على إضافة مَعلمة.
حدِّد مَعلمات Remote Config التالية:
اسم المَعلمة الوصف النوع القيمة التلقائية model_name
اسم الطراز للحصول على قوائم محدّثة بأسماء الطُرز لاستخدامها في الرمز البرمجي، يُرجى الاطّلاع على أسماء الطُرز المتاحة. سلسلة gemini-2.0-flash
system_instructions
تعليمات النظام هي مثل "مقدّمة" تضيفها قبل أن يتعرّض النموذج لأي تعليمات أخرى من المستخدم النهائي للتأثير في سلوك النموذج، استنادًا إلى احتياجات وحالات استخدام محدّدة. سلسلة You are a helpful assistant who knows everything there is to know about Firebase!
prompt
الطلب التلقائي لاستخدامه مع ميزة الذكاء الاصطناعي التوليدي سلسلة I am a developer who wants to know more about Firebase!
vertex_location
يمكنك اختياريًا التحكّم في الموقع الجغرافي لتشغيل خدمة Vertex AI والوصول إلى نموذج. يمكنك ضبط شروط لضبط هذا الخيار استنادًا إلى الموقع الجغرافي للعميل الذي يرصده Google Analytics. سلسلة us-central1
عند الانتهاء من إضافة المَعلمات، انقر على نشر التغييرات. إذا كان هذا النموذج ليس نموذجًا جديدًا من Remote Config، راجِع التغييرات وانقر على نشر التغييرات مرة أخرى.
الخطوة 2: إضافة Remote Config وإعداده في تطبيقك
أضِف تبعيات Remote Config وإعداد Remote Config في تطبيقك. كجزء من Vertex AI in Firebase الإعداد، سبق لك إضافة حزمة تطوير البرامج (SDK) لمنصّة Firebase إلى تطبيقك، ولكن عليك أيضًا إضافة Remote Config.
- في Xcode، مع فتح المشروع، انتقِل إلى ملف > إضافة حزمة التبعيات.
- اختَر firebase-ios-sdk، ثم انقر على إضافة حزمة.
- من "مستكشف المشاريع"، اختَر تطبيقك > الاستهدافات > تطبيقك.
- من علامة التبويب الإعدادات العامة، انتقِل إلى الإطارات والكتب والمكتبات والمحتوى المضمّن.
- انقر على + واختَر FirebaseRemoteConfig، ثم انقر على إضافة.
أضِف عملية استيراد
FirebaseRemoteConfig
إلى الرمز:import FirebaseRemoteConfig
داخل الفئة المناسبة لتطبيقك (في نموذج التطبيق، يكون ذلك داخل
VertexAISampleApp
، ضمن فئةAppDelegate
)، اضبط إعدادات Firebase وأضِف Remote Config إلى منطق تطبيقك الرئيسي.هنا، ستُدرِج Remote Config وRemote Config مستمع في الوقت الفعلي كملفَّين تتم importing (استيراد) كي يتمكّن التطبيق من جلب قيم جديدة في الوقت الفعلي، وإضافة الحد الأدنى من فاصل التقاط البيانات:
let remoteConfig = RemoteConfig.remoteConfig() let settings = RemoteConfigSettings() settings.minimumFetchInterval = 3600 remoteConfig.configSettings = settings
في هذا المثال، الفاصل الزمني التلقائي للجلب هو 3600 ثانية، ولكن ننصحك بضبط حد أدنى منخفض نسبيًا للفاصل الزمني للجلب داخل الرمز البرمجي أثناء التطوير.
الخطوة 3: ضبط قيم المَعلمات داخل التطبيق
يجب ضبط قيم المَعلمات التلقائية داخل التطبيق في عنصر Remote Config، لكي يعمل تطبيقك قبل الاتصال بواجهة Remote Config الخلفية، إذا انقطع اتصال العميل بالشبكة و/أو إذا لم يتم ضبط أي قيم في الواجهة الخلفية.
- من وحدة تحكّم Firebase، افتح Remote Config.
- في علامة التبويب المَعلمات، افتح القائمة، واختَر تنزيل القيم التلقائية.
- فعِّل ملف plist.لنظام التشغيل iOS عندما يُطلب منك ذلك، ثم انقر على تنزيل الملف.
- احفظ الملف في دليل تطبيقك (في حال استخدام نموذج التطبيق،
احفظه ضمن
FirebaseVertexAI/Sample/VertexAISample
). - في Xcode، انقر بزر الماوس الأيمن على تطبيقك واختَر إضافة ملفات (في حال استخدام المثال، انقر بزر الماوس الأيمن على VertexAISample واختَر إضافة ملفات إلى "VertexAISample").
- اختَر remote_config_defaults.plist، ثم انقر على إضافة.
عدِّل رمز تطبيقك للإشارة إلى ملف الإعدادات التلقائية:
// Set default values remoteConfig.setDefaults(fromPlist: "remote_config_defaults")
الخطوة 4: استرجاع القيم وتنشيطها
بعد ضبط الإعدادات التلقائية، أضِف ما يلي لاسترداد القيم وتفعيلها:
// Fetch and activate Remote Config values
remoteConfig.fetchAndActivate { status, error in
if let error = error {
print("Error fetching Remote Config: \(error.localizedDescription)")
}
}
من المفترض أن يؤدي ذلك إلى تعديل عنصر Remote Config عند نشر نموذج Remote Config جديد.
الخطوة 5: إضافة مستمع Remote Config في الوقت الفعلي
أضِف مستمعًا لرسائل Remote Config في الوقت الفعلي لضمان أنّ التغييرات التي تجريها على نموذج Remote Config تتم نشرها على العميل فور تعديلها.
تعدِّل التعليمة البرمجية التالية عنصر Remote Config عند تغيُّر قيمة أحد المَعلمات.
// Add real-time Remote Config
remoteConfig.addOnConfigUpdateListener { configUpdate, error in
guard let configUpdate = configUpdate, error == nil else {
print("Error listening for config updates: \(error?.localizedDescription ?? "No error available")")
return
}
print("Updated keys: \(configUpdate.updatedKeys)")
remoteConfig.activate { changed, error in
guard error == nil else {
print("Error activating config: \(error?.localizedDescription ?? "No error available")")
return
}
print("Activated config successfully")
}
}
من المفترض أن يؤدي ذلك إلى تعديل عنصر Remote Config عند نشر نموذج Remote Config جديد.
الخطوة 6: منح قيم Remote Config لمتغيّرات Vertex AI
بعد ضبط Remote Config بالكامل، عدِّل الرمز البرمجي لاستبدال القيم الثابتة بقيم مصدرها Remote Config.
أنشئ قيمًا لتخزين قيم النماذج وطلبات النظام. يوضِّح الرمز البرمجي التالي كيفية الحصول على الموقع الجغرافي واسم الطراز وتعليمات النظام وVertex AI طلب المستخدم وموقعه الجغرافي من Remote Config:
// Initialize the Vertex AI service
// Optionally specify a location in which to run the service and access the model
let vertexLocation = remoteConfig.configValue(forKey: "vertex_location").stringValue
let vertex = VertexAI.vertexAI(location: vertexLocation)
// Initialize the generative model with a model that supports your use case
// Specify a model that supports system instructions, like a Gemini 1.5 model
let modelName = remoteConfig.configValue(forKey: "model_name").stringValue
let systemInstructions = remoteConfig.configValue(forKey: "system_instructions").stringValue
let model = vertex.generativeModel(
modelName: modelName,
systemInstruction: ModelContent(role: "system", parts: systemInstructions)
)
// Provide a prompt that contains text
let userPrompt = remoteConfig.configValue(forKey: "prompt").stringValue
// To generate text output, call generateContent with the text input
let response = try await model.generateContent(userPrompt)
if let text = response.text {
print(text)
}
الخطوة 7: تشغيل التطبيق
أنشئ تطبيقك وشغِّله وتأكَّد من أنّه يعمل. أجرِ تغييرات على الإعدادات من صفحة Remote Config في وحدة تحكّم Firebase console، وانشر التغييرات وتأكَّد من النتيجة.
الخطوات التالية
- اطّلِع على مزيد من المعلومات عن Remote Config.
- أضِف Google Analytics إلى رمز العميل لتفعيل الاستهداف.
- اختبِر إعدادات النماذج المختلفة باستخدام Remote Config واختبار A/B.
- طرح التغييرات في مَعلمات النماذج تدريجيًا باستخدام Remote Config عمليات الطرح
- استخدِم ميزة Remote Config التخصيص لتطبيق تكنولوجيا تعلُّم الآلة من أجل تحديد أفضل الإعدادات للمستخدمين الفرديين.