أضف توصيات إلى تطبيقك باستخدام TensorFlow Lite وFirebase - Android Codelab

1. نظرة عامة

مرحبًا بك في التوصيات باستخدام TensorFlow Lite وFirebase codelab. ستتعلم في هذا الدرس التطبيقي حول التعليمات البرمجية كيفية استخدام TensorFlow Lite وFirebase لنشر نموذج توصية في تطبيقك. يستند هذا الدرس التطبيقي حول التعليمات البرمجية إلى مثال TensorFlow Lite هذا.

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

يوضح هذا البرنامج التعليمي كيفية الحصول على البيانات من مستخدمي تطبيقك باستخدام Firebase Analytics، وإنشاء نموذج تعلم آلي للحصول على توصيات من تلك البيانات، ثم استخدام هذا النموذج في تطبيق Android لتشغيل الاستدلال والحصول على التوصيات. على وجه الخصوص، ستقترح توصياتنا الأفلام التي من المرجح أن يشاهدها المستخدم في ضوء قائمة الأفلام التي أعجبها المستخدم سابقًا.

ما ستتعلمه

  • قم بدمج Firebase Analytics في تطبيق Android لجمع بيانات سلوك المستخدم
  • قم بتصدير تلك البيانات إلى Google Big Query
  • قم بالمعالجة المسبقة للبيانات وتدريب نموذج توصيات TF Lite
  • انشر نموذج TF Lite على Firebase ML وقم بالوصول إليه من تطبيقك
  • قم بالتشغيل على استنتاج الجهاز باستخدام النموذج لاقتراح توصيات للمستخدمين

ماذا ستحتاج

  • أحدث إصدار من أندرويد ستوديو .
  • عينة من الرموز.
  • جهاز اختبار يعمل بنظام Android 7+ وخدمات Google Play 9.8 أو أحدث، أو محاكي مزود بخدمات Google Play 9.8 أو أحدث
  • في حالة استخدام جهاز، كابل اتصال.

كيف ستستخدم هذا البرنامج التعليمي؟

اقرأها من خلال فقط اقرأها وأكمل التمارين

كيف تقيم تجربتك في إنشاء تطبيقات Android؟

مبتدئ متوسط بارع

2. احصل على نموذج التعليمات البرمجية

استنساخ مستودع GitHub من سطر الأوامر.

$ git clone https://github.com/FirebaseExtended/codelab-contentrecommendation-android.git

3. قم باستيراد تطبيق البداية

من Android Studio، حدد دليل codelab-recommendations-android ( android_studio_folder.png ) من تنزيل نموذج التعليمات البرمجية ( File > Open > .../codelab-recommendations-android/start).

يجب أن يكون لديك الآن مشروع البداية مفتوحًا في Android Studio.

4. إنشاء مشروع وحدة تحكم Firebase

إنشاء مشروع جديد

  1. انتقل إلى وحدة تحكم Firebase .
  2. حدد إضافة مشروع (أو قم بإنشاء مشروع إذا كان هو الأول).
  3. حدد أو أدخل اسم المشروع ثم انقر فوق "متابعة" .
  4. تأكد من تمكين "تمكين Google Analytics لهذا المشروع".
  5. اتبع خطوات الإعداد المتبقية في وحدة تحكم Firebase، ثم انقر فوق إنشاء مشروع (أو إضافة Firebase، إذا كنت تستخدم مشروع Google موجودًا).

5. أضف Firebase

  1. من شاشة النظرة العامة لمشروعك الجديد، انقر فوق أيقونة Android لبدء سير عمل الإعداد.
  2. أدخل اسم حزمة Codelab: com.google.firebase.codelabs.recommendations
  3. حدد تسجيل التطبيق .

أضف ملف google-services.json إلى تطبيقك

بعد إضافة اسم الحزمة وتحديد تسجيل، انقر فوق تنزيل google-services.json للحصول على ملف تكوين Firebase Android ثم انسخ ملف google-services.json إلى دليل app في مشروعك. بعد تنزيل الملف، يمكنك تخطي الخطوات التالية الموضحة في وحدة التحكم (لقد تم تنفيذها لك بالفعل في مشروع build-android-start).

أضف البرنامج المساعد لخدمات جوجل إلى التطبيق الخاص بك

يستخدم المكوّن الإضافي google-services ملف google-services.json لتهيئة تطبيقك لاستخدام Firebase. يجب بالفعل إضافة الأسطر التالية إلى ملفات build.gradle.kts في المشروع (تحقق للتأكيد):

app/build.grade.kts

plugins {
    id("com.google.gms.google-services")
}

build.grade.kts

plugins {
    id("com.google.gms.google-services") version "4.3.15" apply false
}

مزامنة مشروعك مع ملفات gradle

للتأكد من أن جميع التبعيات متاحة لتطبيقك، يجب عليك مزامنة مشروعك مع ملفات gradle في هذه المرحلة. حدد ملف > مزامنة المشروع مع ملفات Gradle من شريط أدوات Android Studio.

6. قم بتشغيل تطبيق البداية

الآن بعد أن قمت باستيراد المشروع إلى Android Studio وقمت بتكوين المكون الإضافي google-services باستخدام ملف JSON الخاص بك، فأنت جاهز لتشغيل التطبيق لأول مرة. قم بتوصيل جهاز Android الخاص بك، ثم انقر فوق تشغيل ( تنفيذ.png ) في شريط أدوات Android Studio.

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

7. أضف Firebase Analytics إلى التطبيق

في هذه الخطوة، ستضيف Firebase Analytics إلى التطبيق لتسجيل بيانات سلوك المستخدم (في هذه الحالة، ما هي الأفلام التي يحبها المستخدم). سيتم استخدام هذه البيانات بشكل إجمالي في الخطوات المستقبلية لتدريب نموذج التوصيات.

أضف تبعية قائمة مواد Firebase والتحليلات

تعتبر التبعيات التالية ضرورية لإضافة Firebase Analytics إلى تطبيقك. يجب أن تكون مدرجة بالفعل في ملف app/build.gradle.kts (تحقق).

app/build.grade.kts

implementation(platform("com.google.firebase:firebase-bom:32.0.0"))
implementation("com.google.firebase:firebase-analytics-ktx")

قم بإعداد Firebase Analytics في التطبيق

يحتوي LikedMoviesViewModel على وظائف لتخزين الأفلام التي يحبها المستخدم. في كل مرة يُعجب المستخدم بفيلم جديد، نريد أيضًا إرسال حدث سجل التحليلات لتسجيل هذا الإعجاب.

أضف وظيفة onMovieLiked بالكود أدناه لتسجيل حدث تحليلي عندما ينقر المستخدم على الإعجاب بالفيلم.

أعجبنيMoviesViewModel.kt

import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.analytics.ktx.analytics
import com.google.firebase.analytics.ktx.logEvent
import com.google.firebase.ktx.Firebase


class LikedMoviesViewModel internal constructor (application: Application) : AndroidViewModel(application) {

    ...

    fun onMovieLiked(movie: Movie) {
        movies.setLike(movie, true)
        logAnalyticsEvent(movie.id.toString())
    }
       
}

أضف الحقل والوظيفة التالية لتسجيل حدث Analytics عند إضافة فيلم إلى قائمة "أعجبني" الخاصة بالمستخدم.

أعجبنيMoviesViewModel.kt

import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.analytics.ktx.analytics
import com.google.firebase.analytics.ktx.logEvent
import com.google.firebase.ktx.Firebase


class LikedMoviesViewModel internal constructor (application: Application) : AndroidViewModel(application) {
    ...
    private val firebaseAnalytics = Firebase.analytics

    ...

    /**
     * Logs an event in Firebase Analytics that is used in aggregate to train the recommendations
     * model.
     */
    private fun logAnalyticsEvent(id: String) {
        firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM) {
            param(FirebaseAnalytics.Param.ITEM_ID, id)
        }
    }

8. اختبر تكامل التحليلات لديك

في هذه الخطوة، سنقوم بإنشاء أحداث Analytics في التطبيق والتحقق من إرسالها إلى وحدة تحكم Firebase.

تمكين تسجيل تصحيح الأخطاء في التحليلات

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

صالة

adb shell setprop debug.firebase.analytics.app com.google.firebase.codelabs.recommendations

التحقق من إنشاء أحداث Analytics

  1. في Android studio، افتح نافذة Logcat لفحص التسجيل من تطبيقك.
  2. اضبط مرشح Logcat على السلسلة "حدث التسجيل".
  3. تحقق من أن أحداث Analytics "select_item" يتم إصدارها في كل مرة تعجبك فيها فيلم في التطبيق.

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

اختياري: قم بتأكيد أحداث Analytics في Firebase Console

  1. انتقل إلى وحدة تحكم Firebase .
  2. حدد DebugView ضمن التحليلات
  3. في Android Studio، حدد تشغيل لتشغيل التطبيق وإضافة بعض الأفلام إلى قائمة الإعجابات الخاصة بك.
  4. في DebugView بوحدة تحكم Firebase، تأكد من تسجيل هذه الأحداث أثناء إضافة أفلام في التطبيق.

9. تصدير بيانات التحليلات إلى Big Query

Big Query هو أحد منتجات Google Cloud الذي يسمح لك بفحص ومعالجة كميات كبيرة من البيانات. في هذه الخطوة، ستقوم بربط مشروع Firebase Console بـ Big Query بحيث يتم تصدير بيانات Analytics التي أنشأها تطبيقك تلقائيًا إلى Big Query.

تمكين تصدير الاستعلام الكبير

  1. انتقل إلى وحدة تحكم Firebase .
  2. حدد رمز ترس الإعدادات بجوار نظرة عامة على المشروع ، ثم حدد إعدادات المشروع
  3. حدد علامة التبويب عمليات التكامل .
  4. حدد الارتباط (أو الإدارة ) داخل كتلة BigQuery .
  5. حدد التالي في خطوة حول ربط Firebase بـ BigQuery .
  6. ضمن قسم تكوين التكامل ، انقر فوق المفتاح لتمكين إرسال بيانات Google Analytics وحدد الارتباط بـ BigQuery .

لقد قمت الآن بتمكين مشروع وحدة تحكم Firebase الخاص بك لإرسال بيانات أحداث Firebase Analytics تلقائيًا إلى Big Query. يحدث هذا تلقائيًا دون أي تفاعل إضافي، ومع ذلك، قد لا تتم عملية التصدير الأولى التي تنشئ مجموعة بيانات التحليلات في BigQuery لمدة 24 ساعة. بعد إنشاء مجموعة البيانات، يقوم Firebase باستمرار بتصدير أحداث Analytics الجديدة إلى Big Query في الجدول اليومي، ويجمع الأحداث من الأيام الماضية في جدول الأحداث.

يتطلب تدريب نموذج التوصيات الكثير من البيانات. نظرًا لأنه ليس لدينا بالفعل تطبيق يقوم بإنشاء كميات كبيرة من البيانات، فسنقوم في الخطوة التالية باستيراد مجموعة بيانات نموذجية إلى BigQuery لاستخدامها في بقية هذا البرنامج التعليمي.

10. استخدم BigQuery للحصول على بيانات التدريب النموذجية

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

استيراد مجموعة البيانات النموذجية إلى BigQuery

  1. انتقل إلى لوحة تحكم BigQuery في وحدة تحكم Google السحابية.
  2. حدد اسم المشروع الخاص بك في القائمة.
  3. حدد اسم مشروعك في الجزء السفلي من شريط التنقل الأيسر في BigQuery للاطلاع على التفاصيل.
  4. حدد إنشاء مجموعة بيانات لفتح لوحة إنشاء مجموعة البيانات.
  5. أدخل "firebase_recommendations_dataset" لمعرف مجموعة البيانات وحدد إنشاء مجموعة بيانات .
  6. ستظهر مجموعة البيانات الجديدة في القائمة اليسرى تحت اسم المشروع. انقر فوقه.
  7. حدد إنشاء جدول لفتح لوحة إنشاء الجدول.
  8. لإنشاء جدول من حدد "Google Cloud Storage".
  9. في حقل تحديد ملف من مجموعة GCS ، أدخل "gs://firebase-recommendations/recommendations-test/formatted_data_filtered.txt".
  10. حدد "JSONL" في القائمة المنسدلة لتنسيق الملف .
  11. أدخل "recommendations_table" لاسم الجدول .
  12. حدد المربع الموجود ضمن المخطط > الكشف التلقائي > معلمات المخطط والإدخال
  13. حدد إنشاء جدول

استكشاف مجموعة البيانات النموذجية

في هذه المرحلة، يمكنك اختياريًا استكشاف المخطط ومعاينة مجموعة البيانات هذه.

  1. حدد firebase-recommendations-dataset في القائمة اليسرى لتوسيع الجداول التي تحتوي عليها.
  2. حدد جدول جدول التوصيات لعرض مخطط الجدول.
  3. حدد معاينة للاطلاع على بيانات أحداث Analytics الفعلية التي يحتوي عليها هذا الجدول.

إنشاء بيانات اعتماد حساب الخدمة

الآن، سنقوم بإنشاء بيانات اعتماد حساب الخدمة في مشروع Google Cloud Console الخاص بنا والذي يمكننا استخدامه في بيئة Colab في الخطوة التالية للوصول إلى بيانات BigQuery وتحميلها.

  1. تأكد من تمكين الفوترة لمشروع Google Cloud الخاص بك.
  2. تفعيل واجهات برمجة التطبيقات BigQuery وBigQuery Storage API. < اضغط هنا >
  3. انتقل إلى صفحة إنشاء مفتاح حساب الخدمة .
  4. من قائمة حسابات الخدمة ، حدد حساب خدمة جديد .
  5. في الحقل اسم حساب الخدمة ، أدخل اسمًا.
  6. من قائمة الدور ، حدد المشروع > المالك .
  7. انقر فوق إنشاء . ملف JSON يحتوي على التنزيلات الرئيسية لجهاز الكمبيوتر الخاص بك.

في الخطوة التالية، سنستخدم Google Colab لمعالجة هذه البيانات مسبقًا وتدريب نموذج التوصيات الخاص بنا.

11. بيانات المعالجة المسبقة ونموذج توصيات التدريب

في هذه الخطوة، سوف نستخدم دفتر Colab لإجراء الخطوات التالية:

  1. قم باستيراد بيانات BigQuery إلى دفتر ملاحظات Colab
  2. المعالجة المسبقة للبيانات لإعدادها للتدريب النموذجي
  3. تدريب نموذج التوصيات على البيانات التحليلية
  4. تصدير النموذج كنموذج TF لايت
  5. قم بنشر النموذج على Firebase Console حتى نتمكن من استخدامه في تطبيقنا

قبل إطلاق دفتر ملاحظات Colab التدريبي، سنقوم أولاً بتمكين Firebase Model Management API حتى تتمكن Colab من نشر النموذج المُدرب على وحدة تحكم Firebase الخاصة بنا.

تفعيل واجهة برمجة تطبيقات إدارة نماذج Firebase

قم بإنشاء دلو لتخزين نماذج ML الخاصة بك

في وحدة تحكم Firebase الخاصة بك، انتقل إلى التخزين وانقر على البدء. fbbea78f0eb3dc9f.png

اتبع الحوار لإعداد الدلو الخاص بك.

19517c0d6d2aa14d.png

تمكين Firebase ML API

انتقل إلى صفحة Firebase ML API على Google Cloud Console وانقر على "تمكين".

استخدم دفتر ملاحظات Colab لتدريب النموذج ونشره

افتح دفتر colab باستخدام الرابط التالي وأكمل الخطوات الموجودة فيه. بعد الانتهاء من الخطوات الواردة في دفتر ملاحظات Colab، سيكون لديك ملف نموذج TF lite تم نشره على وحدة تحكم Firebase والذي يمكننا مزامنته مع تطبيقنا.

فتح في كولاب

12. قم بتنزيل النموذج في تطبيقك

في هذه الخطوة، سنقوم بتعديل تطبيقنا لتنزيل النموذج الذي قمنا بتدريبه للتو من Firebase Machine Learning.

أضف تبعية Firebase ML

هناك حاجة إلى التبعية التالية لاستخدام نماذج Firebase Machine Learning في تطبيقك. يجب أن تتم إضافته بالفعل (التحقق).

app/build.grade.kts

implementation("com.google.firebase:firebase-ml-modeldownloader:24.1.2")

قم بتنزيل النموذج باستخدام Firebase Model Manager API

انسخ الكود أدناه إلى RecommendationClient.kt لإعداد الشروط التي يتم بموجبها تنزيل النموذج وإنشاء مهمة تنزيل لمزامنة النموذج البعيد مع تطبيقنا.

توصيةClient.kt

    private fun downloadModel(modelName: String) {
        val conditions = CustomModelDownloadConditions.Builder()
            .requireWifi()
            .build()
        FirebaseModelDownloader.getInstance()
            .getModel(modelName, DownloadType.LOCAL_MODEL, conditions)
            .addOnCompleteListener {
                if (!it.isSuccessful) {
                    showToast(context, "Failed to get model file.")
                } else {
                    showToast(context, "Downloaded remote model: $modelName")
                    GlobalScope.launch { initializeInterpreter(it.result) }
                }
            }
            .addOnFailureListener {
                showToast(context, "Model download failed for recommendations, please check your connection.")
            }
    }

13. قم بدمج نموذج توصية Tensorflow Lite في تطبيقك

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

تحميل القاموس والتسميات

يتم إدراج التسميات المستخدمة لإنشاء مرشحي التوصيات بواسطة نموذج التوصيات في الملف sorted_movie_vocab.json في المجلد res/assets. انسخ الكود التالي لتحميل هؤلاء المرشحين.

توصيةClient.kt

    /** Load recommendation candidate list.  */
    private suspend fun loadCandidateList() {
        return withContext(Dispatchers.IO) {
            val collection = MovieRepository.getInstance(context).getContent()
            for (item in collection) {
                candidates[item.id] = item
            }
            Log.v(TAG, "Candidate list loaded.")
        }
    }

تنفيذ المعالجة المسبقة

في خطوة المعالجة المسبقة، نقوم بتغيير شكل البيانات المدخلة لتتناسب مع ما يتوقعه نموذجنا. هنا، نقوم بحشو طول الإدخال بقيمة عنصر نائب إذا لم نقم بإنشاء الكثير من إعجابات المستخدم بالفعل. انسخ الكود أدناه:

توصيةClient.kt

    /** Given a list of selected items, preprocess to get tflite input.  */
    @Synchronized
    private suspend fun preprocess(selectedMovies: List<Movie>): IntArray {
        return withContext(Dispatchers.Default) {
            val inputContext = IntArray(config.inputLength)
            for (i in 0 until config.inputLength) {
                if (i < selectedMovies.size) {
                    val (id) = selectedMovies[i]
                    inputContext[i] = id
                } else {
                    // Padding input.
                    inputContext[i] = config.pad
                }
            }
            inputContext
        }
    }


تشغيل المترجم لتوليد التوصيات

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

توصيةClient.kt

    /** Given a list of selected items, and returns the recommendation results.  */
    @Synchronized
    suspend fun recommend(selectedMovies: List<Movie>): List<Result> {
        return withContext(Dispatchers.Default) {
            val inputs = arrayOf<Any>(preprocess(selectedMovies))

            // Run inference.
            val outputIds = IntArray(config.outputLength)
            val confidences = FloatArray(config.outputLength)
            val outputs: MutableMap<Int, Any> = HashMap()
            outputs[config.outputIdsIndex] = outputIds
            outputs[config.outputScoresIndex] = confidences
            tflite?.let {
                it.runForMultipleInputsOutputs(inputs, outputs)
                postprocess(outputIds, confidences, selectedMovies)
            } ?: run {
                Log.e(TAG, "No tflite interpreter loaded")
                emptyList()
            }
        }
    }



تنفيذ مرحلة ما بعد المعالجة

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

توصيةClient.kt

    /** Postprocess to gets results from tflite inference.  */
    @Synchronized
    private suspend fun postprocess(
        outputIds: IntArray, confidences: FloatArray, selectedMovies: List<Movie>
    ): List<Result> {
        return withContext(Dispatchers.Default) {
            val results = ArrayList<Result>()

            // Add recommendation results. Filter null or contained items.
            for (i in outputIds.indices) {
                if (results.size >= config.topK) {
                    Log.v(TAG, String.format("Selected top K: %d. Ignore the rest.", config.topK))
                    break
                }
                val id = outputIds[i]
                val item = candidates[id]
                if (item == null) {
                    Log.v(TAG, String.format("Inference output[%d]. Id: %s is null", i, id))
                    continue
                }
                if (selectedMovies.contains(item)) {
                    Log.v(TAG, String.format("Inference output[%d]. Id: %s is contained", i, id))
                    continue
                }
                val result = Result(
                    id, item,
                    confidences[i]
                )
                results.add(result)
                Log.v(TAG, String.format("Inference output[%d]. Result: %s", i, result))
            }
            results
        }
    }


اختبر تطبيقك!

أعد تشغيل تطبيقك. عند تحديد بعض الأفلام، يجب أن يقوم تلقائيًا بتنزيل النموذج الجديد والبدء في إنشاء التوصيات!

14. تهانينا!

لقد قمت بإنشاء ميزة توصيات في تطبيقك باستخدام TensorFlow Lite وFirebase. لاحظ أن التقنيات وخطوط الأنابيب الموضحة في هذا الدرس التطبيقي حول الترميز يمكن تعميمها واستخدامها لخدمة أنواع أخرى من التوصيات أيضًا.

ما قمنا بتغطيته

  • فايربيس مل
  • تحليلات Firebase
  • تصدير أحداث التحليلات إلى BigQuery
  • أحداث تحليلات ما قبل المعالجة
  • تدريب توصيات نموذج TensorFlow
  • تصدير النموذج ونشره إلى Firebase Console
  • تقديم توصيات الأفلام في التطبيق

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

  • قم بتنفيذ توصيات Firebase ML في تطبيقك.

يتعلم أكثر

لدي سؤال؟

الإبلاغ عن المشكلات