يوضّح لك هذا الدليل كيفية بدء إجراء مكالمات إلى Gemini API مباشرةً من تطبيقك باستخدام حِزم تطوير البرامج (SDK) لعملاء Firebase AI Logic لنظام التشغيل الذي اخترته.
يمكنك أيضًا استخدام هذا الدليل للبدء في الوصول إلى نماذج Imagen باستخدام حِزم تطوير البرامج (SDK) Firebase AI Logic.
المتطلبات الأساسية
Swift
يفترض هذا الدليل أنّك على دراية باستخدام Xcode لتطوير تطبيقات لأنظمة Apple الأساسية (مثل iOS).
تأكَّد من أنّ بيئة التطوير وتطبيق منصات Apple يستوفيان المتطلبات التالية:
- الإصدار 16.2 من Xcode أو إصدار أحدث
- يستهدف تطبيقك الإصدار 15 من نظام التشغيل iOS أو إصدار أحدث، أو الإصدار 12 من نظام التشغيل macOS أو إصدار أحدث
(اختياري) اطّلِع على نموذج التطبيق.
يمكنك تجربة حزمة تطوير البرامج (SDK) بسرعة، أو الاطّلاع على تنفيذ كامل لحالات الاستخدام المختلفة، أو استخدام النموذج التطبيقي إذا لم يكن لديك تطبيق على منصات Apple. لاستخدام النموذج التطبيقي، عليك ربطه بمشروع على Firebase.
Kotlin
يفترض هذا الدليل أنّك على دراية باستخدام "استوديو Android" لتطوير تطبيقات Android.
تأكَّد من أنّ بيئة التطوير وتطبيق Android يستوفيان المتطلبات التالية:
- "استوديو Android" (أحدث إصدار)
- يستهدف تطبيقك المستوى 21 من واجهة برمجة التطبيقات أو المستويات الأعلى.
(اختياري) اطّلِع على نموذج التطبيق.
يمكنك تجربة حزمة تطوير البرامج (SDK) بسرعة، أو الاطّلاع على تنفيذ كامل لحالات الاستخدام المختلفة، أو استخدام النموذج التطبيقي إذا لم يكن لديك تطبيق Android. ولاستخدام النموذج التطبيقي، عليك ربطه بمشروع على Firebase.
Java
يفترض هذا الدليل أنّك على دراية باستخدام "استوديو Android" لتطوير تطبيقات Android.
تأكَّد من أنّ بيئة التطوير وتطبيق Android يستوفيان المتطلبات التالية:
- "استوديو Android" (أحدث إصدار)
- يستهدف تطبيقك المستوى 21 من واجهة برمجة التطبيقات أو المستويات الأعلى.
(اختياري) اطّلِع على نموذج التطبيق.
يمكنك تجربة حزمة تطوير البرامج (SDK) بسرعة، أو الاطّلاع على تنفيذ كامل لحالات الاستخدام المختلفة، أو استخدام النموذج التطبيقي إذا لم يكن لديك تطبيق Android. ولاستخدام النموذج التطبيقي، عليك ربطه بمشروع على Firebase.
Web
يفترض هذا الدليل أنّك على دراية باستخدام JavaScript لتطوير تطبيقات الويب. هذا الدليل مستقل عن إطار العمل.
تأكَّد من أنّ بيئة التطوير وتطبيق الويب يستوفيان المتطلبات التالية:
- (اختياري) Node.js
- متصفّح ويب حديث
(اختياري) اطّلِع على نموذج التطبيق.
يمكنك تجربة حزمة تطوير البرامج (SDK) بسرعة، أو الاطّلاع على تنفيذ كامل لحالات استخدام مختلفة، أو استخدام النموذج التطبيقي إذا لم يكن لديك تطبيق ويب خاص بك. لاستخدام النموذج التطبيقي، عليك ربطه بمشروع على Firebase.
Dart
يفترض هذا الدليل أنّك على دراية بتطوير التطبيقات باستخدام Flutter.
تأكَّد من أنّ بيئة التطوير وتطبيق Flutter يستوفيان المتطلبات التالية:
- Dart 3.2.0 والإصدارات الأحدث
(اختياري) اطّلِع على نموذج التطبيق.
يمكنك تجربة حزمة تطوير البرامج (SDK) بسرعة، أو الاطّلاع على تنفيذ كامل لحالات الاستخدام المختلفة، أو استخدام النموذج التطبيقي إذا لم يكن لديك تطبيق Flutter. لاستخدام النموذج التطبيقي، عليك أولاً ربطه بمشروع على Firebase.
Unity
يفترض هذا الدليل أنّك على دراية بتطوير الألعاب باستخدام Unity.
تأكَّد من أنّ بيئة التطوير ولعبة Unity تستوفيان المتطلبات التالية:
- إصدار Unity Editor 2021 LTS أو إصدار أحدث
(اختياري) اطّلِع على نموذج التطبيق.
يمكنك تجربة حزمة SDK بسرعة، أو الاطّلاع على تنفيذ كامل لحالات استخدام مختلفة، أو استخدام نموذج التطبيق إذا لم تكن لديك لعبة Unity خاصة بك. لاستخدام نموذج التطبيق، عليك ربطه بمشروع على Firebase.
الخطوة 1: إعداد مشروع على Firebase وربط تطبيقك به
سجِّل الدخول إلى وحدة تحكُّم Firebase، ثم اختَر مشروعك على Firebase.
في وحدة تحكُّم Firebase، انتقِل إلى صفحة Firebase AI Logic.
انقر على Get started (البدء) لبدء سير عمل إرشادي يساعدك في إعداد واجهات برمجة التطبيقات المطلوبة والموارد لمشروعك.
اختَر مقدّم خدمة "Gemini API" الذي تريد استخدامه مع IDE و Firebase AI Logic حِزم تطوير البرامج (SDK). يمكنك في أي وقت إعداد مقدّم واجهة برمجة التطبيقات الآخر واستخدامه لاحقًا، إذا أردت ذلك.
Gemini Developer API: الفوترة اختيارية (متاحة في خطة Spark غير المدفوعة)
ستفعّل وحدة التحكّم واجهات برمجة التطبيقات المطلوبة وستُنشئ مفتاح Gemini لواجهة برمجة التطبيقات في مشروعك. يمكنك إعداد الفوترة لاحقًا إذا أردت ترقية خطة الأسعار.Vertex AI Gemini API: الفوترة مطلوبة (تتطلب خطة الأسعار Blaze للدفع حسب الاستخدام)
ستساعدك وحدة التحكّم في إعداد الفوترة وتفعيل واجهات برمجة التطبيقات المطلوبة في مشروعك.
اتّبِع التعليمات الظاهرة على الشاشة لتسجيل تطبيقك وربطه بمنصّة Firebase، إذا طُلب منك ذلك في سير عمل وحدة التحكّم.
انتقِل إلى الخطوة التالية في هذا الدليل لإضافة حزمة SDK إلى تطبيقك.
الخطوة 2: إضافة حزمة تطوير البرامج (SDK)
بعد إعداد مشروعك على Firebase وربط تطبيقك بمنصّة Firebase (راجِع الخطوة السابقة)، يمكنك الآن إضافة حزمة تطوير البرامج (SDK) لنظام Firebase AI Logic إلى تطبيقك.
Swift
استخدِم Swift Package Manager لتثبيت تبعيات Firebase وإدارتها.
توفّر مكتبة Firebase AI Logic إمكانية الوصول إلى واجهات برمجة التطبيقات للتفاعل
مع نماذج Gemini وImagen. يتم تضمين المكتبة
كجزء من حزمة تطوير البرامج (SDK) لمنصّات Apple (firebase-ios-sdk
).
إذا كنت تستخدم Firebase، تأكَّد من أنّ حزمة Firebase هي الإصدار 11.13.0 أو إصدار أحدث.
في Xcode، مع فتح مشروع تطبيقك، انتقِل إلى ملف > إضافة تبعيات الحزمة.
أضِف مستودع حزمة تطوير البرامج (SDK) لمنصّات Apple من Firebase عندما يُطلب منك ذلك:
https://github.com/firebase/firebase-ios-sdk
اختَر أحدث إصدار من حزمة SDK.
اختَر مكتبة
FirebaseAI
.
عند الانتهاء، سيبدأ Xcode تلقائيًا في حلّ ملفاتك المضمّنة وتنزيلها في الخلفية.
Kotlin
توفّر حزمة Firebase AI Logic SDK لنظام التشغيل Android (firebase-ai
)
إمكانية الوصول إلى واجهات برمجة التطبيقات للتفاعل مع
طُرز Gemini وImagen.
في ملف 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.13.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
توفّر حزمة Firebase AI Logic SDK لنظام التشغيل Android (firebase-ai
)
إمكانية الوصول إلى واجهات برمجة التطبيقات للتفاعل مع
طُرز Gemini وImagen.
في ملف 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.13.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 على الويب.
ثبِّت حزمة تطوير البرامج (SDK) لبرنامج Firebase باستخدام JavaScript على الويب باستخدام 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 لنظام التشغيل Firebase Unity، ثم استخرِج حزمة SDK في مكان مناسب.
حزمة SDK لنظام التشغيل Firebase Unity ليست مرتبطة بنظام أساسي معيّن.
في مشروع Unity المفتوح، انتقِل إلى مواد العرض > استيراد حزمة > حزمة مخصّصة.
من حزمة SDK المستخرجة، اختَر حزمة
FirebaseAI
.في نافذة استيراد حِزمة Unity، انقر على استيراد.
في وحدة تحكّم Firebase، انقر على التالي في سير عمل الإعداد.
الخطوة 3: بدء الخدمة وإنشاء مثيل للنموذج
انقر على مزوّد Gemini API لعرض المحتوى الخاص بالمزوّد والرمز البرمجي في هذه الصفحة. |
عند استخدام حِزم تطوير البرامج (SDK) لبرنامج Firebase AI Logic مع Gemini Developer API، لا تُضِف مفتاح واجهة برمجة التطبيقاتGemini إلى قاعدة بيانات تطبيقك. مزيد من المعلومات
قبل إرسال طلب إلى نموذج Gemini،
عليك إعداد الخدمة لموفّر واجهة برمجة التطبيقات الذي اخترته وإنشاء
مثيل GenerativeModel
.
Swift
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.0-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-2.0-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-2.0-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-2.0-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-2.0-flash');
Unity
using Firebase;
using Firebase.AI;
// Initialize the Gemini Developer API backend service
var ai = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI());
// Create a `GenerativeModel` instance with a model that supports your use case
var model = ai.GetGenerativeModel(modelName: "gemini-2.0-flash");
يُرجى العلم أنّه استنادًا إلى الإمكانات التي تستخدمها، قد لا تتمكّن دائمًا من
إنشاء مثيل GenerativeModel
.
- للوصول إلى نموذج Imagen،
أنشئ مثيل
ImagenModel
.
بعد الانتهاء من هذا الدليل المخصص للمبتدئين، يمكنك التعرّف على كيفية اختيار نموذج لحالة الاستخدام والتطبيق.
الخطوة 4: إرسال طلب طلب إلى نموذج
تم الآن إعدادك لإرسال طلب فوري إلى نموذج Gemini.
يمكنك استخدام generateContent()
لإنشاء نص من طلب يحتوي على
نص:
Swift
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.0-flash")
// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."
// To generate text output, call generateContent with the text input
let response = try await model.generateContent(prompt)
print(response.text ?? "No text in response.")
Kotlin
بالنسبة إلى Kotlin، تكون الطرق في حزمة تطوير البرامج (SDK) هذه دوالّ معلّقة ويجب استدعاؤها من نطاق Coroutine.
// 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.0-flash")
// Provide a prompt that contains text
val prompt = "Write a story about a magic backpack."
// To generate text output, call generateContent with the text input
val response = generativeModel.generateContent(prompt)
print(response.text)
Java
بالنسبة إلى Java، تعرض الطرق في حزمة تطوير البرامج (SDK) هذه رمز ملف برمجي هوListenableFuture
.
// 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.0-flash");
// Use the GenerativeModelFutures Java compatibility layer which offers
// support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(ai);
// Provide a prompt that contains text
Content prompt = new Content.Builder()
.addText("Write a story about a magic backpack.")
.build();
// To generate text output, call generateContent with the text input
ListenableFuture<GenerateContentResponse> response = model.generateContent(prompt);
Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
@Override
public void onSuccess(GenerateContentResponse result) {
String resultText = result.getText();
System.out.println(resultText);
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
}
}, executor);
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-2.0-flash" });
// Wrap in an async function so you can use await
async function run() {
// Provide a prompt that contains text
const prompt = "Write a story about a magic backpack."
// To generate text output, call generateContent with the text input
const result = await model.generateContent(prompt);
const response = result.response;
const text = response.text();
console.log(text);
}
run();
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-2.0-flash');
// Provide a prompt that contains text
final prompt = [Content.text('Write a story about a magic backpack.')];
// To generate text output, call generateContent with the text input
final response = await model.generateContent(prompt);
print(response.text);
Unity
using Firebase;
using Firebase.AI;
// Initialize the Gemini Developer API backend service
var ai = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI());
// Create a `GenerativeModel` instance with a model that supports your use case
var model = ai.GetGenerativeModel(modelName: "gemini-2.0-flash");
// Provide a prompt that contains text
var prompt = "Write a story about a magic backpack.";
// To generate text output, call GenerateContentAsync with the text input
var response = await model.GenerateContentAsync(prompt);
UnityEngine.Debug.Log(response.Text ?? "No text in response.");
ما هي الإجراءات الأخرى التي يمكنك اتّخاذها؟
مزيد من المعلومات عن الطُرز المتوافقة
اطّلِع على مزيد من المعلومات عن النماذج المتاحة لحالات الاستخدام المختلفة واطلاعك على الحصص و الأسعار.
تجربة إمكانات أخرى
- اطّلِع على مزيد من المعلومات عن إنشاء نص من الطلبات النصية فقط، بما في ذلك كيفية بثّ الردّ.
- يمكنك إنشاء نص من خلال طلب أنواع ملفات مختلفة، مثل الصور، ملفات PDF، الفيديوهات، المقاطع الصوتية.
- إنشاء محادثات متعددة المقاطع (محادثة)
- إنشاء إخراج منظَّم (مثل تنسيق JSON) من كلّ من الطلبات النصية والطلبات باستخدام وسائط متعدّدة
- إنشاء صور من طلبات نصية
- بث الإدخال والإخراج (بما في ذلك الصوت) باستخدام Gemini Live API
- استخدِم استدعاء الدوال لربط النماذج التوليدية بالأنظمة والمعلومات الخارجية.
التعرّف على كيفية التحكّم في إنشاء المحتوى
- التعرّف على تصميم الطلبات، بما في ذلك أفضل الممارسات والاستراتيجيات وأمثلة الطلبات
- ضبط مَعلمات النموذج، مثل درجة الحرارة والحد الأقصى لرموز الإخراج (لميزة Gemini) أو نسبة العرض إلى الارتفاع وإنشاء الأشخاص (لميزة Imagen)
- استخدام إعدادات الأمان لضبط احتمالية تلقّي ردود قد تُعتبر ضارة
تقديم ملاحظات حول تجربتك مع Firebase AI Logic