مهندسة علاقات المطوّرين
يتطلّب دمج الذكاء الاصطناعي التوليدي الجاهز للإنتاج في تطبيقات Android أكثر من مجرّد الاتصال بنموذج لغوي كبير، بل يتطلّب ذلك أيضًا عناصر تحكّم في الأمان والتكلفة مصمّمة للمؤسسات. في هذه الجلسة، سنتعرّف على كيفية تمكين Firebase AI Logic للمطوّرين من نشر تجارب ذكاء اصطناعي آمنة ومناسبة للميزانية على نطاق واسع.
سنتناول أساسيات الأمان وميزة "فحص التطبيقات من Firebase" وإدارة التكاليف وتوجيه النماذج المتغيّرة والاستفادة من الإمكانات المتعددة الوسائط.
النص
مرحبًا بكم في مؤتمر Android Dev Summit.
اسمي "أنكيتا ساكسينا"، وأنا مديرة منتجات في Firebase.
وأنا "آرثر طومسون"، مهندس علاقات المطوّرين في فريق Firebase.
سنوضّح لك اليوم كيفية إضافة ميزات مستندة إلى الذكاء الاصطناعي التوليدي إلى تطبيقات Android.
حسنًا.
ما هي منصة Firebase؟
ارفع يدك إذا كنت قد سمعت عن Firebase.
أرى الكثير.
رائع.
Firebase هي منصة تطوير التطبيقات من Google.
ما توفّره Firebase هنا هو منصة موحّدة تتضمّن أكثر من 20 منتجًا مدمجًا معًا، لذا لن تواجه تجربة مجزّأة مثل تلك التي قد تحصل عليها مع أي برامج إضافية.
لنتحدّث عن التحديات التي تواجهنا عند طرح الذكاء الاصطناعي التوليدي في تطبيقات الأجهزة الجوّالة.
لقد حدّدنا أهم ثلاثة تحديات.
أولاً، تسريبات مفاتيح واجهة برمجة التطبيقات: يستغرق استخراجها دقائق.
ثانيًا، تحديث أسماء النماذج: ننصح المطوّرين دائمًا بعدم استخدام بيانات غير قابلة للتغيير في البرنامج في تطبيقاتهم، وإلا سيضطرون إلى طرح إصدار جديد في كل مرة يتوفّر فيها نموذج جديد.
ثالثًا، خصوصية الملفات: من المهم جدًا لأي مطوّر أو مستخدم تطبيق أن تكون بياناته محمية وأن تتوفّر الإجراءات الوقائية المناسبة في التطبيق.
نقدّم لك Firebase AI Logic كحلّ رئيسي للتعامل مع التحديات التي ناقشناها.
ما هو عرض القيمة الذي يقدّمه لك Firebase AI Logic؟
نحن نتولّى بشكل أساسي جميع عمليات الخلفية المخصّصة والمعقّدة، لكي لا تضطر إلى تطويرها بنفسك.
ثانيًا، من خلال استخدام حِزم تطوير البرامج (SDK) للعملاء، يمكنك استدعاء Gemini API مباشرةً وبأمان من تطبيقاتك على الأجهزة الجوّالة.
لنتعرّف على التفاصيل ونفهم كيفية تدفق البنية.
على يمين الصفحة، تظهر حِزم تطوير البرامج (SDK) لعملاء Firebase.
لدينا مجموعة متنوعة من حِزم تطوير البرامج (SDK) للعملاء التي نتيحها اليوم.
أريد أن أشير إلى Kotlin التي ندعمها أيضًا.
عندما يريد المطوّر تنفيذ إجراء مستنِد إلى الذكاء الاصطناعي، ترسل حزمة SDK الطلب إلى Firebase AI Logic، الذي يوجّهه بعد ذلك بأمان إلى Gemini Developer API أو Agent Platform Gemini API.
لذا، نحن نتعامل بشكل أساسي مع جميع الخلفيات المخصّصة التي تنشئها اليوم.
والقيمة التي نحصل عليها من ذلك هي تسريع فترة دخول السوق بدون أي تكلفة.
والآن، لننتقل إلى الجزء الممتع.
سيكون هذا عرضًا توضيحيًا يعرض تطبيق FriendlyMeals.
كملاحظة جانبية، سنستخدم التطبيق نفسه في العروض التوضيحية المتبقية في هذه الجلسة، لذا لا تتردد في تنزيله.
يمكنك مسحه ضوئيًا باستخدام رمز الاستجابة السريعة هنا.
لنستعرض العرض التوضيحي.
يساعدك تطبيق FriendlyMeals بشكل أساسي في تحديد الوصفات بناءً على المكونات التي تدخلها.
في سير العمل هذا، تظهر الطريقتان الأساسيتان لتسجيل هذه المكوّنات.
أولاً، أدخِل المكوّنات المتوفّرة لديك.
ثانيًا، تلتقط صورة للمكوّنات.
سأستخدم سير العمل الأول، وهو إدخال المكوّنات.
هذا كل ما وجدته في ثلاجتي.
بينما يتم إنشاء الوصفة، أريد الإشارة إلى بعض الأمور.
لذا، نحن نستخدم نماذج Gemini هنا.
في حالة الاستخدام المحدّدة هذه، سنستدعي ثلاثة نماذج من Gemini 3.8 Flash.
إذا نظرتم إلى الصورة في الأعلى، ستجدون أنّها تستخدم نموذج Gemini Nano Banana، وتحديدًا الإصدار الأخير 2.1 Nano Banana.
قبل الانتقال إلى الرمز البرمجي، أريد أن أؤكّد على عرض القيمة الذي تحصل عليه من خلال Firebase AI Logic.
أولاً، حِزم تطوير البرامج (SDK) للحوسبة بدون خادم.
تريد إضافة ميزة تستخدم الذكاء الاصطناعي، ولكنّك لا تريد إنشاء واجهة خلفية.
وهنا يأتي دور حِزم تطوير البرامج (SDK) من جهة العميل.
يمكنك الاتصال مباشرةً بـ Gemini من تطبيق Android.
والثاني هو ميزات الأمان المضمّنة القوية.
لذا، عند إجراء مكالمات مع Gemini، يمكنك الاستفادة من ميزات مثل "فحص التطبيقات من Firebase" و"نماذج الطلبات من الخادم" وغيرها، وسنتحدث أكثر عن ميزات الأمان هذه بعد قليل.
ثالثًا، يتيح النموذج استخدام الميزات المتقدّمة، مثل الإدخالات المتعددة الوسائط والبث.
لنفترض أنّك تريد إنشاء تطبيق يضيف ميزة بسيطة تستخدم الذكاء الاصطناعي لإنشاء قصة عن حقيبة ظهر سحرية.
import com.google.firebase.Firebase
import com.google.firebase.ai.ai
@Composable
fun MagicBackpackGenerator() {
var output by remember { mutableStateOf("") }
LaunchedEffect(Unit) {
val model=Firebase.ai.generativeModel("gemini-4-argon")
val response = model.generateContent("Write a story about a magic backpack")
output = response.text.toString()
}
MagicBackpackUI(output)
}يتطلّب الأمر هذه الخطوات الثلاث البسيطة لإضافة ميزة تستخدم الذكاء الاصطناعي هذه وتجهيزها للإنتاج.
بما أنّ Firebase AI Logic يسهّل إضافة ميزات تستخدم الذكاء الاصطناعي إلى تطبيقك، فإنّ السؤال الأول الذي يجب طرحه هو: كيف ستؤمّن هذه الميزة؟
لنتعرّف الآن على تفاصيل الأمان، بدءًا من ميزة "فحص التطبيقات من Firebase".
تساعدك ميزة "فحص التطبيقات من Firebase" في حماية بياناتك ومستخدميك والتحكّم في مَن يمكنه الوصول إلى موارد واجهة برمجة التطبيقات من خلال إثبات أنّ الطلبات واردة من تطبيقك.
وهي طبقة أمان إضافية للمساعدة في منع إساءة استخدام تطبيقك.
قبل البدء في كتابة الرمز البرمجي، هناك بعض الخطوات التي يجب اتّخاذها في وحدة تحكُّم Firebase.
لذا، ضمن ميزة "فحص التطبيقات" في وحدة تحكّم Firebase، انتقِل إلى تسجيل تطبيق Android، وأضِف مقدّمي خدمات المصادقة المعنيين.
مثل Play Integrity أو reCAPTCHA Enterprise.
لاحظ أنه بمجرد البدء، بمجرد إعداد ميزة "فحص التطبيقات"، ستحتاج إلى البدء بوضع "غير مفروض".
بهذه الطريقة، تسمح لتطبيقك بتقديم بيانات القياس عن بُعد للتأكّد من أنّ جميع تطبيقاتك تتلقّى طلبات بيانات ناجحة من واجهة برمجة التطبيقات إلى الخلفية قبل تنفيذ الإجراء.
بعد التأكّد من أنّ بيانات القياس عن بُعد تصل بشكل صحيح، يمكنك فرض ميزة "فحص التطبيقات"، وعندها سيتم رفض أي طلبات لا تحتوي على رمز مميّز صالح تم التحقّق منه من خلال الأجهزة.
إليكم الرمز البرمجي لتنفيذ ميزة "فحص التطبيقات".
class FireTravelApp : Application() {
lateinit var appContainer: AppContainer
private set
override fun onCreate() {
super.onCreate()
if (BuildConfig.DEBUG) {
Firebase.appCheck.installAppCheckProviderFactory(
DebugAppCheckProviderFactory.getInstance()
)
} else {
Firebase.appCheck.installAppCheckProviderFactory(
PlayIntegrityAppCheckProviderFactory.getInstance()
)
}
appContainer = AppContainer(this)
}
}في فئة التطبيق، يمكنك تثبيت موفّر خدمة "فحص التطبيقات".
في مراحل التطوير، يمكنك استخدام مقدّم خدمة تصحيح الأخطاء، وعندما تكون مستعدًا للانتقال إلى مرحلة الإنتاج، يمكنك التبديل إلى Play Integrity أو reCAPTCHA Enterprise.
يُرجى تذكُّر أنّه عليك ضبط ميزة "فحص التطبيقات" أولاً قبل إجراء أي طلبات أخرى في Firebase.
عند إنشاء ميزات تستخدم الذكاء الاصطناعي، غالبًا ما يضيف المطوّرون طلبات غير قابلة للتغيير في الرمز البرمجي لتطبيقاتهم مباشرةً، ولكنّ ذلك يؤدي إلى مشكلتَين كبيرتَين.
أولاً، إذا كان هناك أي تحسين مطلوب للطلب، عليك إرسال التحديث الكامل.
ثانيًا، يمكن لأي شخص يفك حزمة تطبيقك الوصول إلى هندسة الطلبات الخاصة بك.
لحلّ هذه المشكلة، تستخدم Firebase AI Logic نماذج الطلبات من الخادم.
بدلاً من الاحتفاظ بطلباتك على الجهاز، يتم تخزينها في السحابة الإلكترونية.
هذه هي طريقة عرض نماذج الطلبات على الخادم في وحدة تحكّم Firebase.
يمكنك إنشاء النماذج بتنسيق .prompt.
---
model: 'gemini-3-flash'
input:
schema:...
tools:...
---
{{role "system"}}
You're a storyteller that tells nice and joyful stories with happy endings.
{{role "user"}}
Create a story about {{topic}} with the length of {{length}} words in the {{language}} language.يمكنك ضبط اسم النموذج هنا.
ويمكنك تعديله في أي وقت.
ولست بحاجة إلى طرح تحديث التطبيق بالكامل.
يمكنك تعديل تعليمات النظام أيضًا، كما أنّه يتطلّب مخطط JSON صارمًا للإدخال والإخراج.
ومرة أخرى، لا يلزم إصدار تطبيق.
وبما أنّها مستندة إلى السحابة الإلكترونية، يمكنك ضبط طلب أو تبديل نموذج على الفور.
وهذه هي الطريقة التي تظهر بها التعليمة البرمجية في Kotlin.
val generativeModel = Firebase.ai.templateGenerativeModel()
val response = generativeModel.generateContent("storyteller-v1",
mapOf(
"topic" to topic,
"length" to length,
"language" to language
)
)
output.value = response.textتجدر الإشارة هنا إلى أنّ نماذج الطلبات من الخادم متاحة في الميزات التجريبية المتاحة للجميع.
يمكنك أيضًا تنفيذ "وضع المصادقة فقط".
يستخدم هذا الإجراء رموز المستخدمين المميزة في Firebase Auth لمنح الإذن بالطلب.
لإكمال ميزات الأمان وتأمين تطبيقك بالكامل، يمكنك أيضًا استخدام "وضع النموذج فقط" مباشرةً من وحدة تحكُّم Firebase.
وبعد نشر تطبيقك، قد ترغب في الحصول على رؤية حول كيفية سلوكه.
في علامة التبويب "تتبُّع استخدام الذكاء الاصطناعي"، يمكنك تفعيل هذه الميزة وضبط معدّل البيانات في الملف الصوتي بنقرة واحدة فقط.
ستسجّل Firebase تلقائيًا المقاييس وأوقات الاستجابة وعدد الرموز المميّزة بدون الحاجة إلى كتابة رمز إحصاءات مخصّص لذلك.
أودّ الإشارة إلى أنّ الوضعَين اللذين رأيناهما للتو متاحان في النافذة نفسها.
بعد تفعيل ميزة "تتبّع استخدام الذكاء الاصطناعي" في وحدة تحكّم Firebase، يتم إرسال هذه البيانات مباشرةً إلى لوحة بيانات الميزة.
يمكنك الاطّلاع على وقت الاستجابة في الشريحة المئوية الـ 95، ورصد الارتفاعات المفاجئة في الأخطاء، وتتبُّع استهلاك الرموز المميّزة في مختلف الوسائط، مثل النصوص والصور والمحتوى الصوتي.
يمكنك أيضًا فحص "عارض التتبُّع" للاطّلاع على عمليات تتبُّع معيّنة.
في هذه الحالة، بما أنّها تعرض النموذج الذي نستخدمه، يمكنكم الاطّلاع على وقت الاستجابة ومعدّل النجاح.
في وحدة تحكُّم Firebase، حيث يمكنك الحصول على جميع بيانات القياس عن بُعد والاطّلاع على كيفية عمل الميزة التي تستخدم الذكاء الاصطناعي
في هذه الحالة، لنفترض أنّكم لاحظتم ارتفاعًا مفاجئًا في استخدام الرموز المميّزة أو في وقت الاستجابة، فيمكنكم استخدام النموذج المختلط لخفض هذه التكاليف أو تقليل وقت الاستجابة.
ومع تحوّل الميزات المستندة إلى الذكاء الاصطناعي التوليدي إلى جزء أساسي من تطبيقاتنا، من المرجّح أنّ الاعتماد على السحابة الإلكترونية فقط بنسبة %100 ليس الخيار الصحيح.
لذلك، من خلال استخدام Nano 4، وهي نماذج تعمل على الأجهزة فقط على Android، يمكن الاستفادة من ثلاث مزايا رئيسية قد تكون مألوفة لكم جميعًا.
الأول هو وضع عدم الاتصال بالإنترنت.
لذا، سواء كنت في مؤتمر كبير أو على متن طائرة أو في مترو الأنفاق، ستظل الميزة التي تستخدم الذكاء الاصطناعي تعمل.
التكلفة:
وبما أنّ الاستنتاج يتم على الجهاز، يمكنك إضافة هذه الميزات بدون القلق بشأن ارتفاع تكاليف ميزة تستخدم الذكاء الاصطناعي.
والعنصر الثالث هو خصوصية البيانات.
لذا، إذا كانت البيانات حساسة، يمكنك أن تضمن للمستخدمين عدم مغادرة أي من الاستنتاجات لجهازك.
لذا، باستخدام Firebase AI Logic، يمكنك ضبط أوضاع الاستنتاج هذه ووضع استراتيجيات توجيه واضحة، مثل PREFER_ON_DEVICE أو PREFER_IN_CLOUD أو ONLY_ON_DEVICE.
عند اختيار ONLY_ON_DEVICE، تستفيد حزمة تطوير البرامج (SDK) مباشرةً من النموذج على الجهاز فقط، متجاوزةً السحابة الإلكترونية بالكامل.
لنبدّل إلى الهاتف.
لذا، سننتقل مرة أخرى إلى FriendlyMeals، وسنلقي نظرة على بعض الإمكانات المتاحة على الجهاز فقط.
أولاً، سنحاول إنشاء وصفة طعام استنادًا إلى بعض المكوّنات التي قد تكون متوفّرة في ثلاجتنا.
في السابق، رأينا "أنكيتا" تستخدم الطريقة اليدوية من خلال كتابة المكوّنات فقط، ثم إنشاء الوصفة.
لنجرّب طريقة أخرى.
لنفترض أنّ لدينا هذه الثلاجة الحقيقية، والتي لم يتم إنشاؤها باستخدام الذكاء الاصطناعي.
هناك الكثير من الزيتون في هذه الثلاجة، لذا لنرى نوع الوصفة التي سنحصل عليها هنا.
لذا، أريد أن أشير إلى بعض الأمور هنا.
أولاً، لم يتم نقل الصورة خارج الجهاز.
تم تحليل الصورة على الجهاز بواسطة Nano من Gemma…
Nano 4.
والأمر الثاني هو سرعة الردّ.
لذا، تم إنشاء المكوّنات.
وبالتالي، يمكنك الاستفادة من الميزتَين.
لا تغادر البيانات الجهاز، ولكن هناك أيضًا انخفاض كبير في وقت الاستجابة.
حسنًا، لنرَ الوصفة التي سنحصل عليها من الثلاجة المليئة بالزيتون.
لذا، هذه المرة، نستخدم السحابة الإلكترونية.
لذا، سنأخذ المكوّنات التي تم التعرّف عليها من الثلاجة ثم نرسلها إلى السحابة الإلكترونية الآن باستخدام Firebase AI Logic لإنشاء وصفة.
لم أرَ سمك السلمون في الثلاجة، ولكنّني أرى بعض السلمون في الوصفة.
لنعد إلى الشرائح، من فضلك.
كما رأينا في العرض التوضيحي، من السهل جدًا التبديل بين نموذج محلي ونموذج في السحابة الإلكترونية.
في الوقت الحالي، تتيح Firebase AI Logic الاستدلال باستخدام التوجيه الأساسي استنادًا إلى مدى توفّر الشبكة.
لإدارة هذا الاستنتاج، يمكنك اعتباره حواجز حماية.
لذلك، تتضمّن البنية دعمًا مدمجًا لميزات مثل النماذج المتعددة الوسائط ومخططات الإدخال والإخراج، بالإضافة إلى التكامل الكامل مع Gemma، عذرًا، مع Gemini Nano 4.
لِنلقِ نظرة على كيفية تطبيق هذه الإجراءات الوقائية عمليًا.
وبالتالي، لا يتطلّب منك التوجيه المختلط إنشاء برمجيات وسيطة معقّدة أو إنشاء الكثير من منطق الاحتياط بنفسك.
من ناحية الرمز البرمجي، إنّها مجرد مَعلمة إضافية.
يمكنك تمرير مَعلمة إلى onDeviceConfig لضبط الوضع المفضّل لديك.
import com.google.firebase.Firebase
import com.google.firebase.ai.ai
@Composable
fun MagicBackpackGenerator() {
var output by remember { mutableStateOf("") }
LaunchedEffect(Unit) {
val model = Firebase.ai.generativeModel(modelName = "gemini-3.8-flash",
onDeviceConfig = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE))
val response = model.generateContent("Write a story about a magic backpack")
output = response.text.toString()
}
MagicBackpackUI(output)
}في هذه الحالة، ستحاول حزمة SDK استخدام النموذج المحلي أولاً، وإذا لم يكن متاحًا، ستعود تلقائيًا إلى السحابة الإلكترونية.
بعد أن تناولنا كيفية إنشاء تطبيقات آمنة والاستفادة من النماذج على الجهاز فقط، لنتحدّث عن تحسين التكلفة.
يمكن توسيع نطاق الميزات التوليدية بسرعة، وبالتالي زيادة فاتورة السحابة الإلكترونية.
لذلك، نحتاج إلى وضع قيود حماية مناسبة للتأكّد من توفّر عناصر التحكّم الاستباقية المناسبة في البنية الأساسية والميزات المبرمَجة التي يمكن أن تساعد في جعل ميزانياتك قابلة للتوقّع وتطبيقاتك فعّالة من الناحية المالية.
على الرغم من أنّ "آرثر" قد سلّط الضوء على أنّ الاستدلال على الجهاز فقط مجاني تمامًا، ستظل هناك دائمًا سيناريوهات تتطلّب مهام استدلال معقّدة وتتطلّب أيضًا إجراءً احتياطيًا وتوجيهًا إلى السحابة الإلكترونية.
عند إجراء هذه الطلبات، تحتاج إلى حواجز وقائية للحفاظ على إمكانية توقّع ميزانيتك.
وهذا هو السبب الرئيسي وراء استخدام حدود الإنفاق في Firebase.
باستخدام حدود الإنفاق، يمكنك التحكّم بشكل أكثر دقة في تكلفة تطبيقاتك.
لذا، بدلاً من إعداد ميزانية عامة على مستوى المشروع، وإرسال تنبيهات الميزانية عبر البريد الإلكتروني فقط، يمكنك ضبط حدّ ميزانية معيّن لخدمات فردية مثل Firebase AI Logic.
عندما يصل إنفاقك إلى %100، توقف Firebase خدمة الذكاء الاصطناعي مؤقتًا تلقائيًا لمنع أي فواتير غير متوقعة.
بالإضافة إلى الحدود القصوى البسيطة للإنفاق، هناك العديد من الاستراتيجيات المتقدّمة لتحسين التكلفة.
نودّ اليوم تسليط الضوء على مشغّلات Firebase AI Logic.
ماذا لو كنت بحاجة إلى منطق مخصّص في الوسط؟
هذا ما تقدّمه عوامل تشغيل Firebase AI Logic.
يمكنك تشغيل دالة قبل إنشاء المحتوى أو بعده.
يمكنك استخدامها للتحقّق من المستخدم وفلترة الإدخال وإضافة سياق، بالإضافة إلى تعديل الردّ.
بعد أن تناولنا تحسين التكلفة والأمان، لننتقل الآن إلى إمكانات النموذج ونرى ما تقدّمه ميزة Firebase AI Logic.
لتشغيل هذه التجارب المتعدّدة الوسائط، يوفّر Firebase AI Logic قائمة شاملة من النماذج والأدوات الجاهزة للاستخدام في مرحلة الإنتاج.
للاستدلال والنصوص والرموز البرمجية والوسائط بسرعة فائقة، يمكنك استخدام Gemini 4 Argon وGemini 3.1 Pro وGemini 3.8 Flash وغيرها.
يمكنك أيضًا ربط هذه النماذج ببيانات من العالم الواقعي باستخدام ميزة "الاستناد إلى بحث Google" و"الاستناد إلى خرائط Google".
أخيرًا، بالنسبة إلى الصوت، نقدّم ميزة تحويل النص إلى كلام طبيعي ونظام إنشاء الصوت في Gemini Live.
لننتقل إلى الهاتف مرة أخرى.
لدينا هنا أطباق حلوة ومالحة.
عذرًا، ليس هذا ما أقصده.
لدينا هنا وصفة "توست الجبن والكاتشب السريع".
تبدو لذيذة
وأول ما نريد إلقاء نظرة عليه هو Live API.
في هذه الحالة، يمكننا استخدام الفيديو الذي يتم إرساله، ويمكنني أن أقول: "مرحبًا Gemini، هل يمكنك إخباري بالمكوّنات الموجودة على الطاولة؟"
استنادًا إلى الصورة على شاشة الكمبيوتر المحمول، المكوّنات المتوفّرة لديك هي الخبز وجبن الشيدر والكاتشب.
حسنًا.
هل يمكنني البدء بالخطوة الأولى من الوصفة؟
نعم.
الخطوة الأولى هي تسخين الفرن الكهربائي أو الشواية مسبقًا على حرارة متوسطة إلى عالية.
شكرًا لك.
حسنًا.
في هذه الحالة، كانت واجهة Live API هي المستخدمة، وستبقى المحادثة مفتوحة إلى أن أغلقها بنفسي.
الميزة الأخرى التي أودّ عرضها هي تحويل الكلام إلى نص، أو تحويل النص إلى كلام، عذرًا.
وباستخدام ميزة "تحويل النص إلى كلام"، في هذا المثال، لدينا تعليمات الوصفة.
وبدلاً من قراءتها، يمكنني النقر على "إنشاء" أو "تحدّث"، وسيتم إرسال نص التعليمات إلى نموذج تحويل النص إلى كلام.
سينشئ الصوت ويرسله إلى الجهاز.
يمكنني تشغيله وتخزينه مؤقتًا لوقت لاحق، وسيتم تشغيله كما نرى هنا.
1.
سخِّنوا الفرن الكهربائي أو الشواية على حرارة متوسطة إلى عالية.
2.
ضَع شريحتَين من الخبز على صينية خبز أو صينية محمصة.
روعة!
رائع، أليس كذلك؟
لذا، تتيح لنا Firebase AI Logic تنفيذ هذه الأنواع من الميزات الرائعة باستخدام بضعة أسطر من الرموز البرمجية فقط.
لنعد إلى الشرائح.
بعد أن رأينا في العرض التوضيحي طريقة عمل Gemini Live API، ماذا لو أردتم إنشاء تجربة حوارية بدون لمس الجهاز بأنفسكم؟
هنا يأتي دور Gemini Live API، الذي يتيح لك إنشاء محادثات صوتية ثنائية الاتجاه.
يمكن لتطبيق Android بثّ الصوت من الميكروفون وإطارات الكاميرا مباشرةً إلى الخادم، وتلقّي ردود صوتية طبيعية وفورية وبزمن انتقال منخفض في الوقت الفعلي.
في Kotlin، يبدو إعداد هذا مألوفًا جدًا.
val model = Firebase.ai.liveModel(
modelName = "gemini-3.1-flash-live-preview",
generationConfig = liveGenerationConfig {
responseModality = ResponseModality.AUDIO
},
systemInstruction = "Your main job is to change the color...",
tools = listOf(Tool.functionDeclarations(listOf(changeColorFunction)))
)
val session = model.connect(::handler)
session.startAudioConversation(::handler)
session.stopAudioConversation()يمكنك إنشاء مثيل لنموذج Live تم ضبطه للردود الصوتية، والاتصال بالجلسة باستخدام معالج بث.
النقطة الأولى التي نودّ الإشارة إليها هنا هي أنّ حزمة SDK تتعامل مع كل ما يتعلّق ببروتوكول WebSocket وبروتوكولات البث في الخلفية.
لذلك، ليس عليك ترميزه، أليس كذلك؟
واصِل كتابة الأسطر.
في ختام عروضنا التوضيحية وتطلّعنا إلى مستقبل تطوير التطبيقات، نودّ تسليط الضوء على أداة فعّالة لسير العمل، وهي مهارات وكلاء Firebase.
# Execute to add agent capabilities to your workspace
npx skills add firebase/agent-skillsبالإضافة إلى ذلك، بالنسبة إلى مستخدمي Antigravity وAndroid Studio، لقد دمجنا Firebase AI Logic مباشرةً في عملية الإعداد.
في الختام، إليكم ثلاث نصائح أساسية: ابدأوا في إنشاء الوكلاء، واستعينوا بأدوات الإنتاج في مرحلة مبكرة، مثل أدوات الأمان التي تناولناها اليوم، واستخدموا مهارات الوكلاء قدر الإمكان.
شكرًا لك.
import com.google.firebase.Firebase
import com.google.firebase.ai.ai
@Composable
fun MagicBackpackGenerator() {
var output by remember { mutableStateOf("") }
LaunchedEffect(Unit) {
val model=Firebase.ai.generativeModel("gemini-4-argon")
val response = model.generateContent("Write a story about a magic backpack")
output = response.text.toString()
}
MagicBackpackUI(output)
}class FireTravelApp : Application() {
lateinit var appContainer: AppContainer
private set
override fun onCreate() {
super.onCreate()
if (BuildConfig.DEBUG) {
Firebase.appCheck.installAppCheckProviderFactory(
DebugAppCheckProviderFactory.getInstance()
)
} else {
Firebase.appCheck.installAppCheckProviderFactory(
PlayIntegrityAppCheckProviderFactory.getInstance()
)
}
appContainer = AppContainer(this)
}
}---
model: 'gemini-3-flash'
input:
schema:...
tools:...
---
{{role "system"}}
You're a storyteller that tells nice and joyful stories with happy endings.
{{role "user"}}
Create a story about {{topic}} with the length of {{length}} words in the {{language}} language.val generativeModel = Firebase.ai.templateGenerativeModel()
val response = generativeModel.generateContent("storyteller-v1",
mapOf(
"topic" to topic,
"length" to length,
"language" to language
)
)
output.value = response.textimport com.google.firebase.Firebase
import com.google.firebase.ai.ai
@Composable
fun MagicBackpackGenerator() {
var output by remember { mutableStateOf("") }
LaunchedEffect(Unit) {
val model = Firebase.ai.generativeModel(modelName = "gemini-3.8-flash",
onDeviceConfig = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE))
val response = model.generateContent("Write a story about a magic backpack")
output = response.text.toString()
}
MagicBackpackUI(output)
}val model = Firebase.ai.liveModel(
modelName = "gemini-3.1-flash-live-preview",
generationConfig = liveGenerationConfig {
responseModality = ResponseModality.AUDIO
},
systemInstruction = "Your main job is to change the color...",
tools = listOf(Tool.functionDeclarations(listOf(changeColorFunction)))
)
val session = model.connect(::handler)
session.startAudioConversation(::handler)
session.stopAudioConversation()# Execute to add agent capabilities to your workspace
npx skills add firebase/agent-skills