از نسخه «پیش‌نمایش» کیت‌های توسعه نرم‌افزار Vertex AI در کیت‌های توسعه نرم‌افزار Firebase به کیت‌های توسعه نرم‌افزار Firebase AI Logic انتقال دهید


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

برای دسترسی ایمن به مدل‌های هوش مصنوعی زایای Google مستقیماً از برنامه‌های تلفن همراه یا وب، اکنون می‌توانید ارائه‌دهنده «Gemini API» را انتخاب کنید — یا Agent Platform Gemini API (formerly Vertex AI) که مدت‌ها دردسترس بوده است یا اکنون Gemini Developer API. این یعنی اکنون این گزینه را دارید که از Gemini Developer API استفاده کنید که سطح بدون هزینه با سهمیه‌ها و محدودیت‌های نرخ معقول ارائه می‌دهد.

نمای کلی مراحل انتقال به کیت‌های توسعه نرم‌افزار Firebase AI Logic

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

  • مرحله ۲: میاناهای برنامه‌سازی کاربردی موردنیاز را فعال کنید.

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

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

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

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

با این انتقال، در ارائه‌دهنده «Gemini API» حق انتخاب دارید:

  • «کیت‌های توسعه نرم‌افزار» قدیمی «Vertex AI in Firebase» فقط می‌توانستند از Agent Platform Gemini API (formerly Vertex AI) استفاده کنند.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Swift

  1. در Xcode، با باز بودن پروژه برنامه، بسته Firebase خود را بااستفاده از یکی از گزینه‌های زیر به v12.5.0 یا نسخه‌های جدیدتر به‌روز کنید:

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

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

  2. مطمئن شوید که بسته Firebase اکنون نسخه ۱۲.۵.۰ یا بالاتر را نشان می‌دهد. اگر این‌طور نیست، تأیید کنید که ملزومات بسته مشخص‌شده شما اجازه به‌روزرسانی به نسخه ۱۲.۵.۰ یا جدیدتر را می‌دهد.

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

  4. کتابخانه جدید را اضافه کنید: دکمه + را انتخاب کنید، و سپس FirebaseAILogic را از بسته 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:35.0.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. پروژه Android خود را با فایل‌های Gradle همگام‌سازی کنید.

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

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:35.0.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. پروژه Android خود را با فایل‌های Gradle همگام‌سازی کنید.

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

Web

  1. بااستفاده از npm، جدیدترین نسخه «کیت توسعه نرم‌افزار Firebase JS برای وب» را دریافت کنید:

    npm i firebase@latest

    یا

    yarn add firebase@latest
  2. هرجا کتابخانه را وارد کرده‌اید، عبارت‌های وارد کردن را به‌روز کنید تا به‌جای آن از 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 خود را بازسازی کنید:

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

    flutter pub remove firebase_vertexai

Unity

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

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

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

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

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

Swift


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-3.8-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-3.8-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-3.8-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-3.8-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-3.8-flash');

Unity

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

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

توجه داشته باشید که بسته به قابلیتی که استفاده می‌کنید، ممکن است همیشه نمونه GenerativeModel ایجاد نکنید. برای جاری‌سازی ورودی و برونداد بااستفاده از Gemini Live API، نمونه LiveModel ایجاد کنید.

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

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

  • اگر از Cloud Storage نشانی‌های وب و استفاده می‌کنید و در این انتقال به استفاده از Gemini Developer API تغییر دادید، باید درخواست‌های چندوجهی خود را به‌روز کنید تا فایل‌ها را به‌عنوان داده‌های به‌خط اضافه کنید (یا از نشانی‌های وب YouTube برای ویدیوها استفاده کنید).

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

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

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

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

  • توقف موقت

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

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

Swift

  • شمارش‌ها

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

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

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

    • مقادیر از شمارش‌های زیر برداشته شد: HarmBlockThreshold، HarmProbability،‏ HarmSeverity،‏ BlockReason، و FinishReason.

  • روش‌های Blob

    • همه روش‌هایی که Blob را به‌عنوان بخشی از نامشان داشتند تغییر نام دادند تا به‌جای آن از InlineData استفاده کنند.
  • تنظیمات ایمنی

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

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

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

    • فیلد totalBillableCharacters به حالت تهی تغییر کرد.
  • کل نویسه‌های صورت‌حساب‌پذیر

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

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

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

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

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

    • کلاس LiveContentResponse را برداشتیم و به‌جای آن زیرکلاس‌های LiveServerMessage را که با پاسخ‌های مدل مطابقت دارد ارائه کردیم.

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

Java

  • شمارش‌ها

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

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

    • مقادیر از شمارش‌های زیر برداشته شد: HarmBlockThreshold، HarmProbability،‏ HarmSeverity،‏ BlockReason، و FinishReason.

  • روش‌های Blob

    • همه روش‌هایی که Blob را به‌عنوان بخشی از نامشان داشتند تغییر نام دادند تا به‌جای آن از InlineData استفاده کنند.
  • تنظیمات ایمنی

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

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

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

    • فیلد totalBillableCharacters به حالت تهی تغییر کرد.
  • کل نویسه‌های صورت‌حساب‌پذیر

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

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

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

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

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

    • کلاس LiveContentResponse را برداشتیم و به‌جای آن زیرکلاس‌های LiveServerMessage را که با پاسخ‌های مدل مطابقت دارد ارائه کردیم.

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

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

Web

  • شمارش‌ها

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

    • ‫blockReason در PromptFeedback به اختیاری تغییر کرد.

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

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

    • موارد استفاده از SafetySetting.method پشتیبانی‌نشده برداشته شد.
  • داده‌های درون‌خطی

    • موارد استفاده از InlineDataPart.videoMetadata پشتیبانی‌نشده برداشته شد.

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

پشتیبانی از Unity از «Vertex AI in 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.، معمولاً به این معنی است که کلید Firebase API در فایل پیکربندی Firebase یا شیء آن، میانای برنامه‌سازی کاربردی موردنیاز را در فهرست مجاز محصولی که می‌خواهید استفاده کنید ندارد.

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

می‌توانید همه کلیدهای API خود را در APIs و سرویس‌ها > اطلاعات اعتباری پانل در کنسول Google Cloud مشاهده کنید.


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