الانتقال مباشرةً إلى تعليمات نقل البيانات
لماذا يجب نقل البيانات لاستخدام حِزم تطوير البرامج (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 وربط تطبيقك به
سجِّل الدخول إلى Firebase وحدة التحكّم، ثم اختَر مشروعك على Firebase.
في وحدة تحكّم Firebase، انتقِل إلى صفحة Firebase AI Logic.
انقر على Get started (البدء) لتشغيل سير عمل موجّه يساعدك في إعداد واجهات برمجة التطبيقات المطلوبة والموارد لمشروعك.
انقر على Gemini Developer API. يمكنك إعداد واستخدام مقدّم خدمة واجهة برمجة التطبيقات الآخر متى شئت لاحقًا.
ستفعِّل وحدة التحكّم واجهات برمجة التطبيقات المطلوبة وتنشئ Geminiمفتاح واجهة برمجة تطبيقات جديدًا ومخصّصًا في مشروعك.
يجب عدم إضافة مفتاح واجهة برمجة التطبيقات الجديد Gemini إلى قاعدة رموز تطبيقك. مزيد من المعلوماتإذا طُلب منك ذلك في سير عمل وحدة التحكّم، اتّبِع التعليمات الظاهرة على الشاشة لتسجيل تطبيقك وربطه بمنصة Firebase.
يمكنك مواصلة قراءة دليل النقل هذا لتعديل المكتبة وعملية التهيئة في تطبيقك.
الخطوة 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 أو إصدار أحدث.
في Xcode، بعد فتح مشروع تطبيقك، انتقِل إلى ملف (File) > إضافة تبعيات الحزمة (Add Package Dependencies).
عندما يُطلب منك ذلك، أضِف مستودع حزمة تطوير البرامج (SDK) لمنصة Firebase على أجهزة Apple:
https://github.com/firebase/firebase-ios-sdk
اختَر أحدث إصدار من حزمة SDK.
اختَر مكتبة
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.
ثبِّت حزمة Firebase JS SDK للويب باستخدام npm:
npm install firebase
إعداد 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.
من دليل مشروع Flutter، شغِّل الأمر التالي لتثبيت المكوّن الإضافي الأساسي والمكوّن الإضافي Firebase AI Logic:
flutter pub add firebase_core && flutter pub add firebase_ai
في ملف
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';
في ملف
lib/main.dart
أيضًا، عليك إعداد Firebase باستخدام الكائنDefaultFirebaseOptions
الذي تم تصديره من ملف الإعداد:await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, );
أعِد إنشاء تطبيق Flutter:
flutter run
Unity
لم يكن الدعم متاحًا في حِزم تطوير البرامج (SDK) الخاصة ببرنامج Google AI على الأجهزة.
تعرَّف على كيفية بدء استخدام Firebase AI Logic حزمة تطوير البرامج (SDK) في Unity.
إزالة حزمة SDK القديمة من تطبيقك
بعد الانتهاء من نقل تطبيقك (راجِع الأقسام المتبقية في هذا الدليل)، احرص على حذف المكتبة القديمة.
Swift
إزالة المكتبة القديمة:
في Xcode، بعد فتح مشروع تطبيقك، انتقِل إلى لوحة حِزم التبعيات.
اختَر حزمة
generative-ai-swift
من قائمة حِزم التبعيات.انقر على الزر
-
في أسفل القائمة، ثم انقر على إزالة للتأكيد.
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
// BEFOREimport 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
// BEFOREimport 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
// BEFOREimport 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
// BEFOREimport { 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
// BEFOREimport '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
.
- للوصول إلى Imagen نموذج،
أنشئ
ImagenModel
مثيلاً.
الخطوة 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