از نسخه پیش‌نمایش Vertex AI در SDKهای Firebase به Logic SDKهای Firebase


Firebase AI Logic و SDK های کلاینت آن قبلاً " Vertex AI in Firebase " نامیده می‌شدند. برای انعکاس بهتر خدمات و ویژگی‌های توسعه‌یافته ما (به عنوان مثال، اکنون از Gemini Developer API پشتیبانی می‌کنیم!)، نام خدمات خود را به Firebase AI Logic تغییر دادیم و بسته‌بندی مجدد کردیم .

برای دسترسی ایمن به مدل‌های هوش مصنوعی مولد گوگل مستقیماً از طریق برنامه‌های تلفن همراه یا وب خود، اکنون می‌توانید یک ارائه‌دهنده « Gemini API » را انتخاب کنید - یا Vertex AI Gemini API که از مدت‌ها پیش در دسترس بوده یا اکنون Gemini Developer API . این بدان معناست که اکنون می‌توانید از Gemini Developer API استفاده کنید که یک سطح رایگان با محدودیت‌ها و سهمیه‌های معقول ارائه می‌دهد.

مروری بر مراحل مهاجرت به SDK های Firebase AI Logic

  • مرحله ۱ : بهترین ارائه‌دهنده «Gemini API» را برای برنامه و موارد استفاده خود انتخاب کنید.

  • مرحله ۲ : فعال کردن API های مورد نیاز

  • مرحله ۳ : کتابخانه مورد استفاده در برنامه خود را به‌روزرسانی کنید.

  • مرحله ۴ : مقداردهی اولیه را در برنامه خود به‌روزرسانی کنید.

  • مرحله ۵ : کد خود را بسته به ویژگی‌هایی که استفاده می‌کنید، به‌روزرسانی کنید.

مرحله ۱ : بهترین ارائه‌دهنده «Gemini API» را برای برنامه خود انتخاب کنید

با این مهاجرت، شما می‌توانید ارائه‌دهنده‌ی « Gemini API » را انتخاب کنید:

  • SDK های قدیمی « Vertex AI in Firebase » فقط می‌توانستند از API مربوط به Vertex AI Gemini استفاده کنند.

  • کیت‌های توسعه نرم‌افزار (SDK) جدید Firebase AI Logic به شما امکان می‌دهند انتخاب کنید که می‌خواهید کدام ارائه‌دهنده « Gemini API » را مستقیماً از برنامه تلفن همراه یا وب خود فراخوانی کنید - یا Gemini Developer API یا Vertex AI Gemini API .

تفاوت‌های بین استفاده از دو ارائه‌دهنده‌ی API مربوط به Gemini را بررسی کنید، به خصوص از نظر ویژگی‌های پشتیبانی‌شده، قیمت‌گذاری و محدودیت‌های نرخ. فقط برای یک مثال، API توسعه‌دهندگان Gemini از ارائه فایل‌ها با استفاده از URLهای Cloud Storage پشتیبانی نمی‌کند، اما اگر می‌خواهید از ردیف رایگان و سهمیه‌ی معقول آن بهره‌مند شوید، می‌تواند انتخاب خوبی باشد.

مرحله ۲ : فعال کردن API های مورد نیاز

مطمئن شوید که تمام APIهای مورد نیاز در پروژه Firebase شما فعال هستند تا بتوانید از ارائه‌دهنده « Gemini API » انتخابی خود استفاده کنید.

توجه داشته باشید که می‌توانید هر دو ارائه‌دهنده API را همزمان در پروژه خود فعال کنید.

  1. وارد کنسول Firebase شوید و سپس پروژه Firebase خود را انتخاب کنید.

  2. در کنسول Firebase ، به صفحه منطق هوش مصنوعی فایربیس بروید.

  3. برای شروع یک گردش کار هدایت‌شده که به شما در تنظیم APIها و منابع مورد نیاز پروژه‌تان کمک می‌کند، روی «شروع به کار» کلیک کنید.

  4. ارائه‌دهنده‌ی «Gemini API» را که می‌خواهید با Firebase AI Logic SDKs استفاده کنید، انتخاب کنید. در صورت تمایل، همیشه می‌توانید ارائه‌دهنده‌ی API دیگری را بعداً تنظیم و استفاده کنید.

    • رابط برنامه‌نویسی کاربردی Gemini - پرداخت هزینه اختیاری (در طرح قیمت‌گذاری بدون هزینه Spark موجود است)
      گردش کار کنسول، APIهای مورد نیاز را فعال کرده و یک کلید API جمینی در پروژه شما ایجاد می‌کند.
      این کلید API مربوط به Gemini را به کدبیس برنامه خود اضافه نکنید . اطلاعات بیشتر.

    • رابط برنامه‌نویسی کاربردی Vertex AI Gemini - پرداخت صورتحساب الزامی است (نیازمند طرح قیمت‌گذاری پرداخت در محل Blaze است)
      گردش کار کنسول، APIهای مورد نیاز را در پروژه شما فعال می‌کند.

  5. برای به‌روزرسانی کتابخانه و مقداردهی اولیه در برنامه خود، در این راهنمای مهاجرت ادامه دهید.

مرحله ۳ : به‌روزرسانی کتابخانه مورد استفاده در برنامه

کدبیس برنامه خود را برای استفاده از کتابخانه Firebase AI Logic به‌روزرسانی کنید.

سویفت

  1. در Xcode، در حالی که پروژه برنامه شما باز است، بسته Firebase خود را با استفاده از یکی از گزینه‌های زیر به نسخه ۱۱.۱۳.۰ یا بالاتر به‌روزرسانی کنید:

    • گزینه ۱ : به‌روزرسانی همه بسته‌ها: به مسیر File > Packages > Update to Latest Package Versions بروید.

    • گزینه ۲ : به‌روزرسانی جداگانه فایربیس: در بخشی به نام Package Dependencies به پکیج فایربیس بروید. روی پکیج فایربیس کلیک راست کنید و سپس Update Package را انتخاب کنید.

  2. مطمئن شوید که بسته Firebase اکنون نسخه 11.13.0 یا بالاتر را نشان می‌دهد. اگر اینطور نیست، بررسی کنید که الزامات بسته‌بندی مشخص‌شده شما امکان به‌روزرسانی به نسخه 11.13.0 یا بالاتر را فراهم می‌کند.

  3. هدف برنامه خود را در ویرایشگر پروژه انتخاب کنید و سپس به بخش چارچوب‌ها، کتابخانه‌ها و محتوای جاسازی‌شده بروید.

  4. کتابخانه جدید را اضافه کنید: دکمه + را انتخاب کنید و سپس FirebaseAI را از بسته Firebase اضافه کنید.

  5. پس از اتمام انتقال برنامه خود (به بخش‌های باقیمانده در این راهنما مراجعه کنید)، حتماً کتابخانه قدیمی را حذف کنید:
    FirebaseVertexAI-Preview را انتخاب کنید و سپس دکمه‌ی را فشار دهید.

Kotlin

  1. در فایل Gradle ماژول (سطح برنامه) خود (معمولاً <project>/<app-module>/build.gradle.kts یا <project>/<app-module>/build.gradle )، وابستگی‌های قدیمی را (در صورت وجود) با موارد زیر جایگزین کنید.

    توجه داشته باشید که ممکن است مهاجرت کدبیس برنامه (به بخش‌های باقیمانده این راهنما مراجعه کنید) قبل از حذف وابستگی قدیمی، آسان‌تر باشد.

    // BEFORE
    dependencies {
      implementation("com.google.firebase:firebase-vertexai:16.0.0-betaXX")
    }
    
    
    // AFTER
    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")
    }
  2. پروژه اندروید خود را با فایل‌های Gradle همگام‌سازی کنید.

توجه داشته باشید که اگر تصمیم دارید از Firebase Android BoM استفاده نکنید، کافیست وابستگی مربوط به کتابخانه firebase-ai را اضافه کنید و آخرین نسخه پیشنهادی اندروید استودیو را بپذیرید.

Java

  1. در فایل Gradle ماژول (سطح برنامه) خود (معمولاً <project>/<app-module>/build.gradle.kts یا <project>/<app-module>/build.gradle )، وابستگی‌های قدیمی را (در صورت وجود) با موارد زیر جایگزین کنید.

    توجه داشته باشید که ممکن است مهاجرت کدبیس برنامه (به بخش‌های باقیمانده این راهنما مراجعه کنید) قبل از حذف وابستگی قدیمی، آسان‌تر باشد.

    // BEFORE
    dependencies {
      implementation("com.google.firebase:firebase-vertexai:16.0.0-betaXX")
    }
    
    
    // AFTER
    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")
    }
  2. پروژه اندروید خود را با فایل‌های Gradle همگام‌سازی کنید.

توجه داشته باشید که اگر تصمیم دارید از Firebase Android BoM استفاده نکنید، کافیست وابستگی مربوط به کتابخانه firebase-ai را اضافه کنید و آخرین نسخه پیشنهادی اندروید استودیو را بپذیرید.

Web

  1. آخرین نسخه Firebase JS SDK برای وب را با استفاده از npm دریافت کنید:

    npm i firebase@latest

    یا

    yarn add firebase@latest
  2. هر جا که کتابخانه را وارد کرده‌اید، دستورات import خود را به‌روزرسانی کنید تا به جای آن firebase/ai استفاده شود.

    توجه داشته باشید که ممکن است مهاجرت کدبیس برنامه (به بخش‌های باقیمانده این راهنما مراجعه کنید) قبل از حذف ایمپورت‌های قدیمی، آسان‌تر باشد.

    // BEFORE
    import { initializeApp } from "firebase/app";
    import { getVertexAI, getGenerativeModel } from "firebase/vertexai-preview";
    
    
    // AFTER
    import { initializeApp } from "firebase/app";
    import { getAI, getGenerativeModel } from "firebase/ai";

Dart

  1. با اجرای دستور زیر از دایرکتوری پروژه Flutter خود، به استفاده از بسته firebase_ai در فایل pubspec.yaml خود به‌روزرسانی کنید:

    flutter pub add firebase_ai
  2. پروژه فلاتر خود را بازسازی کنید:

    flutter run
  3. پس از اتمام انتقال برنامه خود (به بخش‌های باقیمانده در این راهنما مراجعه کنید)، حتماً بسته قدیمی را حذف کنید:

    flutter pub remove firebase_vertexai

وحدت

پشتیبانی از Unity از « Vertex AI در Firebase » در دسترس نبود.

یاد بگیرید که چگونه با Firebase AI Logic SDK برای Unity شروع به کار کنید .

مرحله ۴ : مقداردهی اولیه را در برنامه خود به‌روزرسانی کنید

برای مشاهده محتوا و کد مخصوص ارائه‌دهنده در این صفحه، روی ارائه‌دهنده API Gemini خود کلیک کنید.

نحوه‌ی مقداردهی اولیه‌ی سرویس برای ارائه‌دهنده‌ی API انتخابی خود را به‌روزرسانی کنید و یک نمونه‌ی GenerativeModel ایجاد کنید.

سویفت


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


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


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


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


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 از « Vertex AI در Firebase » در دسترس نبود.

یاد بگیرید که چگونه با Firebase AI Logic SDK برای Unity شروع به کار کنید .

توجه داشته باشید که بسته به قابلیتی که استفاده می‌کنید، ممکن است همیشه یک نمونه GenerativeModel ایجاد نکنید .

مرحله ۵ : کد خود را بسته به ویژگی‌هایی که استفاده می‌کنید، به‌روزرسانی کنید

این مرحله تغییراتی را شرح می‌دهد که ممکن است بسته به ویژگی‌هایی که استفاده می‌کنید، مورد نیاز باشند.

  • اگر از آدرس‌های اینترنتی Cloud Storage URLs) استفاده می‌کنید و در این انتقال ، API توسعه‌دهندگان Gemini را جایگزین کرده‌اید، باید درخواست‌های چندوجهی خود را به‌روزرسانی کنید تا فایل‌ها به عنوان داده‌های درون‌خطی (inline data) لحاظ شوند (یا از آدرس‌های اینترنتی یوتیوب برای ویدیوها استفاده کنید).

  • چندین تغییر برای نسخه‌های GA از SDK های " Vertex AI in Firebase " معرفی شده است. همین تغییرات برای استفاده از SDK های Firebase AI Logic نیز مورد نیاز است. لیست‌های زیر را برای هرگونه تغییری که ممکن است برای تطبیق با SDK Firebase AI Logic در کد خود ایجاد کنید، مرور کنید.

مورد نیاز برای همه زبان‌ها و پلتفرم‌ها

  • فراخوانی تابع
    اگر این ویژگی را قبل از GA پیاده‌سازی کرده‌اید، باید نحوه تعریف طرحواره خود را به‌روزرسانی کنید. توصیه می‌کنیم برای یادگیری نحوه نوشتن اعلان‌های تابع ، راهنمای فراخوانی تابع به‌روزرسانی‌شده را مرور کنید.

  • تولید خروجی ساختاریافته (مانند JSON) با استفاده از responseSchema
    اگر این ویژگی را قبل از GA پیاده‌سازی کرده‌اید، باید نحوه تعریف طرحواره خود را به‌روزرسانی کنید. توصیه می‌کنیم برای یادگیری نحوه نوشتن طرحواره‌های JSON ، راهنمای جدید خروجی ساختاریافته را مرور کنید.

  • تایم اوت

    • زمان پیش‌فرض برای درخواست‌ها به ۱۸۰ ثانیه تغییر یافت.

مورد نیاز بر اساس پلتفرم یا زبان

سویفت

  • شمارش‌ها

    • اکثر انواع enum با struct ها با متغیرهای استاتیک جایگزین شدند. این تغییر، انعطاف‌پذیری بیشتری را برای تکامل API به روشی سازگار با نسخه‌های قبلی فراهم می‌کند. هنگام استفاده از دستورات 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 را در CitationMetadata به citations تغییر داد.
  • کل کاراکترهای قابل پرداخت

    • ویژگی totalBillableCharacters در CountTokensResponse به صورت اختیاری تغییر یافت تا موقعیت‌هایی را که هیچ کاراکتری ارسال نمی‌شود، منعکس کند.
  • پاسخ نامزد

    • برای مطابقت با سایر پلتفرم‌ها، نام CandidateResponse به Candidate تغییر یافت.
  • پیکربندی تولید

    • ویژگی‌های عمومی GenerationConfig به internal تغییر داده شد. همه آنها در مقداردهنده اولیه قابل تنظیم باقی می‌مانند.

Kotlin

  • شمارش‌ها

    • کلاس‌های enum و کلاس‌های sealed با کلاس‌های معمولی جایگزین شدند. این تغییر، انعطاف‌پذیری بیشتری را برای تکامل API به روشی سازگار با نسخه‌های قبلی فراهم می‌کند.

    • نام شمارش BlockThreshold را به HarmBlockThreshold تغییر داد.

    • مقادیر از شمارش‌های زیر حذف شده‌اند: HarmBlockThreshold ، HarmProbability ، HarmSeverity ، BlockReason و FinishReason .

  • روش‌های لکه‌ای

    • تمام متدهایی که Blob به عنوان بخشی از نام خود داشتند، به InlineData تغییر نام دادند.
  • تنظیمات ایمنی

    • method فیلد را به nullable تغییر دادم.
  • کلاس مدت زمان

    • تمام کاربردهای کلاس Duration کاتلین حذف شده و با long جایگزین شده است. این تغییر قابلیت همکاری بهتری با جاوا فراهم می‌کند.
  • فراداده استناد

    • تمام فیلدهایی که قبلاً در CitationMetadata تعریف شده بودند را در یک کلاس جدید به نام Citation قرار داد. Citationها را می‌توان در لیستی به نام citations در CitationMetadata یافت. این تغییر امکان ترازبندی بهتر انواع داده‌ها را در پلتفرم‌های مختلف فراهم می‌کند.
  • تعداد توکن‌ها

    • فیلد totalBillableCharacters به ​​nullable تغییر داده شد.
  • کل کاراکترهای قابل پرداخت

    • ویژگی totalBillableCharacters در CountTokensResponse به صورت اختیاری تغییر یافت تا موقعیت‌هایی را که هیچ کاراکتری ارسال نمی‌شود، منعکس کند.
  • نمونه‌سازی یک مدل

    • پارامتر requestOptions به انتهای لیست پارامترها منتقل شد تا با سایر پلتفرم‌ها هماهنگ شود.
  • Live API

    • مقدار UNSPECIFIED برای کلاس شمارشی ResponseModality حذف شد. به جای آن از null استفاده کنید.

    • تغییر نام LiveGenerationConfig.setResponseModalities به LiveGenerationConfig.setResponseModality .

    • کلاس LiveContentResponse.Status حذف شده و در عوض فیلدهای وضعیت به عنوان ویژگی‌های LiveContentResponse تو در تو شده‌اند.

    • کلاس LiveContentResponse حذف شده و در عوض زیرکلاس‌هایی از LiveServerMessage ارائه شده است که با پاسخ‌های مدل مطابقت دارند.

    • LiveModelFutures.connect تغییر کرد تا ListenableFuture<LiveSessionFutures> را به جای ListenableFuture<LiveSession> برگرداند.

Java

  • شمارش‌ها

    • کلاس‌های enum و کلاس‌های sealed با کلاس‌های معمولی جایگزین شدند. این تغییر، انعطاف‌پذیری بیشتری را برای تکامل API به روشی سازگار با نسخه‌های قبلی فراهم می‌کند.

    • نام شمارش BlockThreshold را به HarmBlockThreshold تغییر داد.

    • مقادیر از شمارش‌های زیر حذف شده‌اند: HarmBlockThreshold ، HarmProbability ، HarmSeverity ، BlockReason و FinishReason .

  • روش‌های لکه‌ای

    • تمام متدهایی که Blob به عنوان بخشی از نام خود داشتند، به InlineData تغییر نام دادند.
  • تنظیمات ایمنی

    • method فیلد را به nullable تغییر دادم.
  • کلاس مدت زمان

    • تمام کاربردهای کلاس Duration کاتلین حذف شده و با long جایگزین شده است. این تغییر قابلیت همکاری بهتری با جاوا فراهم می‌کند.
  • فراداده استناد

    • تمام فیلدهایی که قبلاً در CitationMetadata تعریف شده بودند را در یک کلاس جدید به نام Citation قرار داد. Citationها را می‌توان در لیستی به نام citations در CitationMetadata یافت. این تغییر امکان ترازبندی بهتر انواع داده‌ها را در پلتفرم‌های مختلف فراهم می‌کند.
  • تعداد توکن‌ها

    • فیلد totalBillableCharacters به ​​nullable تغییر داده شد.
  • کل کاراکترهای قابل پرداخت

    • ویژگی totalBillableCharacters در CountTokensResponse به صورت اختیاری تغییر یافت تا موقعیت‌هایی را که هیچ کاراکتری ارسال نمی‌شود، منعکس کند.
  • نمونه‌سازی یک مدل

    • پارامتر requestOptions به انتهای لیست پارامترها منتقل شد تا با سایر پلتفرم‌ها هماهنگ شود.
  • Live API

    • مقدار UNSPECIFIED برای کلاس شمارشی ResponseModality حذف شد. به جای آن از null استفاده کنید.

    • تغییر نام LiveGenerationConfig.setResponseModalities به LiveGenerationConfig.setResponseModality .

    • کلاس LiveContentResponse.Status حذف شده و در عوض فیلدهای وضعیت به عنوان ویژگی‌های LiveContentResponse تو در تو شده‌اند.

    • کلاس LiveContentResponse حذف شده و در عوض زیرکلاس‌هایی از LiveServerMessage ارائه شده است که با پاسخ‌های مدل مطابقت دارند.

    • LiveModelFutures.connect تغییر کرد تا ListenableFuture<LiveSessionFutures> را به جای ListenableFuture<LiveSession> برگرداند.

  • متدهای مختلف سازنده جاوا تغییر یافته‌اند تا اکنون به جای void ، نمونه کلاس خود را به درستی برگردانند.

Web

  • شمارش‌ها

    • مقادیر از شمارش‌های زیر حذف شده‌اند: HarmCategory ، BlockThreshold ، HarmProbability ، HarmSeverity ، BlockReason و FinishReason .
  • دلیل مسدود شدن

    • blockReason در PromptFeedback به صورت اختیاری تغییر یافت.

تغییرات فقط در صورتی لازم است که شروع به استفاده از Gemini Developer API (به جای Vertex AI Gemini API ) کنید:

  • تنظیمات ایمنی

    • کاربردهای پشتیبانی نشده‌ی SafetySetting.method حذف شد.
  • داده‌های درون‌خطی

    • کاربردهای پشتیبانی نشده‌ی InlineDataPart.videoMetadata حذف شد.

Dart

  • شمارش‌ها

    • مقادیر از شمارش‌های زیر حذف شدند: HarmCategory ، HarmProbability ، BlockReason و FinishReason .
  • بخش داده

    • نام DataPart به InlineDataPart و تابع data static به inlineData تغییر یافت تا با سایر پلتفرم‌ها هماهنگ شود.
  • گزینه‌های درخواست

    • RequestOptions به دلیل عدم کارکرد timeout حذف شد. در آینده نزدیک دوباره اضافه خواهد شد، اما برای مطابقت با سایر پلتفرم‌ها به نوع GenerativeModel منتقل می‌شود.
  • توالی‌های توقف

    • پارامتر stopSequences در GenerationConfig را به اختیاری تغییر داد و مقدار پیش‌فرض آن را به جای یک آرایه خالی، null قرار داد.
  • نقل قول‌ها

    • نام ویژگی citationSources در CitationMetadata به citations تغییر یافت. نوع CitationSource برای مطابقت با سایر پلتفرم‌ها به Citation تغییر نام یافت.
  • انواع، متدها و ویژگی‌های عمومی غیرضروری

    • انواع، متدها و ویژگی‌های زیر که به طور ناخواسته در معرض نمایش قرار گرفته بودند، حذف شدند: defaultTimeout ، CountTokensResponseFields ، parseCountTokensResponse ، parseEmbedContentResponse ، parseGenerateContentResponse ، parseContent ، BatchEmbedContentsResponse ، ContentEmbedding ، EmbedContentRequest و EmbedContentResponse .
  • تعداد توکن‌ها

    • فیلدهای اضافی که دیگر لازم نیستند از تابع countTokens حذف شده‌اند. فقط contents مورد نیاز است.
  • نمونه‌سازی یک مدل

    • پارامتر systemInstruction به انتهای لیست پارامترها منتقل شد تا با سایر پلتفرم‌ها هماهنگ شود.
  • قابلیت جاسازی

    • قابلیت جاسازی پشتیبانی نشده ( embedContent و batchEmbedContents ) از مدل حذف شد.

وحدت

پشتیبانی از Unity از « Vertex AI در Firebase » در دسترس نبود.

یاد بگیرید که چگونه با Firebase AI Logic SDK برای Unity شروع به کار کنید .

خطاهای احتمالی مربوط به مهاجرت

همانطور که در حال مهاجرت به نسخه GA از Firebase AI Logic هستید، اگر تمام تغییرات مورد نیاز را طبق آنچه در این راهنمای مهاجرت توضیح داده شده است، تکمیل نکرده باشید، ممکن است با خطا مواجه شوید.

خطای ۴۰۳: Requests to this API firebasevertexai.googleapis.com ... are blocked.

اگر خطای ۴۰۳ با مضمون « Requests to this API firebasevertexai.googleapis.com ... are blocked. دریافت کردید، معمولاً به این معنی است که کلید API فایربیس در فایل یا شیء پیکربندی فایربیس شما، API مورد نیاز را در فهرست مجاز خود برای محصولی که می‌خواهید استفاده کنید، ندارد.

مطمئن شوید که کلید API فایربیس مورد استفاده توسط برنامه شما، تمام APIهای مورد نیاز را در لیست مجاز "محدودیت‌های API" کلید داشته باشد. برای Firebase AI Logic ، کلید API فایربیس شما باید حداقل API فایربیس AI Logic را در لیست مجاز خود داشته باشد. این API باید هنگام فعال کردن APIهای مورد نیاز در کنسول Firebase ، به طور خودکار به لیست مجاز کلید API شما اضافه شده باشد.

شما می‌توانید تمام کلیدهای API خود را در پنل APIs & Services > Credentials در کنسول Google Cloud مشاهده کنید.


درباره تجربه خود با Firebase AI Logic بازخورد دهید