الانتقال إلى حِزم تطوير البرامج (SDK) الخاصة بـ Firebase AI Logic من الإصدار التجريبي من حِزم تطوير البرامج (SDK) الخاصة بـ Vertex AI في Firebase


كانت Firebase AI Logic وحزم تطوير البرامج (SDK) الخاصة بالعملاء تُعرف سابقًا باسم "Vertex AI in Firebase". وللإشارة بشكل أفضل إلى خدماتنا وميزاتنا الموسّعة (على سبيل المثال، نحن نتيح الآن استخدام Gemini Developer API)، أعدنا تسمية خدماتنا وأعدنا تجميعها في Firebase AI Logic.

للوصول بأمان إلى نماذج الذكاء الاصطناعي التوليدي من Google مباشرةً من تطبيقاتك على الأجهزة الجوّالة أو الويب، يمكنك الآن اختيار مقدّم خدمة "Gemini API"، إما Agent Platform Gemini API (formerly Vertex AI) المتاح منذ فترة طويلة أو Gemini Developer API الجديد. يعني هذا أنّه يمكنك الآن استخدام Gemini Developer API، الذي يوفّر فئة بلا تكلفة مع حدود معقولة للطلبات والحصص.

نظرة عامة على خطوات نقل البيانات إلى حِزم تطوير البرامج (SDK) في Firebase AI Logic

  • الخطوة 1: اختَر أفضل مقدّم خدمة لـ Gemini API يناسب تطبيقك وحالات الاستخدام.

  • الخطوة 2: تفعيل واجهات برمجة التطبيقات المطلوبة

  • الخطوة 3: حدِّث المكتبة المستخدَمة في تطبيقك.

  • الخطوة 4: تعديل عملية الإعداد في تطبيقك

  • الخطوة 5: عدِّل الرمز البرمجي حسب الميزات التي تستخدمها.

الخطوة 1: اختيار أفضل موفّر لخدمة "Gemini API" لتطبيقك

من خلال عملية نقل البيانات هذه، يمكنك اختيار مزوّد خدمة "Gemini API" من بين الخيارات التالية:

  • كان بإمكان حِزم SDK القديمة التي تحمل الاسم "Vertex AI in Firebase" استخدام Agent Platform Gemini API (formerly Vertex AI) فقط.

  • تتيح لك حِزم تطوير البرامج (SDK) الجديدة Firebase AI Logic اختيار مقدّم خدمة Gemini API الذي تريد الاتصال به مباشرةً من تطبيقك على الأجهزة الجوّالة أو الويب، سواء كان Gemini Developer API أو Agent Platform Gemini API (formerly Vertex AI).

راجِع الاختلافات بين استخدام مقدِّمَي خدمات Gemini API، خاصةً في ما يتعلق بالميزات المتوافقة والأسعار والحدود القصوى لمعدّل الاستخدام. على سبيل المثال، لا يتيح Gemini Developer API تقديم الملفات باستخدام عناوين URL من النوع Cloud Storage، ولكن قد يكون خيارًا جيدًا إذا أردت الاستفادة من الفئة المجانية والحصة المعقولة.

الخطوة 2: تفعيل واجهات برمجة التطبيقات المطلوبة

تأكَّد من تفعيل جميع واجهات برمجة التطبيقات المطلوبة في مشروع Firebase لاستخدام مقدّم خدمة "Gemini API" الذي اخترته.

يُرجى العِلم أنّه يمكنك تفعيل كلتا الجهتَين المقدّمتَين لواجهة برمجة التطبيقات في مشروعك في الوقت نفسه.

  1. سجِّل الدخول إلى Firebase وحدة التحكّم، ثم اختَر مشروع Firebase.

  2. في وحدة تحكّم Firebase، انتقِل إلى خدمات الذكاء الاصطناعي > منطق الذكاء الاصطناعي.

  3. انقر على Get started (البدء) لتشغيل سير عمل موجّه يساعدك في إعداد واجهات برمجة التطبيقات والموارد المطلوبة لمشروعك.

  4. اختَر مقدّم خدمة "Gemini API" الذي تريد استخدامه مع حِزم تطوير البرامج (SDK) في Firebase AI Logic. يمكنك دائمًا إعداد واستخدام موفّر واجهة برمجة التطبيقات الآخر لاحقًا، إذا أردت.

    • Gemini Developer API — الفوترة اختيارية (متاحة في خطة Spark الأساسية بدون تكلفة)
      سيتيح سير العمل في وحدة التحكّم واجهات برمجة التطبيقات المطلوبة وإنشاء مفتاح واجهة برمجة تطبيقات Gemini في مشروعك.
      يجب عدم إضافة مفتاح واجهة برمجة التطبيقات Gemini هذا إلى قاعدة الرموز البرمجية لتطبيقك. مزيد من المعلومات

    • Agent Platform Gemini API (formerly Vertex AI) — يجب تفعيل الفوترة (تتطلّب خطة Blaze المَرِنة للدفع حسب الاستخدام)
      سيتيح سير العمل في وحدة التحكّم تفعيل واجهات برمجة التطبيقات المطلوبة في مشروعك.

  5. يُرجى مواصلة قراءة دليل نقل البيانات هذا لتحديث المكتبة وعملية الإعداد في تطبيقك.

الخطوة 3: تحديث المكتبة المستخدَمة في تطبيقك

حدِّث قاعدة الرموز البرمجية لتطبيقك لاستخدام مكتبة Firebase AI Logic.

Swift

  1. في Xcode، بعد فتح مشروع تطبيقك، حدِّث حزمة Firebase إلى الإصدار 12.5.0 أو إصدار أحدث باستخدام أحد الخيارات التالية:

    • الخيار 1: تحديث جميع الحِزم: انتقِل إلى الملف (File) > الحِزم (Packages) > التحديث إلى آخر إصدارات الحِزم (Update to Latest Package Versions).

    • الخيار 2: تعديل Firebase بشكل فردي: انتقِل إلى حزمة Firebase في القسم المسمّى Package Dependencies. انقر بزر الماوس الأيمن على حزمة Firebase، ثم اختَر تحديث الحزمة.

  2. تأكَّد من أنّ حزمة Firebase تعرض الآن الإصدار 12.5.0 أو إصدارًا أحدث. وإذا لم يتم ذلك، يُرجى التأكّد من أنّ متطلبات الحزمة المحدّدة تسمح بالتحديث إلى الإصدار 12.5.0 أو إصدار أحدث.

  3. اختَر هدف تطبيقك في "محرّر المشاريع"، ثم انتقِل إلى قسم الأطر والمكتبات والمحتوى المضمّن.

  4. أضِف المكتبة الجديدة: انقر على الزر +، ثم أضِف FirebaseAILogic من حزمة Firebase.

  5. بعد الانتهاء من نقل تطبيقك (راجِع الأقسام المتبقية في هذا الدليل)، احرص على إزالة المكتبة القديمة:
    اختَر FirebaseVertexAI-Preview، ثم اضغط على الزر —.

Kotlin

  1. في ملف Gradle للوحدة (على مستوى التطبيق) (عادةً <project>/<app-module>/build.gradle.kts أو <project>/<app-module>/build.gradle)، استبدِل الاعتماديات القديمة (حسب الاقتضاء) بما يلي.

    يُرجى العِلم أنّه قد يكون من الأسهل نقل قاعدة الرموز البرمجية لتطبيقك (يُرجى الاطّلاع على الأقسام المتبقية في هذا الدليل) قبل حذف التبعية القديمة.

    // BEFORE
    dependencies {
      implementation("com.google.firebase:firebase-vertexai:16.0.0-betaXX")
    }
    
    
    // AFTER
    dependencies {
      // Import the BoM for the Firebase platform
      implementation(platform("com.google.firebase:firebase-bom:35.0.0"))
    
      // Add the dependency for the Firebase AI Logic library
      // When using the BoM, you don't specify versions in Firebase library dependencies
      implementation("com.google.firebase:firebase-ai")
    }
  2. مزامنة مشروع Android مع ملفات Gradle

ملاحظة: إذا اخترت عدم استخدام Firebase Android BoM، فما عليك سوى إضافة الاعتمادية لمكتبة firebase-ai وقبول أحدث إصدار يقترحه &quot;استوديو Android&quot;.

Java

  1. في ملف Gradle للوحدة (على مستوى التطبيق) (عادةً <project>/<app-module>/build.gradle.kts أو <project>/<app-module>/build.gradle)، استبدِل الاعتماديات القديمة (حسب الاقتضاء) بما يلي.

    يُرجى العِلم أنّه قد يكون من الأسهل نقل قاعدة الرموز البرمجية لتطبيقك (يُرجى الاطّلاع على الأقسام المتبقية في هذا الدليل) قبل حذف التبعية القديمة.

    // BEFORE
    dependencies {
      implementation("com.google.firebase:firebase-vertexai:16.0.0-betaXX")
    }
    
    
    // AFTER
    dependencies {
      // Import the BoM for the Firebase platform
      implementation(platform("com.google.firebase:firebase-bom:35.0.0"))
    
      // Add the dependency for the Firebase AI Logic library
      // When using the BoM, you don't specify versions in Firebase library dependencies
      implementation("com.google.firebase:firebase-ai")
    }
  2. مزامنة مشروع Android مع ملفات Gradle

يُرجى العِلم أنّه في حال اختيار عدم استخدام Firebase Android BoM، ما عليك سوى إضافة التبعية لمكتبة firebase-ai وقبول أحدث إصدار يقترحه "استوديو Android".

Web

  1. احصل على أحدث إصدار من حزمة تطوير البرامج (SDK) لبرنامج Firebase JS للويب باستخدام npm:

    npm i firebase@latest

    أو

    yarn add firebase@latest
  2. في أي مكان استوردت فيه المكتبة، عدِّل عبارات الاستيراد لاستخدام firebase/ai بدلاً من ذلك.

    يُرجى العِلم أنّه قد يكون من الأسهل نقل قاعدة الرموز البرمجية لتطبيقك (راجِع الأقسام المتبقية في هذا الدليل) قبل حذف عمليات الاستيراد القديمة.

    // BEFORE
    import { initializeApp } from "firebase/app";
    import { getVertexAI, getGenerativeModel } from "firebase/vertexai-preview";
    
    
    // AFTER
    import { initializeApp } from "firebase/app";
    import { getAI, getGenerativeModel } from "firebase/ai";

Dart

  1. يمكنك التحديث لاستخدام حزمة firebase_ai في ملف pubspec.yaml من خلال تشغيل الأمر التالي من دليل مشروع Flutter:

    flutter pub add firebase_ai
  2. أعِد إنشاء مشروع Flutter:

    flutter run
  3. بعد الانتهاء من نقل تطبيقك (راجِع الأقسام المتبقية في هذا الدليل)، احرص على حذف الحزمة القديمة باتّباع الخطوات التالية:

    flutter pub remove firebase_vertexai

Unity

لم يكن تطبيق Unity متاحًا من "Vertex AI in Firebase".

كيفية بدء استخدام حزمة تطوير البرامج (SDK) الخاصة بـ Firebase AI Logic لمشاريع Unity

الخطوة 4: تعديل عملية الإعداد في تطبيقك

انقر على مزوّد Gemini API لعرض المحتوى والرمز الخاصين بالمزوّد على هذه الصفحة.

عدِّل طريقة بدء الخدمة لمقدّم خدمة واجهة برمجة التطبيقات الذي اخترته وأنشئ مثيلاً من GenerativeModel.

Swift


import FirebaseAILogic

// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())

// Create a `GenerativeModel` instance with a model that supports your use case
let model = ai.generativeModel(modelName: "gemini-3.8-flash")

Kotlin


// Initialize the Gemini Developer API backend service.
// Create a `GenerativeModel` instance with a model that supports your use case.
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
                        .generativeModel("gemini-3.8-flash")

Java


// Initialize the Gemini Developer API backend service.
// Create a `GenerativeModel` instance with a model that supports your use case.
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
        .generativeModel("gemini-3.8-flash");

// Use the GenerativeModelFutures Java compatibility layer which offers
// support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(ai);

Web


import { initializeApp } from "firebase/app";
import { getAI, getGenerativeModel, GoogleAIBackend } from "firebase/ai";

// TODO(developer): Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

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

// Initialize the Gemini Developer API backend service.
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });

// Create a `GenerativeModel` instance with a model that supports your use case.
const model = getGenerativeModel(ai, { model: "gemini-3.8-flash" });

Dart


import 'package:firebase_ai/firebase_ai.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';

// Initialize FirebaseApp
await Firebase.initializeApp(
  options: DefaultFirebaseOptions.currentPlatform,
);

// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
final model =
      FirebaseAI.googleAI().generativeModel(model: 'gemini-3.8-flash');

Unity

لم يكن دعم Unity متاحًا من "Vertex AI in Firebase".

كيفية بدء استخدام حزمة تطوير البرامج (SDK) الخاصة بـ Firebase AI Logic لمشاريع Unity

يُرجى العِلم أنّه استنادًا إلى الإمكانية التي تستخدمها، قد لا تتمكّن دائمًا من إنشاء GenerativeModel آلة افتراضية. لإجراء بث للإدخال والإخراج باستخدام Gemini Live API، أنشئ مثيلاً من LiveModel.

الخطوة 5: تعديل الرمز استنادًا إلى الميزات التي تستخدمها

توضّح هذه الخطوة التغييرات التي قد تكون مطلوبة حسب الميزات التي تستخدمها.

  • إذا كنت تستخدم عناوين URL لـ Cloud Storage و بدّلتها لاستخدام Gemini Developer API في عملية النقل هذه، عليك تعديل طلباتك المتعددة الوسائط لتضمين الملفات كبيانات مضمّنة (أو استخدام عناوين URL على YouTube للفيديوهات).

  • تم إجراء عدة تغييرات على إصدارات GA من حِزم تطوير البرامج (SDK) لـ "Vertex AI in Firebase". ويجب إجراء هذه التغييرات نفسها لاستخدام حِزم تطوير البرامج (SDK) Firebase AI Logic. راجِع القوائم التالية لمعرفة أي تغييرات قد تحتاج إلى إجرائها في الرمز البرمجي لاستيعاب Firebase AI Logic حزمة SDK.

مطلوبة لجميع اللغات والمنصات

  • استدعاء الدوال
    إذا نفّذت هذه الميزة قبل توفّرها للجمهور العام، عليك تعديل طريقة تحديد المخطط. ننصحك بمراجعة دليل استدعاء الدوال المعدَّل لمعرفة كيفية كتابة تعريفات الدوال.

  • إنشاء إخراج منظَّم (مثل JSON) باستخدام responseSchema
    إذا كنت قد نفّذت هذه الميزة قبل الإطلاق العام، عليك إجراء تعديلات على طريقة تحديد المخطط. ننصحك بمراجعة دليل الإخراج المنظَّم الجديد للتعرّف على كيفية كتابة مخططات JSON.

  • انتهاء المهلة

    • تم تغيير المهلة التلقائية للطلبات إلى 180 ثانية.

مطلوب حسب النظام الأساسي أو اللغة

Swift

  • التعدادات

    • تم استبدال معظم أنواع enum بـ struct مع متغيّرات ثابتة. يتيح هذا التغيير مزيدًا من المرونة لتطوير واجهة برمجة التطبيقات بطريقة متوافقة مع الأنظمة القديمة. عند استخدام عبارات switch، يجب الآن تضمين حالة default: لتغطية القيم غير المعروفة أو غير المعالَجة، بما في ذلك القيم الجديدة التي تتم إضافتها إلى حزمة تطوير البرامج (SDK) في المستقبل.

    • تمت إعادة تسمية التعداد BlockThreshold إلى HarmBlockThreshold، وأصبح هذا النوع الآن struct.

    • تمت إزالة الحالتَين unknown وunspecified من التعدادات التالية (أصبحت الآن struct): HarmCategory وHarmBlockThreshold وHarmProbability وBlockReason وFinishReason.

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

  • أجزاء المحتوى

    • تمت إزالة البروتوكول ThrowingPartsRepresentable، وتم تبسيط أدوات التهيئة الخاصة بـ ModelContent لتجنُّب أخطاء المترجم البرمجي العرضية. ستستمر الصور التي لا يتم ترميزها بشكل صحيح في عرض الأخطاء عند استخدامها في generateContent.

    • تم استبدال حالات ModelContent.Part بأنواع struct التالية المتوافقة مع بروتوكول Part:

      • من .text إلى TextPart
      • من .data إلى InlineDataPart
      • من .fileData إلى FileDataPart
      • من .functionCall إلى FunctionCallPart
      • من .functionResponse إلى FunctionResponsePart
  • فئة الضرر

    • تم تغيير HarmCategory لكي لا يكون مضمّنًا في النوع SafetySetting. إذا كنت تشير إليه باسم SafetySetting.HarmCategory، يمكن استبداله بـ HarmCategory.
  • ملاحظات حول الأمان

    • تمت إزالة النوع SafetyFeedback لأنّه لم يتم استخدامه في أي من الردود.
  • البيانات الوصفية للاقتباسات

    • تمت إعادة تسمية السمة citationSources إلى citations في CitationMetadata.
  • إجمالي عدد الأحرف التي تتم فوترتها

    • تم تغيير السمة totalBillableCharacters في CountTokensResponse لتصبح اختيارية من أجل مراعاة الحالات التي لا يتم فيها إرسال أي أحرف.
  • ردّ المرشّح

    • تمت إعادة تسمية CandidateResponse إلى Candidate لتتطابق مع المنصات الأخرى.
  • إعدادات الإنشاء

    • تم تغيير الخصائص العامة لـ GenerationConfig إلى internal. ويمكن ضبطها جميعًا في أداة التهيئة.

Kotlin

  • التعدادات

    • تم استبدال فئات "enum" وفئات "sealed" بفئات عادية. يتيح هذا التغيير مزيدًا من المرونة لتطوير واجهة برمجة التطبيقات بطريقة متوافقة مع الإصدارات السابقة.

    • تمت إعادة تسمية التعداد BlockThreshold إلى HarmBlockThreshold.

    • تمت إزالة القيم من التعدادات التالية: HarmBlockThreshold وHarmProbability وHarmSeverity وBlockReason وFinishReason.

  • طُرق Blob

    • تمت إعادة تسمية جميع الطرق التي تتضمّن Blob كجزء من اسمها لاستخدام InlineData بدلاً من ذلك.
  • إعدادات الأمان

    • تم تغيير الحقل method ليصبح قابلاً للإلغاء.
  • فئة المدة

    • تمت إزالة جميع استخدامات فئة Duration في Kotlin، واستبدالها بـ long. يوفّر هذا التغيير إمكانية تشغيل متبادل أفضل مع Java.
  • البيانات الوصفية لمعلومات المقالة

    • تم تضمين جميع الحقول التي تم تعريفها سابقًا في CitationMetadata ضمن فئة جديدة باسم Citation. يمكن العثور على الاقتباسات في القائمة التي تحمل الاسم citations في CitationMetadata. يتيح هذا التغيير توافقًا أفضل بين أنواع البيانات على المنصات المختلفة.
  • احتساب الرموز المميّزة

    • تم تغيير الحقل totalBillableCharacters ليقبل القيم الخالية.
  • إجمالي عدد الأحرف التي تتم فوترتها

    • تم تغيير السمة totalBillableCharacters في CountTokensResponse لتصبح اختيارية من أجل مراعاة الحالات التي لا يتم فيها إرسال أي أحرف.
  • إنشاء مثيل من نموذج

    • تم نقل المَعلمة requestOptions إلى نهاية قائمة المَعلمات لتتطابق مع المنصات الأخرى.
  • Live API

    • تمت إزالة القيمة UNSPECIFIED لفئة التعداد ResponseModality. بدلاً من ذلك، استخدِم null.

    • تمت إعادة تسمية LiveGenerationConfig.setResponseModalities إلى LiveGenerationConfig.setResponseModality.

    • تمت إزالة الفئة LiveContentResponse.Status، وتم بدلاً من ذلك دمج حقول الحالة كسمات لـ LiveContentResponse.

    • تمت إزالة الفئة LiveContentResponse، وتم توفير فئات فرعية من LiveServerMessage تتطابق مع الردود من النموذج.

    • تم تغيير LiveModelFutures.connect لعرض ListenableFuture<LiveSessionFutures> بدلاً من ListenableFuture<LiveSession>.

Java

  • التعدادات

    • تم استبدال فئات "enum" وفئات "sealed" بفئات عادية. يتيح هذا التغيير مزيدًا من المرونة لتطوير واجهة برمجة التطبيقات بطريقة متوافقة مع الإصدارات السابقة.

    • تمت إعادة تسمية التعداد BlockThreshold إلى HarmBlockThreshold.

    • تمت إزالة القيم من التعدادات التالية: HarmBlockThreshold وHarmProbability وHarmSeverity وBlockReason وFinishReason.

  • طُرق Blob

    • تمت إعادة تسمية جميع الطرق التي تتضمّن Blob كجزء من اسمها لاستخدام InlineData بدلاً من ذلك.
  • إعدادات الأمان

    • تم تغيير الحقل method ليصبح قابلاً للإلغاء.
  • فئة المدة

    • تمت إزالة جميع استخدامات فئة Duration في Kotlin، واستبدالها بـ long. يوفّر هذا التغيير إمكانية تشغيل متبادل أفضل مع Java.
  • البيانات الوصفية لمعلومات المقالة

    • تم تضمين جميع الحقول التي تم تعريفها سابقًا في CitationMetadata ضمن فئة جديدة باسم Citation. يمكن العثور على الاقتباسات في القائمة التي تحمل الاسم citations في CitationMetadata. يتيح هذا التغيير توافقًا أفضل بين أنواع البيانات على المنصات المختلفة.
  • احتساب الرموز المميّزة

    • تم تغيير الحقل totalBillableCharacters ليقبل القيم الخالية.
  • إجمالي عدد الأحرف التي تتم فوترتها

    • تم تغيير السمة totalBillableCharacters في CountTokensResponse لتصبح اختيارية من أجل مراعاة الحالات التي لا يتم فيها إرسال أي أحرف.
  • إنشاء مثيل من نموذج

    • تم نقل المَعلمة requestOptions إلى نهاية قائمة المَعلمات لتتطابق مع المنصات الأخرى.
  • Live API

    • تمت إزالة القيمة UNSPECIFIED لفئة التعداد ResponseModality. بدلاً من ذلك، استخدِم null.

    • تمت إعادة تسمية LiveGenerationConfig.setResponseModalities إلى LiveGenerationConfig.setResponseModality.

    • تمت إزالة الفئة LiveContentResponse.Status، وتم بدلاً من ذلك دمج حقول الحالة كسمات لـ LiveContentResponse.

    • تمت إزالة الفئة LiveContentResponse، وتم توفير فئات فرعية من LiveServerMessage تتطابق مع الردود من النموذج.

    • تم تغيير LiveModelFutures.connect لإرجاع ListenableFuture<LiveSessionFutures> بدلاً من ListenableFuture<LiveSession>.

  • تم تغيير طرق إنشاء Java المختلفة لتعرض الآن مثيل فئتها بشكل صحيح، بدلاً من void.

Web

  • التعدادات

    • تمت إزالة القيم من التعدادات التالية: HarmCategory وBlockThreshold وHarmProbability وHarmSeverity وBlockReason وFinishReason.
  • سبب الحظر

    • تم تغيير "blockReason" في "PromptFeedback" ليصبح اختياريًا.

يجب إجراء تغييرات فقط إذا كنت ستستخدم Gemini Developer API (بدلاً من Agent Platform Gemini API (formerly Vertex AI)):

  • إعدادات الأمان

    • تمت إزالة استخدامات SafetySetting.method غير المتوافقة.
  • البيانات المضمّنة

    • تمت إزالة استخدامات InlineDataPart.videoMetadata غير المتوافقة.

Dart

  • التعدادات

    • تمت إزالة القيم من التعدادات التالية: HarmCategory وHarmProbability وBlockReason وFinishReason.
  • Data part

    • تمت إعادة تسمية DataPart إلى InlineDataPart، والدالة static data إلى inlineData لتتوافق مع المنصات الأخرى.
  • خيارات الطلب

    • تمت إزالة "RequestOptions" لأنّ "timeout" لم يكن يعمل. ستتم إعادة إضافتها في المستقبل القريب، ولكن سيتم نقلها إلى النوع GenerativeModel لتتطابق مع المنصات الأخرى.
  • إيقاف التسلسلات

    • تم تغيير المَعلمة stopSequences في GenerationConfig لتصبح اختيارية وتكون قيمتها التلقائية null بدلاً من مصفوفة فارغة.
  • الاقتباسات

    • تمت إعادة تسمية السمة citationSources إلى citations في CitationMetadata. تمت إعادة تسمية النوع CitationSource إلى Citation ليتطابق مع المنصات الأخرى.
  • الأنواع والطرق والسمات العامة غير الضرورية

    • أزلنا الأنواع والطرق والسمات التالية التي تم عرضها عن غير قصد: defaultTimeout وCountTokensResponseFields وparseCountTokensResponse وparseEmbedContentResponse وparseGenerateContentResponse وparseContent وBatchEmbedContentsResponse وContentEmbedding وEmbedContentRequest وEmbedContentResponse.
  • احتساب الرموز المميزة

    • تمت إزالة الحقول الإضافية من دالة countTokens التي لم تعد ضرورية. يجب توفير contents فقط.
  • إنشاء مثيل من نموذج

    • تم نقل المَعلمة systemInstruction إلى نهاية قائمة المَعلمات للتوافق مع المنصات الأخرى.
  • وظيفة التضمين

    • تمت إزالة وظيفة التضمين غير المتوافقة (embedContent وbatchEmbedContents) من النموذج.

Unity

لم يكن الدعم متاحًا لـ Unity من "Vertex AI in Firebase".

تعرَّف على كيفية بدء استخدام حزمة تطوير البرامج (SDK) الخاصة بـ "Firebase AI Logic" لمنصة Unity.

الأخطاء المحتملة المتعلّقة بعملية النقل

أثناء نقل البيانات لاستخدام الإصدار المتوفّر للجميع من Firebase AI Logic، قد تظهر لك أخطاء إذا لم تكن قد أكملت جميع التغييرات المطلوبة كما هو موضّح في دليل نقل البيانات هذا.

الخطأ 403: Requests to this API firebasevertexai.googleapis.com ... are blocked.

إذا ظهر لك الخطأ 403 الذي يشير إلى Requests to this API firebasevertexai.googleapis.com ... are blocked.، يعني ذلك عادةً أنّ مفتاح واجهة برمجة التطبيقات في Firebase في ملف إعدادات Firebase أو العنصر لا يتضمّن واجهة برمجة تطبيقات مطلوبة في القائمة المسموح بها للمنتج الذي تحاول استخدامه.

تأكَّد من أنّ مفتاح واجهة برمجة التطبيقات Firebase API الذي يستخدمه تطبيقك يتضمّن جميع واجهات برمجة التطبيقات المطلوبة المُدرَجة في قائمة السماح "قيود واجهة برمجة التطبيقات" الخاصة بالمفتاح. بالنسبة إلى Firebase AI Logic، يجب أن يتضمّن مفتاح واجهة برمجة التطبيقات في Firebase على الأقل واجهة برمجة التطبيقات Firebase AI Logic في قائمة السماح. من المفترض أن تتم إضافة واجهة برمجة التطبيقات هذه تلقائيًا إلى القائمة المسموح بها لمفتاح واجهة برمجة التطبيقات عند تفعيل واجهات برمجة التطبيقات المطلوبة في وحدة تحكّم Firebase.

يمكنك الاطّلاع على جميع مفاتيح واجهة برمجة التطبيقات في لوحة واجهات برمجة التطبيقات والخدمات > بيانات الاعتماد في وحدة تحكّم Google Cloud.


تقديم ملاحظات حول تجربتك مع "Firebase AI Logic"