Firebase SDK-তে Vertex AI-এর প্রিভিউ ভার্সন থেকে Firebase AI Logic SDK-তে মাইগ্রেট করুন


Firebase AI Logic ও এর ক্লায়েন্ট SDK-কে আগে "Vertex AI in Firebase" বলা হত। আমাদের বর্ধিত পরিষেবা ও ফিচারকে আরও ভালোভাবে তুলে ধরতে (যেমন, আমরা এখন Gemini Developer API-এ কাজ করি!), আমরা আমাদের পরিষেবার নাম পরিবর্তন করে Firebase AI Logic হিসেবে আবার প্যাকেজ করেছি।

আপনার মোবাইল বা ওয়েব অ্যাপ থেকে সরাসরি Google-এর জেনারেটিভ AI মডেল নিরাপদে অ্যাক্সেস করতে, আপনি এখন কোনও "Gemini API" প্রদানকারী বেছে নিতে পারবেন — দীর্ঘদিন ধরে উপলভ্য Agent Platform Gemini API (formerly Vertex AI) অথবা এখন Gemini Developer API। এর অর্থ হল, এখন আপনার কাছে Gemini Developer API ব্যবহার করার বিকল্প আছে, যা যুক্তিসঙ্গত রেট সীমা ও কোটা সহ কোনও খরচ ছাড়াই টিয়ার প্রদান করে।

Firebase AI Logic SDK-তে মাইগ্রেট করার ধাপগুলির ওভারভিউ

  • ধাপ ১: আপনার অ্যাপ ও ব্যবহারের ক্ষেত্রের জন্য সবচেয়ে ভাল "Gemini API" প্রদানকারী বেছে নিন।

  • ধাপ ২: প্রয়োজনীয় API চালু করুন।

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

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

  • ধাপ ৫: আপনি যেসব ফিচার ব্যবহার করেন তার উপর নির্ভর করে আপনার কোড আপডেট করুন।

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

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

  • পুরনো "Vertex AI in Firebase" SDK শুধুমাত্র Agent Platform Gemini API (formerly Vertex AI) ব্যবহার করতে পারত।

  • নতুন Firebase AI Logic SDK আপনাকে বেছে নিতে দেয় যে কোন "Gemini API" পরিষেবা প্রদানকারীকে আপনি সরাসরি নিজের মোবাইল বা ওয়েব অ্যাপ থেকে কল করতে চান – Gemini Developer API অথবা Agent Platform Gemini API (formerly Vertex AI)।

দুটি Gemini API পরিষেবা প্রদানকারী ব্যবহার করার মধ্যে পার্থক্য ভাল করে দেখে নিন। বিশেষ করে, কোন কোন ফিচার কাজ করে, দাম এবং রেট লিমিট সম্পর্কে জানুন। একটি উদাহরণ হিসেবে, Gemini Developer API Cloud Storage URL ব্যবহার করে ফাইল প্রদান করার সুবিধা দেয় না, কিন্তু আপনি যদি এর ফ্রি টিয়ার ও যুক্তিসঙ্গত কোটার সুবিধা নিতে চান, তাহলে এটি একটি ভাল বিকল্প হতে পারে।

ধাপ ২: প্রয়োজনীয় API চালু করুন

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

মনে রাখবেন, আপনি একই সময়ে আপনার প্রোজেক্টে দুটি API প্রদানকারীকে চালু করতে পারেন।

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

  2. Firebase কনসোলে, AI পরিষেবা > AI লজিক বিকল্পে যান।

  3. আপনার প্রোজেক্টের জন্য প্রয়োজনীয় API ও রিসোর্স সেট-আপ করতে সাহায্য করে এমন নির্দেশিত ওয়ার্কফ্লো লঞ্চ করতে, শুরু করুন বিকল্পে ক্লিক করুন।

  4. আপনি যে "Gemini API" পরিষেবা প্রদানকারীকে Firebase AI Logic SDK-এর সাথে ব্যবহার করতে চান সেটি বেছে নিন। আপনি চাইলে, পরে যেকোনও সময় অন্য API পরিষেবা প্রদানকারী সেট-আপ ও ব্যবহার করতে পারবেন।

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

    • Agent Platform Gemini API (formerly Vertex AI) — বিলিং প্রয়োজন (Blaze-এর পে-অ্যাজ-ইউ-গো প্রাইসিং প্ল্যান প্রয়োজন)
      কনসোলের ওয়ার্কফ্লো আপনার প্রোজেক্টে প্রয়োজনীয় API চালু করবে।

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

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

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

Swift

  1. Xcode-এ, আপনার অ্যাপ প্রজেক্ট খোলা থাকা অবস্থায়, নিম্নলিখিত বিকল্পগুলির মধ্যে একটি ব্যবহার করে আপনার Firebase প্যাকেজকে v12.5.0 বা তার পরের যেকোনও ভার্সনে আপডেট করুন:

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

    • বিকল্প ২: Firebase আলাদা আলাদাভাবে আপডেট করুন: প্যাকেজ ডিপেন্ডেন্সি নামের বিভাগে Firebase প্যাকেজে নেভিগেট করুন। Firebase প্যাকেজে ডানদিকের বোতামে ক্লিক করুন এবং তারপরে প্যাকেজ আপডেট করুন বিকল্প বেছে নিন।

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

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

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

  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. Gradle ফাইলের সাথে আপনার Android প্রোজেক্ট সিঙ্ক করুন।

মনে রাখবেন, আপনি 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. Gradle ফাইলের সাথে আপনার Android প্রোজেক্ট সিঙ্ক করুন।

মনে রাখবেন, আপনি 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 প্রোজেক্ট আবার তৈরি করুন:

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

    flutter pub remove firebase_vertexai

Unity

Unity-এর জন্য সহায়তা "Vertex AI in Firebase" থেকে উপলভ্য ছিল না।

কীভাবে Unity-এর জন্য Firebase AI Logic SDK ব্যবহার শুরু করবেন তা জানুন।

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

এই পৃষ্ঠায় প্রদানকারী-নির্দিষ্ট কন্টেন্ট ও কোড দেখতে আপনার Gemini API প্রদানকারীর আইকনে ক্লিক করুন।

আপনার বেছে নেওয়া 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

"Vertex AI in Firebase" থেকে Unity-এর জন্য সহায়তা উপলভ্য ছিল না।

কীভাবে Unity-এর জন্য Firebase AI Logic SDK ব্যবহার শুরু করবেন তা জানুন।

মনে রাখবেন, আপনি যে ক্ষমতা ব্যবহার করছেন তার উপর নির্ভর করে, আপনি হয়ত সবসময় GenerativeModel ইনস্ট্যান্স তৈরি করতে পারবেন না। Gemini Live API ব্যবহার করে ইনপুট ও আউটপুট স্ট্রিম করতে, LiveModel ইনস্ট্যান্স তৈরি করুন।

ধাপ ৫: আপনি যেসব ফিচার ব্যবহার করেন তার উপর নির্ভর করে আপনার কোড আপডেট করুন

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

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

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

সব ভাষা ও প্ল্যাটফর্মের জন্য প্রয়োজন

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

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

  • টাইম-আউট

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

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

Swift

  • তালিকা

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

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

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

    • নতুন ধরনের ডেটা যাতে ব্যাকওয়ার্ড-কম্প্যাটিবল উপায়ে যোগ করা যায়, সেই জন্য এনুমেরেশন ModelContent.Part-এর পরিবর্তে Part নামের একটি প্রোটোকল ব্যবহার করা হয়েছে। এই পরিবর্তন কন্টেন্টের অংশ বিভাগে আরও বিস্তারিতভাবে বর্ণনা করা হয়েছে।

  • কন্টেন্টের অংশ

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

    • নিচে উল্লেখ করা struct ধরনের ModelContent.Part কেস দিয়ে পরিবর্তন করা হয়েছে যা Part প্রোটোকল মেনে চলে:

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

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

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

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

    • কোনও অক্ষর না পাঠানো হলে সেই পরিস্থিতি দেখানোর জন্য CountTokensResponse-এ totalBillableCharacters প্রপার্টি পরিবর্তন করে ঐচ্ছিক করা হয়েছে।
  • প্রার্থীর উত্তর

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

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

Kotlin

  • তালিকা

    • সাধারণ ক্লাসের সাথে enum ক্লাস ও sealed ক্লাস পরিবর্তন করা হয়েছে। এই পরিবর্তনটি API-কে ব্যাকওয়ার্ড কম্প্যাটিবল উপায়ে আরও নমনীয়ভাবে উন্নত করার অনুমতি দেয়।

    • BlockThreshold এনুমেরেশনের নাম পরিবর্তন করে HarmBlockThreshold করা হয়েছে।

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

  • Blob পদ্ধতি

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

    • method ফিল্ডকে নাল ভ্যালু গ্রহণ করার উপযুক্ত হিসেবে পরিবর্তন করা হয়েছে।
  • সময়সীমা ক্লাস

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

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

    • totalBillableCharacters ফিল্ডকে নাল ভ্যালু গ্রহণ করার উপযুক্ত হিসেবে পরিবর্তন করা হয়েছে।
  • বিলযোগ্য অক্ষরের মোট সংখ্যা

    • কোনও অক্ষর না পাঠানো হলে সেই পরিস্থিতি দেখানোর জন্য CountTokensResponse-এ totalBillableCharacters প্রপার্টি পরিবর্তন করে ঐচ্ছিক করা হয়েছে।
  • মডেল ইনস্ট্যানশিয়েট করা

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

    • এনাম ক্লাস ResponseModality-এর জন্য UNSPECIFIED ভ্যালু সরিয়ে দেওয়া হয়েছে। পরিবর্তে 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 পদ্ধতি

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

    • method ফিল্ডকে নাল ভ্যালু গ্রহণ করার উপযুক্ত হিসেবে পরিবর্তন করা হয়েছে।
  • সময়সীমা ক্লাস

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

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

    • totalBillableCharacters ফিল্ডকে নাল ভ্যালু গ্রহণ করার উপযুক্ত হিসেবে পরিবর্তন করা হয়েছে।
  • বিলযোগ্য অক্ষরের মোট সংখ্যা

    • কোনও অক্ষর না পাঠানো হলে সেই পরিস্থিতি দেখানোর জন্য CountTokensResponse-এ totalBillableCharacters প্রপার্টি পরিবর্তন করে ঐচ্ছিক করা হয়েছে।
  • মডেল ইনস্ট্যানশিয়েট করা

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

    • এনাম ক্লাস ResponseModality-এর জন্য UNSPECIFIED ভ্যালু সরিয়ে দেওয়া হয়েছে। পরিবর্তে null ব্যবহার করুন।

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

    • LiveContentResponse.Status ক্লাস সরিয়ে দেওয়া হয়েছে এবং তার পরিবর্তে LiveContentResponse-এর প্রপার্টি হিসেবে স্ট্যাটাস ফিল্ড নেস্ট করা হয়েছে।

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

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

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

Web

  • তালিকা

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

    • PromptFeedback-এ blockReason পরিবর্তন করে ঐচ্ছিক করা হয়েছে।

আপনি যদি Gemini Developer API (Agent Platform Gemini API (formerly Vertex AI)-এর পরিবর্তে) ব্যবহার করা শুরু করেন, তবেই পরিবর্তন করতে হবে:

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

    • কাজ করে না এমন SafetySetting.method-এর ব্যবহার সরিয়ে দেওয়া হয়েছে।
  • ইনলাইন ডেটা

    • কাজ করে না এমন InlineDataPart.videoMetadata-এর ব্যবহার সরিয়ে দেওয়া হয়েছে।

Dart

  • তালিকা

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

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

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

    • GenerationConfig-এ stopSequences প্যারামিটার পরিবর্তন করে ঐচ্ছিক করা হয়েছে এবং খালি অ্যারের পরিবর্তে ডিফল্ট হিসেবে null সেট করা হয়েছে।
  • উদ্ধৃতি

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

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

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

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

    • মডেল থেকে কাজ করে না এমন এম্বেডিং ফাংশনালিটি (embedContent এবং batchEmbedContents) সরিয়ে দেওয়া হয়েছে।

Unity

Unity-এর জন্য সহায়তা "Vertex AI in Firebase" থেকে উপলভ্য ছিল না।

কীভাবে Unity-এর জন্য Firebase AI Logic SDK ব্যবহার শুরু করবেন তা জানুন।

মাইগ্রেশন সম্পর্কিত সম্ভাব্য সমস্যা

আপনি যেহেতু 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 key-তে যেন সব প্রয়োজনীয় API, key-এর "API বিধিনিষেধ" সাদা তালিকায় অন্তর্ভুক্ত থাকে তা নিশ্চিত করুন। Firebase AI Logic-এর জন্য, আপনার Firebase API কী-তে অন্তত Firebase AI Logic API-কে অনুমোদিত তালিকায় রাখতে হবে। আপনি যখন Firebase কনসোলে প্রয়োজনীয় API চালু করেছিলেন, তখন এই API আপনার API কী-এর অনুমোদিত তালিকায় অটোমেটিক যোগ হয়ে যাওয়া উচিত ছিল।

আপনি Google Cloud কনসোলের API ও পরিষেবা > ক্রেডেনশিয়াল প্যানেলে আপনার সব API কী দেখতে পাবেন।


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


অন্য কিছু উল্লেখ না করা থাকলে, এই পৃষ্ঠার কন্টেন্ট Creative Commons Attribution 4.0 License-এর অধীনে এবং কোডের নমুনাগুলি Apache 2.0 License-এর অধীনে লাইসেন্স প্রাপ্ত। আরও জানতে, Google Developers সাইট নীতি দেখুন। Java হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।

2026-10-09 UTC-তে শেষবার আপডেট করা হয়েছে।