الانتقال مباشرةً إلى تعليمات نقل البيانات
لماذا يجب نقل البيانات لاستخدام حِزم تطوير البرامج (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. يمكنك إعداد واستخدام مقدّم خدمة واجهة برمجة التطبيقات الآخر لاحقًا إذا أردت ذلك.
ستفعِّل وحدة التحكّم واجهات برمجة التطبيقات المطلوبة وتنشئ مفتاح GeminiAPI جديدًا مخصّصًا في مشروعك.
يجب عدم إضافة مفتاح واجهة برمجة التطبيقات الجديد Gemini إلى قاعدة رموز تطبيقك. مزيد من المعلوماتإذا طُلب منك ذلك في سير عمل وحدة التحكّم، اتّبِع التعليمات الظاهرة على الشاشة لتسجيل تطبيقك وربطه بمنصة Firebase.
يمكنك مواصلة قراءة دليل النقل هذا لتعديل المكتبة وعملية التهيئة في تطبيقك.
الخطوة 2: إضافة حزمة تطوير البرامج (SDK) الخاصة بـ Firebase AI Logic إلى تطبيقك
بعد إعداد مشروعك على Firebase وربط تطبيقك بـ Firebase (راجِع الخطوة السابقة)، يمكنك الآن إضافة حزمة تطوير البرامج (SDK) الخاصة بـ Firebase AI Logic إلى تطبيقك.
Swift
استخدِم Swift Package Manager لتثبيت ملحقات Firebase وإدارتها.
تتيح مكتبة Firebase AI Logic الوصول إلى واجهات برمجة التطبيقات للتفاعل مع نماذج Gemini وImagen. يتم تضمين المكتبة
كجزء من حزمة تطوير البرامج (SDK) لمنصة Firebase على أجهزة Apple (firebase-ios-sdk).
إذا كنت تستخدم Firebase حاليًا، تأكَّد من أنّ حزمة Firebase هي الإصدار 12.5.0 أو إصدار أحدث.
في Xcode، بعد فتح مشروع تطبيقك، انتقِل إلى ملف > إضافة موارد الاعتمادية للحزمة (File > Add Package Dependencies).
عندما يُطلب منك ذلك، أضِف مستودع حزمة تطوير البرامج (SDK) لمنصة Firebase على أجهزة Apple:
https://github.com/firebase/firebase-ios-sdkاختَر أحدث إصدار من حزمة SDK.
اختَر مكتبة
FirebaseAILogic.
عند الانتهاء، سيبدأ 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:34.5.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:34.5.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 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) الخاصة ببرنامج Unity Google AI.
تعرَّف على كيفية بدء استخدام حزمة تطوير البرامج (SDK) الخاصة بـ Firebase AI Logic 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.
تعرَّف على كيفية بدء استخدام حزمة تطوير البرامج (SDK) الخاصة بـ Firebase AI Logic Unity.
الخطوة 3: تعديل عمليات الاستيراد والتهيئة في تطبيقك
عدِّل عمليات الاستيراد وطريقة بدء خدمة الخلفية Gemini Developer API وإنشاء مثيل GenerativeModel.
Swift
// BEFOREimport GoogleGenerativeAI let model = GenerativeModel(name: "MODEL_NAME", apiKey: APIKey.default)// AFTER 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-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.
تعرَّف على كيفية بدء استخدام حزمة تطوير البرامج (SDK) الخاصة بـ Firebase AI Logic Unity.
يُرجى العِلم أنّه استنادًا إلى الميزة التي تستخدمها، قد لا تتمكّن دائمًا من إنشاء GenerativeModel.
- للوصول إلى Imagen نموذج،
أنشئ
ImagenModelمثيلاً. Gemini Live APILiveModel
الخطوة 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ليصبح اختياريًا.
- تم تغيير
تحديد المصدر في "بحث Google"
- تمت إزالة جميع استخدامات هذه الميزة لأنّها غير متاحة بعد في حِزم تطوير البرامج (SDK) الخاصة باللغة Firebase AI Logic.
الأخطاء
- تمت إزالة جميع استخدامات
GoogleGenerativeAIError، ويمكنك اختياريًا الانتقال إلىAIError.
- تمت إزالة جميع استخدامات
Dart
التعدادات
- تمت إزالة قيم من التعدادات التالية:
HarmCategoryوHarmProbabilityوBlockReasonوFinishReason.
- تمت إزالة قيم من التعدادات التالية:
جزء البيانات
- تمت إعادة تسمية
DataPartإلىInlineDataPart، وتمت إعادة تسمية الدالةstaticdataإلى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.
تعرَّف على كيفية بدء استخدام حزمة تطوير البرامج (SDK) الخاصة بـ Firebase AI Logic Unity.
تقديم ملاحظات حول تجربتك مع Firebase AI Logic