تتيح لك أداة Firebase Remote Config إجراء الضبط من جهة الخادم باستخدام الإصدار 6.7.0 أو الإصدارات الأحدث من "حزمة تطوير البرامج (SDK) لإدارة Firebase باستخدام بايثون". تتيح لك هذه الميزة إدارة سلوك التطبيقات من جهة الخادم و إعداداتها ديناميكيًا باستخدام Remote Config. ويشمل ذلك عمليات التنفيذ التي لا تستخدِم الخادم، مثل Cloud Functions.
على عكس حِزم تطوير البرامج (SDK) لعملاء Firebase التي تُستخدَم لاسترداد إعدادات خاصة بالعملاء مشتقة من نموذج Remote Config، تعمل حزمة تطوير البرامج (SDK)Remote Config من جهة الخادم على تنزيل نموذج Remote Configكامل من Firebase. يمكن لخادمك بعد ذلك تقييم النموذج مع كل طلب وارد واستخدام منطقه الخاص لتقديم استجابة مخصّصة مع وقت استجابة منخفض جدًا. يمكنك استخدام الشروط للتحكّم في الردود وتخصيصها استنادًا إلى النسب المئوية العشوائية وسمات العميل المحدّدة في الإشارات المخصّصة.
باستخدام Remote Config من جهة الخادم، يمكنك إجراء ما يلي:
- يمكنك تحديد مَعلمات الضبط للتطبيقات التي تعمل على خادمك أو يتم الوصول إليها من خلاله، ما يتيح حالات استخدام مثل الضبط عن بُعد لمَعلمات نماذج الذكاء الاصطناعي وطلبات المستخدمين وعمليات الدمج الأخرى، لضمان أمان مفاتيح واجهة برمجة التطبيقات.
- تعديل المَعلمات ديناميكيًا استجابةً للتغييرات في بيئتك أو تغييرات التطبيق الأخرى، مثل تعديل مَعلمات نموذج المعالجة المحدودة للغة ونقاط نهاية النموذج
- التحكّم في التكاليف من خلال تعديل واجهات برمجة التطبيقات التي يطلبها الخادم عن بُعد
- إنشاء إعدادات مخصّصة أثناء التشغيل للعملاء الذين يصلون إلى الخادم
- سجِّل العملاء الذين تلقّوا قيمة مَعلمة واستخدِم ذلك في Cloud Functions كجزء من نظام التحقّق من الأهلية.
يمكنك نشر Remote Config من جهة الخادم على Cloud Run أو Cloud Functions أو بيئات الخوادم المستضافة ذاتيًا.
قبل البدء
اتّبِع التعليمات الواردة في مقالة إضافة حزمة تطوير البرامج (SDK) لخدمة Firebase Admin إلى الخادم لإنشاء مشروع على Firebase وإعداد حساب خدمة وإضافة حزمة تطوير البرامج (SDK) لـ Firebase Python إلى الخادم.
الخطوة 1: إعداد حزمة تطوير البرامج (SDK) لمنصّة Firebase Admin Python SDK وتفويض طلبات واجهة برمجة التطبيقات
عند إعداد حزمة SDK للمشرف بدون مَعلمات، تستخدِم حزمة SDK مَعلمات Google
Application Default
Credentials
وتقرأ الخيارات من متغيّر GOOGLE_APPLICATION_CREDENTIALS
في البيئة. لإعداد حزمة SDK وإضافة Remote Config:
import firebase_admin
import asyncio
import json
firebase_admin.initialize_app()
الخطوة 2: تحديد قيم المَعلمات التلقائية لتطبيق الخادم
حدِّد المتغيّرات في تطبيقك التي تريد تعديلها ديناميكيًا باستخدام Remote Config. بعد ذلك، حدِّد المتغيّرات التي يجب ضبطها تلقائيًا في تطبيقك والقيم التلقائية التي يجب أن تكون لها. يضمن ذلك تشغيل تطبيقك بنجاح حتى في حال انقطاع اتصاله بالخادم الخلفي Remote Config.
على سبيل المثال، إذا كنت تكتب تطبيق خادم يدير دالة الذكاء الاصطناعي التوليدي، يمكنك ضبط اسم نموذج تلقائي ومقدّمة الطلب وإعدادات الذكاء الاصطناعي التوليدي، على النحو التالي:
اسم المَعلمة | الوصف | النوع | القيمة التلقائية |
---|---|---|---|
model_name |
اسم واجهة برمجة التطبيقات للنموذج | سلسلة | gemini-2.0-flash |
preamble_prompt
|
طلب إضافة علامة "قبل" إلى طلب العميل | سلسلة | I'm a
developer who
wants to learn
about Firebase and
you are a helpful
assistant who
knows everything
there is to know
about Firebase! |
generation_config
|
المَعلمات المطلوب إرسالها إلى النموذج | JSON |
{"stopSequences":
["I hope this
helps"],
"temperature":
0.7,
"maxOutputTokens":
512, "topP": 0.1,
"topK": 20} |
الخطوة 3: ضبط تطبيق الخادم
بعد تحديد المَعلمات التي تريد استخدامها مع Remote Config، يمكنك ضبط تطبيقك لضبط القيم التلقائية، واسترجاع نموذج Remote Config الخاص بالخادم، واستخدام قيمه. توضِّح الخطوات التالية كيفية ضبط إعدادات تطبيق Python.
الوصول إلى النموذج وتحميله
from firebase_admin import remote_config # Initialize server-side Remote Config template = remote_config.init_server_template() # Load the template from the backend asyncio.run(template.load())
إذا كنت تستخدم Python مع Cloud Functions، يمكنك استخدام
get_server_template
غير المتزامن لاسترداد الجدول الزمني وتحميله في خطوة واحدة:# Initialize server-side Remote Config template = remote_config.get_server_template()
لضمان تشغيل تطبيقك بنجاح حتى في حال انقطاع اتصاله بالخادم الخلفي Remote Config، أضِف قيمًا تلقائية لكل مَعلمة في تطبيقك. لإجراء ذلك، أضِف
defaultConfig
داخل دالةinit_server_template
أوget_server_template
للنموذج:template = remote_config.init_server_template({ defaultConfig: { 'model_name': "gemini-pro", 'generation_config': '{"stopSequences": [], "temperature": 0.7, "maxOutputTokens": 512, "topP": 0.1, "topK": 20}', 'preamble_prompt': "I'm a developer who wants to learn about Firebase and you are a helpful assistant who knows everything there is to know about Firebase!" }, }) # Load Remote Config asyncio.run(template.load())
هناك طريقة أخرى يمكنك من خلالها بدء نموذج، وهي استخدام الدالة
get_server_template
لاسترداد نموذج الخادم المطلوب. يمكنك تحويل هذا النموذج إلى تنسيق JSON باستخدام الدالةtemplate.to_json
. يمكن تخزين نموذج JSON هذا على الجهاز. يمكنك بعد ذلك تهيئة نموذج JSON هذا باستخدام الدالةinit_server_template
.بعد تحميل النموذج، استخدِم
template.evaluate()
لاستيراد المَعلمات وال القيم من النموذج:# Add template parameters to config config = template.evaluate()
اختياريًا، إذا حدّدت شروطًا في نموذج Remote Config، حدِّد القيم التي تريدها وقدِّمها:
- في حال استخدام شرائح قياس الأداء بالنسب المئوية
الشرطية،
أضِف
randomizationId
التي تريد استخدامها لتقييم شرائح القياس ضمن دالةtemplate.evaluate()
. - في حال استخدام إشارات مخصّصة، حدِّد السمات وقيمها. تتوفّر الإشارات المخصّصة مع IDE IDE Firebase Admin Python SDK v6.7.0 والإصدارات الأحدث.
على سبيل المثال، يمكنك ضبط معرّف عملية تثبيت على Firebase على
randomizationId
أو معرّف مستخدم، لضمان إضافة كل مستخدم يتواصل مع خادمك إلى المجموعة العشوائية المناسبة،version
كإشارة مخصّصة لاستهداف إصدارات معيّنة من العميل،platform
كإشارة مخصّصة لاستهداف منصة العميل.لمزيد من المعلومات عن الشروط، يُرجى الاطّلاع على أنواع قاعدة الشروط.
# Add template parameters to `config`. Evaluates the # template and returns the parameter value assigned to # the group assigned to the {randomizationId} and version. config = template.evaluate({ 'randomizationId': "2ac93c28-c459-4760-963d-a3974ec26c04", 'version': "1.0", 'platform': "Android" })
- في حال استخدام شرائح قياس الأداء بالنسب المئوية
الشرطية،
أضِف
بعد ذلك، استخرِج قيم المَعلمات التي تحتاجها من متغيّر الإعداد. استخدِم
getters
لتحويل القيم من Remote Config إلى التنسيق المتوقّع. في ما يلي الأنواع التالية المتوافقة:- منطقي:
get_bool
- الكائن:
get_value
- الرقم:
get_number
- السلسلة:
get_string
على سبيل المثال، إذا كنت تنفِّذ Vertex AI على الخادم وتريد تغيير النموذج ومعلماته، يمكنك ضبط المَعلمات لكلّ من
model_name
وgeneration_config
. في ما يلي مثال على كيفية الوصول إلى قيم Remote Config:# Replace defaults with values from Remote Config. generation_config = json.loads(config.get_string('generation_config')) is_ai_enabled = config.get_bool('is_ai_enabled') model = config.get_string('model_name') # Generates a prompt comprised of the Remote Config # parameter and prepends it to the user prompt. prompt = f"{config.get_string('preamble_prompt')}{req.args.get('prompt')}"
- منطقي:
إذا كان خادمك يعمل لفترة طويلة، على عكس بيئة لا تتضمّن خادمًا، استخدِم
setInterval
لإعادة تحميل النموذج بشكل دوري لضمان جلب أحدث نموذج بشكل دوري من خادم Remote Config.
الخطوة 4: ضبط قيم المَعلمات الخاصة بالخادم في Remote Config
بعد ذلك، أنشئ نموذج خادم Remote Config واضبط المَعلمات والقيمة لاستخدامها في تطبيقك.
لإنشاء نموذج Remote Config خاص بالخادم:
- افتح صفحة مَعلمات Remote Config وحدة تحكُّم Firebase، واختَر الخادم من أداة اختيار العميل/الخادم.
- حدِّد Remote Config مَعلمة بالأسماء وأنواع البيانات نفسها التي استخدمتها في المَعلمات التي حدّدتها في تطبيقك، وقدِّم قيمًا لها. ستلغي
هذه القيم القيمة
defaultConfig
التي ضبطتها في ضبط تطبيق الخادم عند جلب القالَب وتقييمه وتحديد هذه القيم لمتغيّراتك. - يمكنك اختياريًا ضبط شروط لتطبيق القيم باستمرار على ملف شخصي عشوائي من النماذج أو الإشارات المخصّصة التي تحدّدها. لمزيد من المعلومات عن الشروط، يُرجى الاطّلاع على أنواع قاعدة الشروط.
- عند الانتهاء من إضافة المَعلمات، انقر على نشر التغييرات.
- راجِع التغييرات وانقر على نشر التغييرات مرة أخرى.
الخطوة 5: النشر باستخدام Cloud Functions أو Cloud Run
إذا كان تطبيق الخادم خفيفًا ومستهدِفًا للأحداث، ننصحك بنشر الرمز باستخدام Cloud Functions. على سبيل المثال، إذا كان لديك تطبيق يتضمّن حوارًا بين الشخصيات يستند إلى واجهة برمجة تطبيقات الذكاء الاصطناعي التوليدي (مثل Google AI أو Vertex AI)، يمكنك في هذه الحالة استضافة منطق عرض نموذج اللغة الكبير في دالة يستدعيها تطبيقك عند الطلب.
لاستخدام حلّ يستخدِم الجيل الثاني من Cloud Functions مع Remote Config من جهة الخادم، اطّلِع على مقالة استخدام Remote Config من جهة الخادم مع Cloud Functions و Vertex AI.
للاطّلاع على مزيد من المعلومات عن نشر تطبيقك باستخدام Cloud Functions، اطّلِع على مقالة البدء: كتابة وظائفك الأولى واختبارها ونشرها.
إذا كان تطبيقك مخصّصًا للتشغيل لفترة طويلة (على سبيل المثال، تطبيق ويب يحتوي على مواد عرض)، ننصحك باستخدام Cloud Run. لنشر تطبيق الخادم باستخدام Cloud Run، اتّبِع الدليل المتوفّر في مقالة البدء السريع: نشر خدمة Python في Cloud Run.
لمزيد من المعلومات عن أفضل حالات استخدام Cloud Run وCloud Functions، يُرجى الاطّلاع على المقالة Cloud Functions مقارنةً بـ Cloud Run: حالات استخدام أحدهما بدلاً من الآخر.