Vertex AI in Firebase SDK-এর পূর্বরূপ সংস্করণ থেকে Firebase AI লজিক SDKগুলিতে স্থানান্তর করুন


Firebase AI Logic এবং এর ক্লায়েন্ট SDK গুলিকে পূর্বে " Vertex AI in Firebase " বলা হত। আমাদের সম্প্রসারিত পরিষেবা এবং বৈশিষ্ট্যগুলিকে আরও ভালভাবে প্রতিফলিত করার জন্য (উদাহরণস্বরূপ, আমরা এখন Gemini Developer API সমর্থন করি!), আমরা আমাদের পরিষেবাগুলিকে Firebase AI Logic এ পুনঃনামকরণ এবং পুনঃপ্যাকেজ করেছি

আপনার মোবাইল বা ওয়েব অ্যাপ থেকে সরাসরি গুগলের জেনারেটিভ এআই মডেলগুলি নিরাপদে অ্যাক্সেস করতে, আপনি এখন একটি " জেমিনি এপিআই " সরবরাহকারী বেছে নিতে পারেন - হয় দীর্ঘ-উপলব্ধ ভার্টেক্স এআই জেমিনি এপিআই অথবা এখন জেমিনি ডেভেলপার এপিআই । এর অর্থ হল আপনার কাছে এখন জেমিনি ডেভেলপার এপিআই ব্যবহার করার বিকল্প রয়েছে, যা যুক্তিসঙ্গত হার সীমা এবং কোটা সহ একটি বিনামূল্যের স্তর প্রদান করে।

ফায়ারবেস এআই লজিক এসডিকেতে স্থানান্তরের পদক্ষেপগুলির সংক্ষিপ্তসার

  • ধাপ ১ : আপনার অ্যাপ এবং ব্যবহারের ক্ষেত্রে সেরা "Gemini API" প্রদানকারীটি বেছে নিন।

  • ধাপ ২ : প্রয়োজনীয় API গুলি সক্ষম করুন।

  • ধাপ ৩ : আপনার অ্যাপে ব্যবহৃত লাইব্রেরি আপডেট করুন।

  • ধাপ ৪ : আপনার অ্যাপে ইনিশিয়ালাইজেশন আপডেট করুন।

  • ধাপ ৫ : আপনার ব্যবহৃত বৈশিষ্ট্যের উপর নির্ভর করে আপনার কোড আপডেট করুন।

ধাপ ১ : আপনার অ্যাপের জন্য সেরা "Gemini API" প্রদানকারীটি বেছে নিন

এই মাইগ্রেশনের মাধ্যমে, আপনার " Gemini API " প্রদানকারীর মধ্যে একটি পছন্দ থাকবে:

  • পুরাতন " Vertex AI in Firebase " SDK গুলি শুধুমাত্র Vertex AI Gemini API ব্যবহার করতে পারত।

  • নতুন Firebase AI Logic SDK গুলি আপনাকে আপনার মোবাইল বা ওয়েব অ্যাপ থেকে সরাসরি কোন " Gemini API " প্রদানকারীকে কল করতে চান তা বেছে নিতে দেয় - হয় Gemini Developer API অথবা Vertex AI Gemini API

দুটি জেমিনি এপিআই প্রদানকারী ব্যবহারের মধ্যে পার্থক্য পর্যালোচনা করুন, বিশেষ করে সমর্থিত বৈশিষ্ট্য, মূল্য নির্ধারণ এবং হারের সীমার ক্ষেত্রে। শুধুমাত্র একটি উদাহরণের জন্য, জেমিনি ডেভেলপার এপিআই Cloud Storage ইউআরএল ব্যবহার করে ফাইল সরবরাহ সমর্থন করে না, তবে আপনি যদি এর বিনামূল্যের স্তর এবং যুক্তিসঙ্গত কোটার সুবিধা নিতে চান তবে এটি একটি ভাল পছন্দ হতে পারে।

ধাপ ২ : প্রয়োজনীয় API গুলি সক্ষম করুন

আপনার পছন্দের " Gemini API " প্রদানকারী ব্যবহার করার জন্য আপনার Firebase প্রকল্পে সমস্ত প্রয়োজনীয় API সক্রিয় আছে কিনা তা নিশ্চিত করুন।

মনে রাখবেন যে আপনার প্রোজেক্টে একই সাথে উভয় API প্রদানকারী সক্ষম করা যেতে পারে।

  1. Firebase কনসোলে সাইন ইন করুন, এবং তারপর আপনার Firebase প্রকল্পটি নির্বাচন করুন।

  2. Firebase কনসোলে, ফায়ারবেস এআই লজিক পৃষ্ঠায় যান।

  3. আপনার প্রকল্পের জন্য প্রয়োজনীয় API এবং সংস্থান সেট আপ করতে সাহায্য করার জন্য একটি নির্দেশিত কর্মপ্রবাহ চালু করতে "শুরু করুন" এ ক্লিক করুন।

  4. Firebase AI Logic SDK-এর সাথে আপনি যে "Gemini API" প্রোভাইডারটি ব্যবহার করতে চান তা নির্বাচন করুন। আপনি চাইলে পরে যেকোনো সময় অন্য API প্রোভাইডার সেট আপ করে ব্যবহার করতে পারেন।

    • জেমিনি ডেভেলপার এপিআইবিলিং ঐচ্ছিক (কোনও খরচ ছাড়াই স্পার্ক মূল্য পরিকল্পনায় উপলব্ধ)
      কনসোলের ওয়ার্কফ্লো প্রয়োজনীয় API গুলি সক্ষম করবে এবং আপনার প্রকল্পে একটি জেমিনি API কী তৈরি করবে।
      এই জেমিনি এপিআই কীটি আপনার অ্যাপের কোডবেসে যোগ করবেন না আরও জানুন।

    • ভার্টেক্স এআই জেমিনি এপিআইবিলিং প্রয়োজন (পে-অ্যাজ-ইউ-গো ব্লেজ প্রাইসিং প্ল্যান প্রয়োজন)
      কনসোলের ওয়ার্কফ্লো আপনার প্রকল্পে প্রয়োজনীয় API গুলি সক্ষম করবে।

  5. আপনার অ্যাপে লাইব্রেরি এবং ইনিশিয়ালাইজেশন আপডেট করতে এই মাইগ্রেশন গাইডটি চালিয়ে যান।

ধাপ ৩ : আপনার অ্যাপে ব্যবহৃত লাইব্রেরি আপডেট করুন

Firebase AI Logic লাইব্রেরি ব্যবহার করতে আপনার অ্যাপের কোডবেস আপডেট করুন।

সুইফট

  1. Xcode-এ, আপনার অ্যাপ প্রজেক্ট খোলা থাকা অবস্থায়, নিম্নলিখিত বিকল্পগুলির মধ্যে একটি ব্যবহার করে আপনার Firebase প্যাকেজটি v11.13.0 বা তার পরবর্তী সংস্করণে আপডেট করুন:

    • বিকল্প ১ : সকল প্যাকেজ আপডেট করুন: ফাইল > প্যাকেজ > সর্বশেষ প্যাকেজ সংস্করণে আপডেট করুন এ নেভিগেট করুন।

    • বিকল্প ২ : পৃথকভাবে Firebase আপডেট করুন: Package Dependencies নামক বিভাগে Firebase প্যাকেজে নেভিগেট করুন। Firebase প্যাকেজে ডান-ক্লিক করুন, এবং তারপর Update Package নির্বাচন করুন।

  2. নিশ্চিত করুন যে Firebase প্যাকেজটি এখন v11.13.0 বা তার পরবর্তী সংস্করণ দেখায়। যদি তা না হয়, তাহলে যাচাই করুন যে আপনার নির্দিষ্ট প্যাকেজ প্রয়োজনীয়তাগুলি v11.13.0 বা তার পরবর্তী সংস্করণে আপডেট করার অনুমতি দেয়।

  3. প্রজেক্ট এডিটরে আপনার অ্যাপের টার্গেট নির্বাচন করুন, এবং তারপর ফ্রেমওয়ার্ক, লাইব্রেরি এবং এমবেডেড কন্টেন্ট বিভাগে নেভিগেট করুন।

  4. নতুন লাইব্রেরি যোগ করুন: + বোতামটি নির্বাচন করুন, এবং তারপর Firebase প্যাকেজ থেকে FirebaseAI যোগ করুন।

  5. আপনার অ্যাপটি স্থানান্তরিত করার পরে (এই নির্দেশিকার বাকি অংশগুলি দেখুন), পুরানো লাইব্রেরিটি সরিয়ে ফেলতে ভুলবেন না:
    FirebaseVertexAI-Preview নির্বাচন করুন, এবং তারপর বোতাম টিপুন।

Kotlin

  1. আপনার মডিউলে (অ্যাপ-লেভেল) গ্র্যাডেল ফাইলে (সাধারণত <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. আপনার অ্যান্ড্রয়েড প্রজেক্টটি গ্র্যাডেল ফাইলের সাথে সিঙ্ক করুন।

মনে রাখবেন, যদি আপনি Firebase Android BoM ব্যবহার না করার সিদ্ধান্ত নেন, তাহলে firebase-ai লাইব্রেরির জন্য নির্ভরতা যোগ করুন এবং Android Studio দ্বারা প্রস্তাবিত সর্বশেষ সংস্করণটি গ্রহণ করুন।

Java

  1. আপনার মডিউলে (অ্যাপ-লেভেল) গ্র্যাডেল ফাইলে (সাধারণত <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. আপনার অ্যান্ড্রয়েড প্রজেক্টটি গ্র্যাডেল ফাইলের সাথে সিঙ্ক করুন।

মনে রাখবেন, যদি আপনি Firebase Android BoM ব্যবহার না করার সিদ্ধান্ত নেন, তাহলে firebase-ai লাইব্রেরির জন্য নির্ভরতা যোগ করুন এবং Android Studio দ্বারা প্রস্তাবিত সর্বশেষ সংস্করণটি গ্রহণ করুন।

Web

  1. npm ব্যবহার করে ওয়েবের জন্য Firebase JS SDK-এর সর্বশেষ সংস্করণটি পান:

    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 প্রজেক্ট ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডটি চালিয়ে আপনার pubspec.yaml ফাইলে firebase_ai প্যাকেজটি ব্যবহারের জন্য আপডেট করুন:

    flutter pub add firebase_ai
  2. আপনার ফ্লটার প্রকল্পটি পুনর্নির্মাণ করুন:

    flutter run
  3. আপনার অ্যাপটি স্থানান্তরিত করার পরে (এই নির্দেশিকার বাকি অংশগুলি দেখুন), পুরানো প্যাকেজটি মুছে ফেলতে ভুলবেন না:

    flutter pub remove firebase_vertexai

ঐক্য

" Firebase-এ Vertex AI " থেকে ইউনিটির জন্য সমর্থন পাওয়া যায়নি।

ইউনিটির জন্য ফায়ারবেস এআই লজিক এসডিকে কীভাবে শুরু করবেন তা শিখুন।

ধাপ ৪ : আপনার অ্যাপে ইনিশিয়ালাইজেশন আপডেট করুন

এই পৃষ্ঠায় প্রোভাইডার-নির্দিষ্ট কন্টেন্ট এবং কোড দেখতে আপনার জেমিনি API প্রোভাইডারে ক্লিক করুন।

আপনার নির্বাচিত 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');

ঐক্য

" Firebase-এ Vertex AI " থেকে ইউনিটির জন্য সমর্থন পাওয়া যায়নি।

ইউনিটির জন্য ফায়ারবেস এআই লজিক এসডিকে কীভাবে শুরু করবেন তা শিখুন।

মনে রাখবেন যে আপনি যে ক্ষমতা ব্যবহার করছেন তার উপর নির্ভর করে, আপনি সর্বদা একটি GenerativeModel ইনস্ট্যান্স তৈরি নাও করতে পারেন

ধাপ ৫ : আপনার ব্যবহৃত বৈশিষ্ট্যের উপর নির্ভর করে আপনার কোড আপডেট করুন।

এই ধাপে আপনি কোন বৈশিষ্ট্যগুলি ব্যবহার করেন তার উপর নির্ভর করে প্রয়োজনীয় পরিবর্তনগুলি বর্ণনা করা হয়েছে।

  • যদি আপনি Cloud Storage ইউআরএল ব্যবহার করেন এবং এই মাইগ্রেশনে জেমিনি ডেভেলপার এপিআই ব্যবহার করার জন্য সোয়াপ করেন, তাহলে আপনাকে ইনলাইন ডেটা হিসেবে ফাইল অন্তর্ভুক্ত করার জন্য আপনার মাল্টিমোডাল অনুরোধগুলি আপডেট করতে হবে (অথবা ভিডিওর জন্য ইউটিউব ইউআরএল ব্যবহার করতে হবে)।

  • " Vertex AI in Firebase " SDK-এর GA সংস্করণের জন্য বেশ কিছু পরিবর্তন আনা হয়েছে। Firebase AI Logic SDK ব্যবহার করার জন্যও এই একই পরিবর্তনগুলি প্রয়োজন। Firebase AI Logic SDK ব্যবহার করার জন্য আপনার কোডে যে কোনও পরিবর্তন করার প্রয়োজন হতে পারে তার জন্য নিম্নলিখিত তালিকাগুলি পর্যালোচনা করুন।

সকল ভাষা এবং প্ল্যাটফর্মের জন্য প্রয়োজনীয়

  • ফাংশন কলিং
    যদি আপনি GA এর আগে এই বৈশিষ্ট্যটি বাস্তবায়ন করে থাকেন, তাহলে আপনার স্কিমা কীভাবে সংজ্ঞায়িত করবেন তা আপডেট করতে হবে। আপনার ফাংশন ঘোষণা কীভাবে লিখতে হয় তা শিখতে আমরা আপডেট করা ফাংশন কলিং গাইডটি পর্যালোচনা করার পরামর্শ দিচ্ছি।

  • responseSchema ব্যবহার করে স্ট্রাকচার্ড আউটপুট (যেমন JSON) তৈরি করা হচ্ছে
    যদি আপনি GA এর আগে এই বৈশিষ্ট্যটি বাস্তবায়ন করে থাকেন, তাহলে আপনার স্কিমা কীভাবে সংজ্ঞায়িত করবেন তা আপডেট করতে হবে। JSON স্কিমা কীভাবে লিখতে হয় তা শিখতে আমরা নতুন স্ট্রাকচার্ড আউটপুট গাইডটি পর্যালোচনা করার পরামর্শ দিচ্ছি।

  • সময়সীমা শেষ

    • অনুরোধের জন্য ডিফল্ট সময়সীমা ১৮০ সেকেন্ডে পরিবর্তন করা হয়েছে।

প্ল্যাটফর্ম বা ভাষার উপর ভিত্তি করে প্রয়োজনীয়

সুইফট

  • গণনা

    • বেশিরভাগ enum প্রকারের পরিবর্তে struct s ব্যবহার করে স্ট্যাটিক ভেরিয়েবল ব্যবহার করা হয়েছে। এই পরিবর্তন API-কে পশ্চাদমুখী-সামঞ্জস্যপূর্ণ উপায়ে বিকশিত করার জন্য আরও নমনীয়তা প্রদান করে। switch স্টেটমেন্ট ব্যবহার করার সময়, অজানা বা অপ্রচলিত মানগুলি কভার করার জন্য আপনাকে এখন একটি default: case অন্তর্ভুক্ত করতে হবে, যার মধ্যে ভবিষ্যতে SDK-তে যোগ করা নতুন মান অন্তর্ভুক্ত থাকবে।

    • BlockThreshold গণনার নাম পরিবর্তন করে HarmBlockThreshold রাখা হয়েছে; এই ধরণটি এখন একটি struct

    • নিম্নলিখিত গণনাগুলি (এখন struct গুলি) থেকে unknown এবং unspecified কেসগুলি সরানো হয়েছে: HarmCategory , HarmBlockThreshold , HarmProbability , BlockReason , এবং FinishReason

    • নতুন টাইপগুলিকে ব্যাকওয়ার্ড-সামঞ্জস্যপূর্ণ Part যোগ করার অনুমতি দেওয়ার জন্য ModelContent.Part নামক একটি প্রোটোকল দিয়ে গণনা প্রতিস্থাপন করা হয়েছে। এই পরিবর্তনটি Content parts বিভাগে আরও বিশদে বর্ণনা করা হয়েছে।

  • বিষয়বস্তুর অংশ

    • ThrowingPartsRepresentable প্রোটোকলটি সরিয়ে ফেলা হয়েছে, এবং মাঝে মাঝে কম্পাইলার ত্রুটি এড়াতে ModelContent এর জন্য ইনিশিয়ালাইজারগুলিকে সরলীকৃত করা হয়েছে। যেসব ছবি সঠিকভাবে এনকোড করে না, সেগুলো generateContent এ ব্যবহার করার সময়ও ত্রুটি দেখাবে।

    • ModelContent.Part কেসগুলিকে Part প্রোটোকলের সাথে সামঞ্জস্যপূর্ণ নিম্নলিখিত struct প্রকার দিয়ে প্রতিস্থাপন করা হয়েছে:

      • .text থেকে TextPart
      • .data থেকে InlineDataPart
      • .fileData থেকে FileDataPart
      • .functionCall to FunctionCallPart
      • .functionResponse to FunctionResponsePart
  • ক্ষতিকর বিভাগ

    • HarmCategory আর SafetySetting টাইপে নেস্টেড না করার জন্য পরিবর্তন করা হয়েছে। যদি আপনি এটিকে SafetySetting.HarmCategory হিসাবে উল্লেখ করেন, তাহলে এটি HarmCategory দিয়ে প্রতিস্থাপন করা যেতে পারে।
  • নিরাপত্তা প্রতিক্রিয়া

    • কোনও প্রতিক্রিয়ায় এটি ব্যবহার না করায়, SafetyFeedback প্রকারটি সরিয়ে ফেলা হয়েছে।
  • উদ্ধৃতি মেটাডেটা

    • CitationMetadata তে citationSources প্রপার্টির নাম পরিবর্তন করে citations করা হয়েছে।
  • মোট বিলযোগ্য অক্ষর

    • CountTokensResponsetotalBillableCharacters প্রপার্টি পরিবর্তন করে ঐচ্ছিক করা হয়েছে যাতে কোনও অক্ষর পাঠানো না হওয়া পরিস্থিতি প্রতিফলিত হয়।
  • প্রার্থীর প্রতিক্রিয়া

    • অন্যান্য প্ল্যাটফর্মের সাথে মেলে CandidateResponse নাম পরিবর্তন করে Candidate রাখা হয়েছে।
  • জেনারেশন কনফিগারেশন

    • GenerationConfig এর পাবলিক প্রোপার্টিগুলিকে internal এ পরিবর্তন করা হয়েছে। এগুলো সবই initializer-এ কনফিগারযোগ্য রয়ে গেছে।

Kotlin

  • গণনা

    • enum ক্লাস এবং sealed ক্লাসগুলিকে নিয়মিত ক্লাস দিয়ে প্রতিস্থাপন করা হয়েছে। এই পরিবর্তনটি API-কে একটি পশ্চাদমুখী সামঞ্জস্যপূর্ণ উপায়ে বিকশিত করার জন্য আরও নমনীয়তা প্রদান করে।

    • BlockThreshold গণনার নাম পরিবর্তন করে HarmBlockThreshold রাখা হয়েছে।

    • নিম্নলিখিত গণনা থেকে মানগুলি সরানো হয়েছে: HarmBlockThreshold , HarmProbability , HarmSeverity , BlockReason , এবং FinishReason

  • ব্লব পদ্ধতি

    • Blob অন্তর্ভুক্ত করা সমস্ত পদ্ধতির নাম পরিবর্তন করে InlineData ব্যবহার করা হয়েছে।
  • নিরাপত্তা সেটিংস

    • ক্ষেত্র method বাতিলযোগ্য করে পরিবর্তন করা হয়েছে।
  • ক্লাসের সময়কাল

    • কোটলিনের Duration ক্লাসের সমস্ত ব্যবহার সরিয়ে ফেলা হয়েছে এবং long দিয়ে প্রতিস্থাপন করা হয়েছে। এই পরিবর্তনটি জাভার সাথে আরও ভাল আন্তঃকার্যক্ষমতা প্রদান করে।
  • উদ্ধৃতি মেটাডেটা

    • CitationMetadata তে পূর্বে ঘোষিত সমস্ত ক্ষেত্রগুলিকে Citation নামে একটি নতুন শ্রেণীতে আবৃত করা হয়েছে। CitationMetadata তে citations নামক তালিকায় উদ্ধৃতি পাওয়া যাবে। এই পরিবর্তনটি প্ল্যাটফর্ম জুড়ে প্রকারের আরও ভাল সারিবদ্ধকরণের অনুমতি দেয়।
  • টোকেন গণনা করুন

    • totalBillableCharacters ফিল্ডটিকে nullable এ পরিবর্তন করা হয়েছে।
  • মোট বিলযোগ্য অক্ষর

    • CountTokensResponsetotalBillableCharacters প্রপার্টি পরিবর্তন করে ঐচ্ছিক করা হয়েছে যাতে কোনও অক্ষর পাঠানো না হওয়া পরিস্থিতি প্রতিফলিত হয়।
  • একটি মডেল তৈরি করা হচ্ছে

    • অন্যান্য প্ল্যাটফর্মের সাথে সারিবদ্ধ করার জন্য requestOptions প্যারামিটারটিকে প্যারামিটার তালিকার শেষে সরানো হয়েছে।
  • Live API

    • enum ক্লাসের জন্য UNSPECIFIED মান সরানো হয়েছে ResponseModality । পরিবর্তে null ব্যবহার করুন।

    • LiveGenerationConfig.setResponseModalities নাম পরিবর্তন করে LiveGenerationConfig.setResponseModality করা হয়েছে।

    • LiveContentResponse.Status ক্লাসটি সরিয়ে ফেলা হয়েছে, এবং এর পরিবর্তে LiveContentResponse এর বৈশিষ্ট্য হিসাবে স্ট্যাটাস ক্ষেত্রগুলিকে নেস্ট করা হয়েছে।

    • LiveContentResponse ক্লাসটি সরিয়ে ফেলা হয়েছে, এবং এর পরিবর্তে LiveServerMessage এর সাবক্লাসগুলি প্রদান করা হয়েছে যা মডেলের প্রতিক্রিয়াগুলির সাথে মেলে।

    • ListenableFuture<LiveSessionFutures> এর পরিবর্তে ListenableFuture<LiveSession> ফেরত দিতে LiveModelFutures.connect পরিবর্তন করা হয়েছে।

Java

  • গণনা

    • enum ক্লাস এবং sealed ক্লাসগুলিকে নিয়মিত ক্লাস দিয়ে প্রতিস্থাপন করা হয়েছে। এই পরিবর্তনটি API-কে একটি পশ্চাদমুখী সামঞ্জস্যপূর্ণ উপায়ে বিকশিত করার জন্য আরও নমনীয়তা প্রদান করে।

    • BlockThreshold গণনার নাম পরিবর্তন করে HarmBlockThreshold রাখা হয়েছে।

    • নিম্নলিখিত গণনা থেকে মানগুলি সরানো হয়েছে: HarmBlockThreshold , HarmProbability , HarmSeverity , BlockReason , এবং FinishReason

  • ব্লব পদ্ধতি

    • Blob অন্তর্ভুক্ত করা সমস্ত পদ্ধতির নাম পরিবর্তন করে InlineData ব্যবহার করা হয়েছে।
  • নিরাপত্তা সেটিংস

    • ক্ষেত্র method বাতিলযোগ্য করে পরিবর্তন করা হয়েছে।
  • ক্লাসের সময়কাল

    • কোটলিনের Duration ক্লাসের সমস্ত ব্যবহার সরিয়ে ফেলা হয়েছে এবং long দিয়ে প্রতিস্থাপন করা হয়েছে। এই পরিবর্তনটি জাভার সাথে আরও ভাল আন্তঃকার্যক্ষমতা প্রদান করে।
  • উদ্ধৃতি মেটাডেটা

    • CitationMetadata তে পূর্বে ঘোষিত সমস্ত ক্ষেত্রগুলিকে Citation নামে একটি নতুন শ্রেণীতে আবৃত করা হয়েছে। CitationMetadata তে citations নামক তালিকায় উদ্ধৃতি পাওয়া যাবে। এই পরিবর্তনটি প্ল্যাটফর্ম জুড়ে প্রকারের আরও ভাল সারিবদ্ধকরণের অনুমতি দেয়।
  • টোকেন গণনা করুন

    • totalBillableCharacters ফিল্ডটিকে nullable এ পরিবর্তন করা হয়েছে।
  • মোট বিলযোগ্য অক্ষর

    • CountTokensResponsetotalBillableCharacters প্রপার্টি পরিবর্তন করে ঐচ্ছিক করা হয়েছে যাতে কোনও অক্ষর পাঠানো না হওয়া পরিস্থিতি প্রতিফলিত হয়।
  • একটি মডেল তৈরি করা হচ্ছে

    • অন্যান্য প্ল্যাটফর্মের সাথে সারিবদ্ধ করার জন্য requestOptions প্যারামিটারটিকে প্যারামিটার তালিকার শেষে সরানো হয়েছে।
  • Live API

    • enum ক্লাসের জন্য UNSPECIFIED মান সরানো হয়েছে ResponseModality । পরিবর্তে null ব্যবহার করুন।

    • LiveGenerationConfig.setResponseModalities নাম পরিবর্তন করে LiveGenerationConfig.setResponseModality করা হয়েছে।

    • LiveContentResponse.Status ক্লাসটি সরিয়ে ফেলা হয়েছে, এবং এর পরিবর্তে LiveContentResponse এর বৈশিষ্ট্য হিসাবে স্ট্যাটাস ক্ষেত্রগুলিকে নেস্ট করা হয়েছে।

    • LiveContentResponse ক্লাসটি সরিয়ে ফেলা হয়েছে, এবং এর পরিবর্তে LiveServerMessage এর সাবক্লাসগুলি প্রদান করা হয়েছে যা মডেলের প্রতিক্রিয়াগুলির সাথে মেলে।

    • ListenableFuture<LiveSessionFutures> এর পরিবর্তে ListenableFuture<LiveSession> ফেরত দিতে LiveModelFutures.connect পরিবর্তন করা হয়েছে।

  • বিভিন্ন জাভা বিল্ডার পদ্ধতি পরিবর্তন করে এখন void এর পরিবর্তে তাদের ক্লাসের ইনস্ট্যান্স সঠিকভাবে ফেরত দেওয়া হয়েছে।

Web

  • গণনা

    • নিম্নলিখিত গণনাগুলি থেকে মানগুলি সরানো হয়েছে: HarmCategory , BlockThreshold , HarmProbability , HarmSeverity , BlockReason , এবং FinishReason
  • ব্লক করার কারণ

    • PromptFeedbackblockReason ঐচ্ছিক করা হয়েছে।

পরিবর্তনগুলি শুধুমাত্র তখনই প্রয়োজন যখন আপনি জেমিনি ডেভেলপার API ব্যবহার শুরু করেন ( Vertex AI জেমিনি API এর পরিবর্তে):

  • নিরাপত্তা সেটিংস

    • অসমর্থিত SafetySetting.method এর ব্যবহারগুলি সরানো হয়েছে।
  • ইনলাইন ডেটা

    • অসমর্থিত InlineDataPart.videoMetadata এর ব্যবহারগুলি সরানো হয়েছে।

Dart

  • গণনা

    • নিম্নলিখিত গণনা থেকে মানগুলি সরানো হয়েছে: HarmCategory , HarmProbability , BlockReason , এবং FinishReason
  • ডেটা অংশ

    • DataPart নাম পরিবর্তন করে InlineDataPart করা হয়েছে, এবং অন্যান্য প্ল্যাটফর্মের সাথে সামঞ্জস্যপূর্ণ করার জন্য static data ফাংশনকে inlineData
  • অনুরোধের বিকল্পগুলি

    • timeout কার্যকরী না হওয়ায় RequestOptions সরিয়ে দেওয়া হয়েছে। অদূর ভবিষ্যতে এটি আবার যোগ করা হবে, তবে অন্যান্য প্ল্যাটফর্মের সাথে মেলানোর জন্য এটি GenerativeModel টাইপে স্থানান্তরিত হবে।
  • ক্রম বন্ধ করুন

    • GenerationConfigstopSequences প্যারামিটারটিকে ঐচ্ছিক করে ডিফল্টে খালি অ্যারের পরিবর্তে null করে দেওয়া হয়েছে।
  • উদ্ধৃতি

    • CitationMetadata তে citationSources প্রপার্টির নাম পরিবর্তন করে citations করা হয়েছে। অন্যান্য প্ল্যাটফর্মের সাথে মানানসই করার জন্য CitationSource টাইপের নাম পরিবর্তন করে Citation করা হয়েছে।
  • অপ্রয়োজনীয় পাবলিক প্রকার, পদ্ধতি এবং বৈশিষ্ট্য

    • অনিচ্ছাকৃতভাবে প্রকাশিত নিম্নলিখিত প্রকার, পদ্ধতি এবং বৈশিষ্ট্যগুলি সরানো হয়েছে: defaultTimeout , CountTokensResponseFields , parseCountTokensResponse , parseEmbedContentResponse , parseGenerateContentResponse , parseContent , BatchEmbedContentsResponse , ContentEmbedding , EmbedContentRequest , এবং EmbedContentResponse .
  • টোকেন গণনা করুন

    • countTokens ফাংশন থেকে অতিরিক্ত ক্ষেত্রগুলি সরানো হয়েছে যা আর প্রয়োজন নেই। শুধুমাত্র contents প্রয়োজন।
  • একটি মডেল তৈরি করা হচ্ছে

    • অন্যান্য প্ল্যাটফর্মের সাথে সারিবদ্ধ করার জন্য systemInstruction প্যারামিটারটিকে প্যারামিটার তালিকার শেষে সরানো হয়েছে।
  • এম্বেডিং কার্যকারিতা

    • মডেল থেকে অসমর্থিত এম্বেডিং কার্যকারিতা ( embedContent এবং batchEmbedContents ) সরানো হয়েছে।

ঐক্য

" Firebase-এ Vertex AI " থেকে ইউনিটির জন্য সমর্থন পাওয়া যায়নি।

ইউনিটির জন্য ফায়ারবেস এআই লজিক এসডিকে কীভাবে শুরু করবেন তা শিখুন।

স্থানান্তরের সাথে সম্পর্কিত সম্ভাব্য ত্রুটি

Firebase AI Logic এর GA সংস্করণ ব্যবহার করার জন্য আপনি যখন মাইগ্রেট করছেন, তখন এই মাইগ্রেশন গাইডে বর্ণিত সমস্ত প্রয়োজনীয় পরিবর্তনগুলি সম্পন্ন না করলে আপনি ত্রুটির সম্মুখীন হতে পারেন।

403 ত্রুটি: Requests to this API firebasevertexai.googleapis.com ... are blocked.

যদি আপনি একটি 403 ত্রুটি পান যেখানে লেখা থাকে যে Requests to this API firebasevertexai.googleapis.com ... are blocked. , তাহলে সাধারণত এর অর্থ হল আপনার Firebase কনফিগারেশন ফাইল বা অবজেক্টের Firebase API কী-এর অ্যালাউলিস্টে আপনি যে পণ্যটি ব্যবহার করার চেষ্টা করছেন তার জন্য প্রয়োজনীয় API নেই।

নিশ্চিত করুন যে আপনার অ্যাপে ব্যবহৃত Firebase API কীতে "API সীমাবদ্ধতা" allowlist-এ অন্তর্ভুক্ত সমস্ত প্রয়োজনীয় API রয়েছে Firebase AI Logic-এর জন্য, আপনার Firebase API কী-এর allowlist-এ কমপক্ষে Firebase AI Logic API থাকা প্রয়োজন। Firebase কনসোলে প্রয়োজনীয় API গুলি সক্রিয় করার সময় এই APIটি স্বয়ংক্রিয়ভাবে আপনার API কী-এর allowlist-এ যুক্ত হওয়া উচিত ছিল।

আপনি Google Cloud কনসোলের APIs & Services > Credentials প্যানেলে আপনার সমস্ত API কী দেখতে পারবেন।


Firebase AI Logic এর সাথে আপনার অভিজ্ঞতা সম্পর্কে মতামত দিন।