تعديل Vertex AI في تطبيق Firebase ديناميكيًا باستخدام ميزة "الإعداد عن بُعد في Firebase"

عند استدعاء Gemini API من تطبيقك باستخدام حزمة تطوير البرامج (SDK) لتطبيق Vertex AI in Firebase، يحتوي طلبك على عدد من المَعلمات التي تتحكم في استجابات الذكاء الاصطناعي التوليدي. وتشمل هذه الإعدادات عادةً اسم النموذج، وملف بدء إنشاء النموذج (الحد الأقصى للرموز المميّزة ودرجة الحرارة وما إلى ذلك)، وإعدادات safety ، وتعليمات النظام، وبيانات الطلب.

في معظم الحالات، ستحتاج إلى تغيير هذه الإعدادات عند الطلب أو حسب الحاجة لعددٍ من السيناريوهات:

  • يمكنك تعديل نموذج الذكاء الاصطناعي التوليدي بدون إصدار تطبيق جديد. يمكنك الترقية إلى إصدارات أحدث وأكثر ثباتًا من النماذج قبل إيقاف الإصدارات السابقة نهائيًا، أو استخدام نماذج ذات تكلفة أقل أو أداء أعلى استنادًا إلى احتياجات المستخدمين وخصائصهم، أو نشر أحدث نماذج وأفضلها بشكل مشروط على شرائح مستخدمين معيّنة (مثل المختبِرين التجريبيين).
  • اضبط الموقع الجغرافي الذي تحصل فيه على النموذج لكي يكون أقرب إلى المستخدِمين.
  • يمكنك استخدام اختبار 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 لاستخدام المَعلمات التي يتم استردادها ديناميكيًا، ما يتيح لك التبديل بين النماذج المختلفة أو تعديل تعليمات النظام بدون تحديث التطبيق.
  • التحكم في المعلمات عن بُعد، وضبط سلوك النموذج وإمكاناته حسب الحاجة.

المتطلبات الأساسية

يفترض هذا الدليل أنّك على دراية باستخدام JavaScript لتطوير تطبيقات الويب. هذا الدليل مستقل عن إطار العمل. قبل البدء، تأكَّد من أنّك أجريت ما يلي:

  • أكمِل دليل البدء الخاص بحزمة تطوير البرامج (SDK) Vertex AI in Firebase. تأكَّد من تنفيذ كلّ ما يلي:

    1. يمكنك إعداد مشروع جديد أو حالي في Firebase، بما في ذلك استخدام خطة أسعار Blaze وتفعيل واجهات برمجة التطبيقات المطلوبة.
    2. ربط تطبيقك بمنصّة Firebase، بما في ذلك تسجيل تطبيقك وإضافة إعدادات Firebase إلى تطبيقك
    3. أضِف حزمة تطوير البرامج (SDK) وأبدِئ خدمة Vertex AI والنموذج التوليدي في تطبيقك.
  • فعِّل حزمة Google Analytics في مشروعك وأضِف حزمة تطوير البرامج (SDK) الخاصة بها إلى تطبيقك (إجراء مطلوب للاستهداف المشروط، مثل ضبط الخدمة والموقع الجغرافي للنموذج استنادًا إلى الموقع الجغرافي لجهاز العميل).

الخطوة 1: ضبط قيم المَعلمات في وحدة تحكّم Firebase

أنشِئ نموذج Remote Config للعميل واضبط المَعلمات والقيم لاسترجاعها واستخدامها في التطبيق.

  1. افتح وحدة تحكّم Firebase، ومن قائمة التنقّل، وسِّع Run (تشغيل) و اختَر Remote Config.
  2. تأكَّد من اختيار العميل من أداة اختيار العميل/الخادم فيверху الصفحة Remote Config.
    • إذا كانت هذه هي المرّة الأولى التي تستخدِم فيها نماذج عملاء Remote Config، انقر على إنشاء الإعداد. تظهر paneإنشاء مَعلمتك الأولى.
    • إذا لم تكن هذه هي المرة الأولى التي تستخدم فيها نماذج Remote Config، انقر على إضافة مَعلمة.
  3. حدِّد مَعلمات Remote Config التالية:

    اسم المَعلمة الوصف النوع القيمة التلقائية
    model_name اسم الطراز للحصول على أحدث قوائم بأسماء النماذج لاستخدامها في الرمز، راجِع أسماء الطُرز المتاحة. سلسلة gemini-1.5-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
  4. عند الانتهاء من إضافة المَعلمات، انقر على نشر التغييرات. إذا كان هذا ليس نموذجًا جديدًا من Remote Config، راجِع التغييرات وانقر على نشر التغييرات مرة أخرى.

الخطوة 2: إضافة حزمة تطوير البرامج (SDK) لنظام التشغيل Remote Config وإعدادها

أضِف حزمة تطوير البرامج (SDK) لنظام التشغيل Remote Config وفعِّلها باتّباع الخطوات التالية:

  1. افتح الرمز في محرِّر نصوص واستورِد Remote Config:

    import { getRemoteConfig } from 'firebase/remote-config';
    
  2. داخل وظيفتك الأساسية وبعد بدء تطبيق Firebase لـ Vertex AI in Firebase حزمة تطوير البرامج (SDK)، يمكنك بدء Remote Config:

      // Initialize Remote Config and get a reference to the service
      const remoteConfig = getRemoteConfig(app);
    
  3. ضبط حدّ أدنى للفاصل الزمني للاسترجاع في هذا المثال، يكون الفاصل الزمني الافتراضي للجلب هو 3600 ثانية، لكننا نوصي بإعداد حد أدنى منخفض نسبيًا للفاصل الزمني للجلب داخل الرمز الخاص بك أثناء التطوير.

    remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
    

الخطوة 3: ضبط قيم المَعلمات داخل التطبيق

يجب ضبط قيم المَعلمات التلقائية داخل التطبيق في عنصر Remote Config، لكي يكون تطبيقك وظيفيًا قبل الاتصال بواجهة Remote Config الخلفية، في حال انقطاع إمكانية وصول العميل إلى الشبكة و/أو في حال عدم ضبط قيم في الواجهة الخلفية.

في هذا المثال، يمكنك ضبط القيم التلقائية يدويًا لاسم الطراز وتعليمات النظام وطلب المستخدم وموقع Vertex AI:

// Set default Remote Config parameter values
remoteConfig.defaultConfig = {
  model_name: 'gemini-1.5-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: 'us-central1',
};

الخطوة 4: استرجاع القيم وتنشيطها

  1. أضِف getValue وfetchAndActivate إلى عمليات الاستيراد:

    import { getValue, fetchAndActivate } from 'firebase/remote-config';
    
  2. بعد الرمز الذي أضفته لضبط القيم التلقائية لـ Remote Config، استرِجِع الإعدادات وفعِّلها، ثمّ خصِّص قيمًا للثوابت modelName وsystemInstructions وprompt وvertexLocation.

    // Fetch and activate Remote Config.
    try {
      await fetchAndActivate(remoteConfig);
    } catch(err) {
      console.error('Remote Config fetch failed', err);
    }
    
    console.log('Remote Config fetched.');
    
    // Assign Remote Config values.
    const modelName = getValue(remoteConfig, 'model_name').asString();
    const systemInstructions = getValue(remoteConfig, 'system_instructions').asString();
    const prompt = getValue(remoteConfig, 'prompt').asString();
    const vertexLocation = getValue(remoteConfig, 'vertex_location').asString();
    

الخطوة 5: تعديل طلبات Vertex AI لاستخدام قيم Remote Config

الآن بعد أن تم إعداد Remote Config بالكامل، عليك تعديل الرمز لاستبدال القيم غير الثابتة بالقيم التي تم الحصول عليها من Remote Config. على سبيل المثال، إذا كنت تستخدِم المثال المستخدَم في مقالة بدء استخدام واجهة برمجة التطبيقات Gemini API باستخدام حِزم تطوير البرامج (SDK) لخدمة Vertex AI في Firebase، عليك تعديله على النحو التالي:

// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);

// Initialize the Vertex AI service
// Optionally specify a location in which to run the service and access the model
const vertexAI = getVertexAI(firebaseApp, { location: vertexLocation });

// Initialize the generative model with a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
const model = getGenerativeModel(vertexAI, {
  model: modelName,
  systemInstruction: systemInstruction
});

// Wrap in an async function so you can use await
async function run() {
  // Provide a prompt that contains text
  const userPrompt = prompt;

  // To generate text output, call generateContent with the text input
  const result = await model.generateContent(userPrompt);

  const response = result.response;
  const text = response.text();
  console.log(text);
}

الخطوة 6: تشغيل التطبيق

شغِّل التطبيق وتأكَّد من أنّه يعمل. يمكنك إجراء تغييرات على الإعدادات من صفحة Remote Config في وحدة تحكّم Firebase، ونشر التغييرات، والتحقّق من النتيجة.

الخطوات التالية

  • اطّلِع على مزيد من المعلومات عن Remote Config.
  • أضِف Google Analytics إلى الرمز لتفعيل ميزة targeting (الاستهداف).