بدء استخدام Gemini API باستخدام Vertex AI في حِزم تطوير البرامج (SDK) لمنصة Firebase

يوضّح لك هذا الدليل كيفية بدء إجراء مكالمات إلى Vertex AI Gemini API مباشرةً من تطبيقك باستخدام حزمة تطوير البرامج (SDK) Vertex AI in Firebase لنظام التشغيل الذي اخترته.

يُرجى العِلم أنّه يمكنك أيضًا استخدام هذا الدليل للبدء في الوصول إلى نماذج Imagen باستخدام Vertex AI in Firebase حِزم SDK.

المتطلبات الأساسية

يفترض هذا الدليل أنّك على دراية باستخدام Xcode لتطوير تطبيقات لأنظمة Apple الأساسية (مثل iOS).

  • تأكَّد من أنّ بيئة التطوير وتطبيق منصات Apple يستوفيان المتطلبات التالية:

    • الإصدار 16.2 من Xcode أو إصدار أحدث
    • يستهدف تطبيقك الإصدار 15 من نظام التشغيل iOS أو إصدار أحدث، أو الإصدار 12 من نظام التشغيل macOS أو إصدار أحدث
  • (اختياري) اطّلِع على نموذج التطبيق.

    تنزيل تطبيق البدء السريع

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

يفترض هذا الدليل أنّك على دراية باستخدام "استوديو Android" لتطوير تطبيقات Android.

  • تأكَّد من أنّ بيئة التطوير وتطبيق Android يستوفيان المتطلّبات التالية:

    • "استوديو Android" (أحدث إصدار)
    • يستهدف تطبيقك المستوى 21 من واجهة برمجة التطبيقات أو المستويات الأعلى.
  • (اختياري) اطّلِع على نموذج التطبيق.

    تنزيل نموذج التطبيق

    يمكنك تجربة حزمة تطوير البرامج (SDK) بسرعة، أو الاطّلاع على تنفيذ كامل لحالات الاستخدام المختلفة، أو استخدام النموذج التطبيقي إذا لم يكن لديك تطبيق Android. ولاستخدام النموذج التطبيقي، عليك ربطه بمشروع على Firebase.

يفترض هذا الدليل أنّك على دراية باستخدام "استوديو Android" لتطوير تطبيقات Android.

  • تأكَّد من أنّ بيئة التطوير وتطبيق Android يستوفيان المتطلّبات التالية:

    • "استوديو Android" (أحدث إصدار)
    • يستهدف تطبيقك المستوى 21 من واجهة برمجة التطبيقات أو المستويات الأعلى.
  • (اختياري) اطّلِع على نموذج التطبيق.

    تنزيل نموذج التطبيق

    يمكنك تجربة حزمة تطوير البرامج (SDK) بسرعة، أو الاطّلاع على تنفيذ كامل لحالات الاستخدام المختلفة، أو استخدام النموذج التطبيقي إذا لم يكن لديك تطبيق Android. ولاستخدام النموذج التطبيقي، عليك ربطه بمشروع على Firebase.

يفترض هذا الدليل أنّك على دراية باستخدام JavaScript لتطوير تطبيقات الويب. هذا الدليل مستقل عن إطار العمل.

  • تأكَّد من أنّ بيئة التطوير وتطبيق الويب يستوفيان المتطلبات التالية:

    • (اختياري) Node.js
    • متصفّح ويب حديث
  • (اختياري) اطّلِع على نموذج التطبيق.

    تنزيل نموذج التطبيق

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

يفترض هذا الدليل أنّك على دراية بتطوير التطبيقات باستخدام Flutter.

  • تأكَّد من أنّ بيئة التطوير وتطبيق Flutter يستوفيان المتطلبات التالية:

    • ‫Dart 3.2.0 والإصدارات الأحدث
  • (اختياري) اطّلِع على نموذج التطبيق.

    تنزيل نموذج التطبيق

    يمكنك تجربة حزمة تطوير البرامج (SDK) بسرعة، أو الاطّلاع على تنفيذ كامل لحالات الاستخدام المختلفة، أو استخدام النموذج التطبيقي إذا لم يكن لديك تطبيق Flutter. ولاستخدام النموذج التطبيقي، عليك ربطه بمشروع على Firebase.

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

إذا كان لديك سابقًا مشروع على Firebase وتطبيق مرتبط به

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

  2. انقر على بطاقة Vertex AI in Firebase لبدء سير عمل يساعدك في completing the following tasks:

  3. انتقِل إلى الخطوة التالية في هذا الدليل لإضافة حزمة SDK إلى تطبيقك.

إذا لم يكن لديك مشروع على Firebase وتطبيق مرتبط به

  1. سجِّل الدخول إلى وحدة تحكّم Firebase.

  2. انقر على إنشاء مشروع، ثم استخدِم أيًا من الخيارَين التاليَين:

    • الخيار 1: إنشاء مشروع جديد تمامًا على Firebase (ومشروع Google Cloud الأساسي تلقائيًا) من خلال إدخال اسم مشروع جديد في الخطوة الأولى من سير عمل "إنشاء مشروع".

    • الخيار 2: "إضافة Firebase" إلى مشروع حالي على Google Cloud من خلال اختيار اسم مشروعك على Google Cloud من القائمة المنسدلة في الخطوة الأولى من سير عمل "إنشاء مشروع"

    يُرجى العلم أنّه لا عليك إعداد Google Analytics لاستخدام حِزم تطوير البرامج (SDK) Vertex AI in Firebase عند طلب ذلك.

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

  4. انقر على بطاقة Vertex AI in Firebase لبدء سير عمل يساعدك في completing the following tasks:

  1. تابِع سير عمل إعداد Vertex AI in Firebase في وحدة التحكّم لربط تطبيقك بمنصّة Firebase، بما في ذلك المهام التالية:

    • تسجيل تطبيقك في مشروعك على Firebase

    • إضافة ملف إعدادات Firebase (GoogleService-Info.plist) إلى تطبيقك

  2. في الخطوات التالية من هذا الدليل، ستضيف حزمة تطوير البرامج (SDK) Vertex AI in Firebase إلى تطبيقك وتُكمِل عملية الإعداد المطلوبة المتعلّقة باستخدام حزمة SDK وGemini API.

  1. تابِع سير عمل إعداد Vertex AI in Firebase في وحدة التحكّم لربط تطبيقك بمنصّة Firebase، بما في ذلك المهام التالية:

    • تسجيل تطبيقك في مشروعك على Firebase

    • إضافة ملف إعدادات Firebase (google-services.json) ومكوّن Gradle الإضافي google-services إلى تطبيقك

  2. في الخطوات التالية من هذا الدليل، ستضيف حزمة تطوير البرامج (SDK) Vertex AI in Firebase إلى تطبيقك وتُكمِل عملية الإعداد المطلوبة المتعلّقة باستخدام حزمة SDK وGemini API.

  1. تابِع سير عمل إعداد Vertex AI in Firebase في وحدة التحكّم لربط تطبيقك بمنصّة Firebase، بما في ذلك المهام التالية:

    • تسجيل تطبيقك في مشروعك على Firebase

    • إضافة ملف إعدادات Firebase (google-services.json) ومكوّن Gradle الإضافي google-services إلى تطبيقك

  2. في الخطوات التالية من هذا الدليل، ستضيف حزمة تطوير البرامج (SDK) Vertex AI in Firebase إلى تطبيقك وتُكمِل عملية الإعداد المطلوبة المتعلّقة باستخدام حزمة SDK وGemini API.

  1. تابِع سير عمل إعداد Vertex AI in Firebase في وحدة التحكّم لربط تطبيقك بمنصّة Firebase، بما في ذلك المهام التالية:

    • تسجيل تطبيقك في مشروعك على Firebase

    • إضافة عنصر إعدادات Firebase إلى تطبيقك

  2. في الخطوات التالية من هذا الدليل، ستضيف حزمة تطوير البرامج (SDK) Vertex AI in Firebase إلى تطبيقك وتُكمِل عملية الإعداد المطلوبة المتعلّقة باستخدام حزمة SDK وGemini API.

  1. ثبِّت أدوات سطر الأوامر المطلوبة:

    1. في حال عدم إجراء ذلك من قبل، ثبِّت Firebase CLI.

    2. سجِّل الدخول إلى Firebase باستخدام حسابك على Google من خلال تنفيذ العبارة التالية:

      firebase login
      
    3. ثبِّت FlutterFire CLI من خلال تنفيذ الأمر التالي من أي دليل:

      dart pub global activate flutterfire_cli
      
  2. ضبط تطبيقاتك لاستخدام Firebase:

    استخدِم FlutterFire CLI لضبط تطبيقات Flutter من أجل الربط بموقع Firebase الإلكتروني.

    من دليل مشروع Flutter، نفِّذ الأمر التالي لبدء سير العمل في ضبط إعدادات التطبيق:

    flutterfire configure
    

    ينفِّذ سير العمل flutterfire configure ما يلي:

    • يطلب منك اختيار الأنظمة الأساسية (iOS وAndroid والويب) المتوافقة مع تطبيق Flutter. وبالنسبة إلى كل نظام أساسي تم اختياره، تنشئ أداة FlutterFire CLI تطبيقًا جديدًا على Firebase في مشروعك على Firebase.

      يمكنك اختيار استخدام مشروع حالي على Firebase أو إنشاء مشروع جديد على Firebase. إذا كان لديك تطبيقات مسجّلة في أحد مشاريع Firebase الحالية، سيحاول FlutterFire CLI مطابقتها استنادًا إلى إعدادات مشروع Flutter الحالي.

    • إنشاء ملف إعدادات Firebase (firebase_options.dart) وإضافته إلى الدليل lib/ في تطبيق Flutter

  3. في الخطوات التالية من هذا الدليل، ستضيف حزمة تطوير البرامج (SDK) Vertex AI in Firebase إلى تطبيقك وتُكمِل عملية الإعداد المطلوبة المتعلّقة باستخدام حزمة SDK وGemini API.


الخطوة 2: إضافة حزمة تطوير البرامج (SDK)

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

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

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

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

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

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

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

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

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

في ملف Gradle للوحدة (على مستوى التطبيق) (مثل <project>/<app-module>/build.gradle.kts)، أضِف الاعتمادية لمكتبة Vertex AI in Firebase لنظام التشغيل 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 Vertex AI in Firebase library
  // When using the BoM, you don't specify versions in Firebase library dependencies
  implementation("com.google.firebase:firebase-vertexai")
}

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

إذا اخترت عدم استخدام Firebase BoM، عليك تحديد كل إصدار من مكتبة Firebase في سطر الاعتمادية.

يُرجى العلم أنّه في حال استخدام مكتبات Firebase متعدّدة في تطبيقك، ننصح بشدة باستخدام BoM لإدارة إصدارات المكتبة، ما يضمن توافق جميع الإصدارات.

dependencies {
  // Add the dependency for the Vertex AI in Firebase library
  // When NOT using the BoM, you must specify versions in Firebase library dependencies
  implementation("com.google.firebase:firebase-vertexai:16.4.0")
}

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

في ملف Gradle للوحدة (على مستوى التطبيق) (مثل <project>/<app-module>/build.gradle.kts)، أضِف الاعتمادية لمكتبة Vertex AI in Firebase لنظام التشغيل 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 Vertex AI in Firebase library
  // When using the BoM, you don't specify versions in Firebase library dependencies
  implementation("com.google.firebase:firebase-vertexai")

  // 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.

إذا اخترت عدم استخدام Firebase BoM، عليك تحديد كل إصدار من مكتبة Firebase في سطر الاعتمادية.

يُرجى العلم أنّه في حال استخدام مكتبات Firebase متعدّدة في تطبيقك، ننصح بشدة باستخدام BoM لإدارة إصدارات المكتبة، ما يضمن توافق جميع الإصدارات.

dependencies {
  // Add the dependency for the Vertex AI in Firebase library
  // When NOT using the BoM, you must specify versions in Firebase library dependencies
  implementation("com.google.firebase:firebase-vertexai:16.4.0")
}

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

  1. ثبِّت حزمة تطوير البرامج (SDK) لبرنامج Firebase باستخدام JavaScript على الويب باستخدام 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);
    

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

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

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

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

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

    flutter run
    

الخطوة 3: بدء خدمة Vertex AI وإنشاء مثيل GenerativeModel

قبل أن تتمكّن من إجراء أي طلبات إلى واجهة برمجة التطبيقات وإرسال طلب إلى نموذج Gemini، عليك بدء خدمة Vertex AI وإنشاء مثيل GenerativeModel.

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Create a `GenerativeModel` instance with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")
بالنسبة إلى Kotlin، تكون الطرق في حزمة تطوير البرامج (SDK) هذه دوالّ معلّقة ويجب استدعاؤها من نطاق Coroutine.
// Initialize the Vertex AI service and create a `GenerativeModel` instance
// Specify a model that supports your use case
val generativeModel = Firebase.vertexAI.generativeModel("gemini-2.0-flash")
بالنسبة إلى Java، تُعرِض طُرق البث في حزمة SDK هذه نوعًا Publisher من مكتبة Reactive Streams.
// Initialize the Vertex AI service and create a `GenerativeModel` instance
// Specify a model that supports your use case
GenerativeModel gm = FirebaseVertexAI.getInstance()
        .generativeModel("gemini-2.0-flash");

// Use the GenerativeModelFutures Java compatibility layer which offers
// support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(gm);
import { initializeApp } from "firebase/app";
import { getVertexAI, getGenerativeModel } from "firebase/vertexai";

// 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 Vertex AI service
const vertexAI = getVertexAI(firebaseApp);

// Create a `GenerativeModel` instance with a model that supports your use case
const model = getGenerativeModel(vertexAI, { model: "gemini-2.0-flash" });
import 'package:firebase_vertexai/firebase_vertexai.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';

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

// Initialize the Vertex AI service and create a `GenerativeModel` instance
// Specify a model that supports your use case
final model =
      FirebaseVertexAI.instance.generativeModel(model: 'gemini-2.0-flash');

بعد الانتهاء من هذا الدليل المخصّص للمبتدئين، تعرَّف على كيفية اختيار نموذج و (اختياريًا) موقع جغرافي مناسبَين لحالة الاستخدام والتطبيق.

الخطوة 4: إرسال طلب طلب إلى نموذج

بعد ربط تطبيقك بمنصّة Firebase وإضافة حزمة تطوير البرامج (SDK) وبدء استخدام خدمة Vertex AI والنموذج التوليدي، يمكنك إرسال طلب طلب إلى نموذج Gemini.

يمكنك استخدام generateContent() لإنشاء نص من طلب نصي فقط: طلب:

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Create a `GenerativeModel` instance with a model that supports your use case
let model = vertex.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، تكون الطرق في حزمة تطوير البرامج (SDK) هذه دوالّ معلّقة ويجب استدعاؤها من نطاق Coroutine.
// Initialize the Vertex AI service and create a `GenerativeModel` instance
// Specify a model that supports your use case
val generativeModel = Firebase.vertexAI.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، تعرض الطرق في حزمة SDK هذه رمز برمجيًا هو ListenableFuture.
// Initialize the Vertex AI service and create a `GenerativeModel` instance
// Specify a model that supports your use case
GenerativeModel gm = FirebaseVertexAI.getInstance()
        .generativeModel("gemini-2.0-flash");
GenerativeModelFutures model = GenerativeModelFutures.from(gm);

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

// 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 Vertex AI service
const vertexAI = getVertexAI(firebaseApp);

// Create a `GenerativeModel` instance with a model that supports your use case
const model = getGenerativeModel(vertexAI, { 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();
import 'package:firebase_vertexai/firebase_vertexai.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';

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

// Initialize the Vertex AI service and create a `GenerativeModel` instance
// Specify a model that supports your use case
final model =
      FirebaseVertexAI.instance.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);

ما هي الإجراءات الأخرى التي يمكنك اتّخاذها؟

مزيد من المعلومات عن الطُرز المتوافقة

اطّلِع على مزيد من المعلومات عن النماذج المتاحة لحالات الاستخدام المختلفة واطلاعك على الحصص و الأسعار.

تجربة إمكانات أخرى

التعرّف على كيفية التحكّم في إنشاء المحتوى

يمكنك أيضًا تجربة الطلبات وإعدادات النماذج باستخدام Vertex AI Studio.


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