نقل البيانات إلى حِزم تطوير البرامج (SDK) لـ Firebase AI Logic من حِزم تطوير البرامج (SDK) لعملاء Google AI


الانتقال مباشرةً إلى تعليمات نقل البيانات

لماذا يجب نقل البيانات لاستخدام حِزم تطوير البرامج (SDK) Firebase AI Logic؟

ربما جرّبت مجموعة بديلة من حِزم تطوير البرامج (SDK) لبرامج الويب أو الأجهزة الجوّالة التي أتاحت لك الوصول إلى Gemini Developer API.

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

ميزات الأمان لتطبيقات الأجهزة الجوّالة وتطبيقات الويب

بالنسبة إلى تطبيقات الأجهزة الجوّالة وتطبيقات الويب، يُعدّ الأمان أمرًا بالغ الأهمية ويتطلّب مراعاة اعتبارات خاصة لأنّ الرمز البرمجي، بما في ذلك طلبات البيانات من Gemini API، يتم تنفيذه في بيئة غير محمية. يمكنك استخدام Firebase App Check لحماية واجهات برمجة التطبيقات من إساءة الاستخدام من قِبل العملاء غير المصرّح لهم.

عند استخدام Firebase App Check مع Firebase AI Logic، لا تضيف أبدًا مفتاح واجهة برمجة التطبيقات Gemini الخاص بـ Gemini Developer API مباشرةً إلى قاعدة الرموز لتطبيقك على الأجهزة الجوّالة أو تطبيق الويب. بدلاً من ذلك، يظل مفتاح واجهة برمجة التطبيقات Geminiمحفوظًا على الخادم، ما يحول دون اطّلاع الجهات المُسيئة عليه.

منظومة متكاملة مصمَّمة لتطبيقات الأجهزة الجوّالة والويب

‫Firebase هي منصة Google لتطوير تطبيقات الويب والأجهزة الجوّالة. استخدام Firebase AI Logic يعني أنّ تطبيقاتك ستكون في نظام متكامل يركّز على احتياجات التطبيقات والمطوّرين المتكاملين. على سبيل المثال:

  • يمكنك ضبط الإعدادات في وقت التشغيل بشكل ديناميكي أو استبدال القيم في تطبيقك (مثل اسم الطراز وإصداره) بدون إصدار نسخة جديدة من التطبيق باستخدام Firebase Remote Config.

  • استخدِم Cloud Storage for Firebase لتضمين ملفات كبيرة في طلباتك المتعددة الوسائط (إذا كنت تستخدم Vertex AI Gemini API). تساعدك حِزم تطوير البرامج (SDK) الخاصة بعميل Cloud Storage في التعامل مع عمليات تحميل الملفات وتنزيلها (حتى في ظروف الشبكة السيئة)، وتوفّر المزيد من الأمان لبيانات المستخدمين النهائيين. يمكنك الاطّلاع على مزيد من المعلومات في دليل الحلول حول استخدام Cloud Storage for Firebase.

  • إدارة البيانات المنظَّمة باستخدام حِزم تطوير البرامج (SDK) لقواعد البيانات المصمَّمة للتطبيقات على الأجهزة الجوّالة وتطبيقات الويب (مثل Cloud Firestore)

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

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

  • الخطوة 1: إعداد مشروع جديد أو حالي على Firebase وربط تطبيقك بمنصة Firebase

  • الخطوة 2: أضِف حِزم تطوير البرامج (SDK) الخاصة بـ Firebase AI Logic إلى تطبيقك.

  • الخطوة 3: تعديل عمليات الاستيراد والتهيئة في تطبيقك

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

الخطوة 1: إعداد مشروع على Firebase وربط تطبيقك به

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

  2. في وحدة تحكّم Firebase، انتقِل إلى صفحة Firebase AI Logic.

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

  4. انقر على Gemini Developer API. يمكنك إعداد واستخدام مقدّم خدمة واجهة برمجة التطبيقات الآخر متى شئت لاحقًا.

    ستفعِّل وحدة التحكّم واجهات برمجة التطبيقات المطلوبة وتنشئ Geminiمفتاح واجهة برمجة تطبيقات جديدًا ومخصّصًا في مشروعك.
    يجب عدم إضافة مفتاح واجهة برمجة التطبيقات الجديد Gemini إلى قاعدة رموز تطبيقك. مزيد من المعلومات

  5. إذا طُلب منك ذلك في سير عمل وحدة التحكّم، اتّبِع التعليمات الظاهرة على الشاشة لتسجيل تطبيقك وربطه بمنصة Firebase.

  6. يمكنك مواصلة قراءة دليل النقل هذا لتعديل المكتبة وعملية التهيئة في تطبيقك.

الخطوة 2: إضافة حزمة تطوير البرامج (SDK) الخاصة بـ Firebase AI Logic إلى تطبيقك

بعد إعداد مشروعك على Firebase وربط تطبيقك به (راجِع الخطوة السابقة)، يمكنك الآن إضافة حزمة تطوير البرامج (SDK) Firebase AI Logic إلى تطبيقك.

Swift

استخدِم أداة Swift Package Manager لتثبيت الموارد الاعتمادية في Firebase وإدارتها.

تتيح مكتبة Firebase AI Logic الوصول إلى واجهات برمجة التطبيقات للتفاعل مع نماذج Gemini وImagen. يتم تضمين المكتبة كجزء من حزمة تطوير البرامج (SDK) لمنصة Firebase على أجهزة Apple (firebase-ios-sdk).

إذا كنت تستخدم Firebase حاليًا، تأكَّد من أنّ حزمة Firebase هي الإصدار 11.13.0 أو إصدار أحدث.

  1. في Xcode، بعد فتح مشروع تطبيقك، انتقِل إلى ملف (File) > إضافة تبعيات الحزمة (Add Package Dependencies).

  2. عندما يُطلب منك ذلك، أضِف مستودع حزمة تطوير البرامج (SDK) لمنصة Firebase على أجهزة Apple:

    https://github.com/firebase/firebase-ios-sdk
    
  3. اختَر أحدث إصدار من حزمة SDK.

  4. اختَر مكتبة FirebaseAI.

عند الانتهاء، سيبدأ Xcode تلقائيًا في حلّ التبعيات وتنزيلها في الخلفية.

Kotlin

توفّر حزمة تطوير البرامج (SDK) لنظام التشغيل Android (firebase-ai) إمكانية الوصول إلى واجهات برمجة التطبيقات للتفاعل مع نماذج Gemini وImagen.Firebase AI Logic

في ملف Gradle الخاص بالوحدة (على مستوى التطبيق) (مثل <project>/<app-module>/build.gradle.kts)، أضِف الاعتمادية لمكتبة Firebase AI Logic لنظام التشغيل Android. ننصحك باستخدام Firebase Android BoM للتحكّم في إصدارات المكتبة.

dependencies {
  // ... other androidx dependencies

  // Import the BoM for the Firebase platform
  implementation(platform("com.google.firebase:firebase-bom:33.15.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")
}

باستخدام Firebase Android BoM، سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات Firebase Android.

Java

توفّر حزمة تطوير البرامج (SDK) لنظام التشغيل Android (firebase-ai) إمكانية الوصول إلى واجهات برمجة التطبيقات للتفاعل مع نماذج Gemini وImagen.Firebase AI Logic

في ملف Gradle الخاص بالوحدة (على مستوى التطبيق) (مثل <project>/<app-module>/build.gradle.kts)، أضِف الاعتمادية لمكتبة Firebase AI Logic لنظام التشغيل Android. ننصحك باستخدام Firebase Android BoM للتحكّم في إصدارات المكتبة.

بالنسبة إلى Java، عليك إضافة مكتبتَين إضافيتَين.

dependencies {
  // ... other androidx dependencies

  // Import the BoM for the Firebase platform
  implementation(platform("com.google.firebase:firebase-bom:33.15.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")

  // Required for one-shot operations (to use `ListenableFuture` from Guava Android)
  implementation("com.google.guava:guava:31.0.1-android")

  // Required for streaming operations (to use `Publisher` from Reactive Streams)
  implementation("org.reactivestreams:reactive-streams:1.0.4")
}

باستخدام Firebase Android BoM، سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات Firebase Android.

Web

تتيح مكتبة Firebase AI Logic الوصول إلى واجهات برمجة التطبيقات للتفاعل مع نماذج Gemini وImagen. يتم تضمين المكتبة كجزء من حزمة تطوير البرامج (SDK) على الإنترنت لبرنامج Firebase JavaScript.

  1. ثبِّت حزمة Firebase JS SDK للويب باستخدام npm:

    npm install firebase
    
  2. إعداد Firebase في تطبيقك:

    import { initializeApp } from "firebase/app";
    
    // 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);
    

Dart

توفّر إضافة Firebase AI Logic في Flutter (firebase_ai) إمكانية الوصول إلى واجهات برمجة التطبيقات للتفاعل مع نماذج Gemini وImagen.

  1. من دليل مشروع Flutter، شغِّل الأمر التالي لتثبيت المكوّن الإضافي الأساسي والمكوّن الإضافي Firebase AI Logic:

    flutter pub add firebase_core && flutter pub add firebase_ai
    
  2. في ملف lib/main.dart، استورِد المكوّن الإضافي الأساسي لـ Firebase والمكوّن الإضافي Firebase AI Logic وملف الإعداد الذي أنشأته سابقًا:

    import 'package:firebase_core/firebase_core.dart';
    import 'package:firebase_ai/firebase_ai.dart';
    import 'firebase_options.dart';
    
  3. في ملف lib/main.dart أيضًا، عليك إعداد Firebase باستخدام الكائن DefaultFirebaseOptions الذي تم تصديره من ملف الإعداد:

    await Firebase.initializeApp(
      options: DefaultFirebaseOptions.currentPlatform,
    );
    
  4. أعِد إنشاء تطبيق Flutter:

    flutter run
    

Unity

لم يكن الدعم متاحًا في حِزم تطوير البرامج (SDK) الخاصة ببرنامج Google AI على الأجهزة.

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

إزالة حزمة SDK القديمة من تطبيقك

بعد الانتهاء من نقل تطبيقك (راجِع الأقسام المتبقية في هذا الدليل)، احرص على حذف المكتبة القديمة.

Swift

إزالة المكتبة القديمة:

  1. في Xcode، بعد فتح مشروع تطبيقك، انتقِل إلى لوحة حِزم التبعيات.

  2. اختَر حزمة generative-ai-swift من قائمة حِزم التبعيات.

  3. انقر على الزر - في أسفل القائمة، ثم انقر على إزالة للتأكيد.

Kotlin

dependencies {
    implementation("com.google.ai.client.generativeai:generativeai:VERSION")
}

Java

dependencies {
    implementation("com.google.ai.client.generativeai:generativeai:VERSION")
}

Web

// BEFORE
import { initializeApp } from "firebase/app";
import { GoogleGenerativeAI } from "@google/generative-ai";

Dart

احذف الحزمة القديمة:
flutter pub remove google_generative_ai

Unity

لم تكن حِزم تطوير البرامج (SDK) الخاصة ببرنامج Google AI توفّر إمكانية استخدام Unity.

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

الخطوة 3: تعديل عمليات الاستيراد والتهيئة في تطبيقك

عدِّل عمليات الاستيراد وطريقة بدء خدمة الخلفية Gemini Developer API وإنشاء مثيل GenerativeModel.

Swift

// BEFORE
import GoogleGenerativeAI

let model = GenerativeModel(name: "MODEL_NAME", apiKey: APIKey.default)

// AFTER
import FirebaseAI

// 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-2.5-flash")

Kotlin

// BEFORE
import com.google.ai.client.generativeai.Chat
import com.google.ai.client.generativeai.type.Content
import com.google.ai.client.generativeai.java.GenerativeModuleFutures

...

val generativeModel = GenerativeModel(modelName = "MODEL_NAME",
  // Access your API key as a Build Configuration variable
  apiKey = BuildConfig.apiKey
)

// AFTER
import com.google.firebase.Firebase
import com.google.firebase.ai.ai
import com.google.firebase.ai.type.GenerativeBackend

...

// 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-2.5-flash")

Java

// BEFORE
import com.google.ai.client.generativeai.Chat;
import com.google.ai.client.generativeai.type.Content;
import com.google.ai.client.generativeai.java.GenerativeModuleFutures;

...

GenerativeModel gm = new GenerativeModel("MODEL_NAME",
  // Access your API key as a Build Configuration variable
  BuildConfig.apiKey
);

GenerativeModelFutures model = GenerativeModelFutures.from(gm);

// AFTER
import com.google.firebase.ai.FirebaseAI;
import com.google.firebase.ai.GenerativeModel;
import com.google.firebase.ai.java.GenerativeModelFutures;
import com.google.firebase.ai.type.GenerativeBackend;

...

// 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-2.5-flash");

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

Web

// BEFORE
import { GoogleGenerativeAI } from "@google/generative-ai";

// Fetch your API_KEY and access your API
const API_KEY = "...";
const genAI = new GoogleGenerativeAI(API_KEY);

...

const model = genAI.getGenerativeModel({ model: "MODEL_NAME"});

// AFTER
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-2.5-flash" });

Dart

// BEFORE
import 'package:google_generative_ai/google_generative_ai.dart';

final apiKey = Platform.environment['API_KEY'];
if (apiKey == null) {
print('No \$API_KEY environment variable');
exit(1);
}

final model = GenerativeModel(model: 'MODEL_NAME', apiKey: apiKey);

// AFTER
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-2.5-flash');

Unity

لم تكن حِزم تطوير البرامج (SDK) الخاصة ببرنامج Google AI توفّر إمكانية استخدام Unity.

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

يُرجى العِلم أنّه استنادًا إلى الميزة التي تستخدمها، قد لا تتمكّن دائمًا من إنشاء GenerativeModel.

الخطوة 4: تعديل الرمز البرمجي حسب الميزات التي تستخدمها

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

  • لا تتيح حِزم تطوير البرامج (SDK) الخاصة بعميل Firebase AI Logic تنفيذ الرموز البرمجية. إذا كنت تستخدم هذه الميزة، احرص على توفيرها في تطبيقك.

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

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

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

  • إنشاء ناتج منظَّم (مثل 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 إلى نهاية قائمة المَعلمات لتتوافق مع المنصات الأخرى.

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 إلى نهاية قائمة المَعلمات لتتوافق مع المنصات الأخرى.

Web

يُرجى العِلم أنّ حزمة تطوير البرامج (SDK) الخاصة ببرنامج Google AI لغة JavaScript قد شهدت العديد من التغييرات منذ أن تم فصل حِزم تطوير البرامج (SDK) الخاصة ببرنامج Firebase AI Logic عنها. في ما يلي بعض التغييرات المحتملة التي قد تحتاج إلى أخذها في الاعتبار أثناء نقل البيانات إلى حِزم تطوير البرامج (SDK) الخاصة بـ Firebase AI Logic.

  • التعدادات

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

    • تم تغيير blockReason في PromptFeedback ليصبح اختياريًا.
  • الاستناد إلى البحث

    • تمت إزالة جميع استخدامات هذه الميزة لأنّها غير متاحة بعد في حِزم تطوير البرامج (SDK) الخاصة باللغة Firebase AI Logic.
  • الأخطاء

    • تمت إزالة جميع استخدامات GoogleGenerativeAIError، ويمكنك اختياريًا الانتقال إلى AIError.

Dart

  • التعدادات

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

    • تمت إعادة تسمية 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

لم تكن حِزم تطوير البرامج (SDK) الخاصة ببرنامج Google AI توفّر إمكانية استخدام Unity.

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


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