Google AI ক্লায়েন্ট SDK থেকে Firebase AI Logic SDK-তে মাইগ্রেট করা


সরাসরি মাইগ্রেশন সংক্রান্ত নির্দেশাবলী দেখুন

Firebase AI Logic SDK ব্যবহার করার জন্য কেন মাইগ্রেট করতে হবে?

আপনি হয়ত মোবাইল বা ওয়েব ক্লায়েন্ট SDK-এর বিকল্প সেট ব্যবহার করে দেখেছেন যা আপনাকে Gemini Developer API-এ অ্যাক্সেস দিয়েছে।

সেইসব ক্লায়েন্ট SDK, Firebase ইকোসিস্টেমে ইন্টিগ্রেট করা হয়নি, যা মোবাইল ও ওয়েব অ্যাপের জন্য গুরুত্বপূর্ণ পরিষেবা প্রদান করে। Firebase AI Logic ক্লায়েন্ট SDK-এর জন্য এগুলি এখন আর ব্যবহার করা হয় না, যা আপনাকে Gemini Developer API-এ অ্যাক্সেস দিতে পারে।

মোবাইল ও ওয়েব অ্যাপের জন্য নিরাপত্তা ফিচার

মোবাইল ও ওয়েব অ্যাপের ক্ষেত্রে, নিরাপত্তা অত্যন্ত গুরুত্বপূর্ণ এবং এর জন্য বিশেষ বিবেচনা প্রয়োজন কারণ আপনার কোড – যার মধ্যে Gemini API-এ করা কল অন্তর্ভুক্ত – সুরক্ষিত নয় এমন পরিবেশে রান করে। অননুমোদিত ক্লায়েন্টদের দ্বারা API-এর অপব্যবহার থেকে রক্ষা করতে, আপনি Firebase App Check ব্যবহার করতে পারেন।

আপনি Firebase App Check-এর সাথে Firebase AI Logic ব্যবহার করলে, আপনার Gemini Developer API-এর জন্য Gemini API কী কখনও সরাসরি আপনার মোবাইল বা ওয়েব অ্যাপের কোডবেসে যোগ করেন না। এর পরিবর্তে, Gemini API কী সার্ভারে থাকে এবং ক্ষতিকর অ্যাক্টরদের কাছে এটি এক্সপোজ করা হয় না।

মোবাইল ও ওয়েব অ্যাপের জন্য তৈরি ইকোসিস্টেম

Firebase হল মোবাইল ও ওয়েব অ্যাপ ডেভেলপ করার জন্য Google-এর প্ল্যাটফর্ম। Firebase AI Logicব্যবহার করা মানে আপনার অ্যাপ এমন একটি ইকোসিস্টেমে আছে যা ফুল-স্ট্যাক অ্যাপ ও ডেভেলপারদের প্রয়োজন পূরণের উপর ফোকাস করে। যেমন:

  • Firebase Remote Config ব্যবহার করে নতুন অ্যাপ ভার্সন রিলিজ না করেই আপনার অ্যাপে (যেমন, মডেলের নাম ও ভার্সন) ডায়নামিক রান-টাইম কনফিগারেশন সেট করুন বা ভ্যালু অদল-বদল করুন।

  • আপনার মাল্টিমোডাল অনুরোধে (আপনি Agent Platform Gemini API (formerly Vertex AI) ব্যবহার করলে) বড় ফাইল যোগ করতে Cloud Storage for Firebase ব্যবহার করুন। Cloud Storage ক্লায়েন্ট SDK আপনাকে ফাইল আপলোড ও ডাউনলোড (এমনকি খারাপ নেটওয়ার্ক কানেকশন থাকলেও) ম্যানেজ করতে সাহায্য করে এবং আপনার এন্ড-ইউজারের ডেটার জন্য আরও বেশি নিরাপত্তা প্রদান করে। আমাদের সমাধানের নির্দেশিকা থেকে Cloud Storage for Firebase ব্যবহার করা সম্পর্কে আরও জানুন।

  • মোবাইল ও ওয়েব অ্যাপের জন্য তৈরি করা ডেটাবেস SDK ব্যবহার করে স্ট্রাকচার্ড ডেটা ম্যানেজ করুন (যেমন Cloud Firestore)।

Firebase AI Logic SDK-তে মাইগ্রেট করুন

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

  • ধাপ ১: নতুন বা আগে থেকে থাকা Firebase প্রোজেক্ট সেট-আপ করুন এবং Firebase-এর সাথে আপনার অ্যাপ কানেক্ট করুন।

  • ধাপ ২: আপনার অ্যাপে Firebase AI Logic SDK যোগ করুন।

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

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

ধাপ ১: Firebase প্রোজেক্ট সেট-আপ করুন এবং আপনার অ্যাপ কানেক্ট করুন

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

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

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

  4. Gemini Developer API বিকল্প বেছে নিন। আপনি চাইলে, পরে যেকোনও সময় অন্য API প্রদানকারীকে সেট-আপ করে ব্যবহার করতে পারবেন।

    কনসোল প্রয়োজনীয় API চালু করবে এবং আপনার প্রোজেক্টে একটি নতুন, ডেডিকেটেড Gemini API কী তৈরি করবে।
    আপনার অ্যাপের কোডবেসে এই নতুন Gemini API কী যোগ করবেন না। আরও জানুন।

  5. কনসোলের ওয়ার্কফ্লোতে প্রম্পট করা হলে, আপনার অ্যাপ রেজিস্টার করতে এবং Firebase-এর সাথে কানেক্ট করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করুন।

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

ধাপ ২: আপনার অ্যাপে Firebase AI Logic SDK যোগ করুন

Firebase প্রোজেক্ট সেট-আপ করা এবং Firebase-এর সাথে অ্যাপ কানেক্ট করা হয়ে গেলে (আগের ধাপ দেখুন), আপনি এখন অ্যাপে Firebase AI Logic SDK যোগ করতে পারবেন।

Swift

Firebase ডিপেন্ডেন্সি ইনস্টল ও ম্যানেজ করতে Swift Package Manager ব্যবহার করুন। প্রয়োজন হলে, ইনস্টলেশনের অন্যান্য বিকল্প সম্পর্কে জানুন।

Firebase AI Logic লাইব্রেরি, Gemini মডেলের সাথে ইন্টার‍্যাক্ট করার জন্য API-তে অ্যাক্সেস প্রদান করে। Apple প্ল্যাটফর্মের (firebase-ios-sdk) জন্য Firebase SDK-এর অংশ হিসেবে লাইব্রেরি অন্তর্ভুক্ত করা হয়েছে।

আপনি আগে থেকেই Firebase ব্যবহার করলে, আপনার Firebase প্যাকেজ v12.5.0 বা তার পরের যেকোনও ভার্সন আছে কিনা তা নিশ্চিত করুন।

  1. Xcode-এ, আপনার অ্যাপ প্রোজেক্ট খোলা থাকা অবস্থায়, ফাইল > প্যাকেজ ডিপেন্ডেন্সি যোগ করুন বিকল্পে নেভিগেট করুন।

  2. প্রম্পট করা হলে, Firebase Apple প্ল্যাটফর্ম SDK রিপোজিটরি যোগ করুন:

    https://github.com/firebase/firebase-ios-sdk
    
  3. লেটেস্ট SDK ভার্সন বেছে নিন।

  4. FirebaseAILogic লাইব্রেরি ও FirebaseAppCheck লাইব্রেরি বেছে নিন।

সম্পূর্ণ হয়ে গেলে, Xcode অটোমেটিক আপনার ডিপেন্ডেন্সি সমাধান করা ও ডাউনলোড করা শুরু করবে।

Kotlin

Firebase AI Logic Android-এর জন্য SDK (firebase-ai) Gemini মডেলের সাথে ইন্টার‍্যাক্ট করার জন্য API-তে অ্যাক্সেস প্রদান করে।

আপনার মডিউল (অ্যাপ-লেভেল) Gradle ফাইলে (যেমন <project>/<app-module>/build.gradle.kts), Android-এর জন্য Firebase AI Logic এবং App Check লাইব্রেরির ডিপেন্ডেন্সি যোগ করুন। লাইব্রেরি ভার্সনিং কন্ট্রোল করতে Firebase Android BoM ব্যবহার করার সাজেশন দিই।

dependencies {
  // ... other androidx dependencies

  // Import the BoM for the Firebase platform
  implementation(platform("com.google.firebase:firebase-bom:35.0.0"))

  // Add the dependencies for the Firebase AI Logic and App Check libraries
  // When using the BoM, you don't specify versions in Firebase library dependencies
  implementation("com.google.firebase:firebase-ai")
  implementation("com.google.firebase:firebase-appcheck-debug")
}

Firebase Android BoM ব্যবহার করার মাধ্যমে, আপনার অ্যাপ সবসময় Firebase Android লাইব্রেরির মানানসই ভার্সন ব্যবহার করবে।

Java

Firebase AI Logic Android-এর জন্য SDK (firebase-ai) Gemini মডেলের সাথে ইন্টার‍্যাক্ট করার জন্য API-তে অ্যাক্সেস প্রদান করে।

আপনার মডিউল (অ্যাপ-লেভেল) Gradle ফাইলে (যেমন <project>/<app-module>/build.gradle.kts), Android-এর জন্য Firebase AI Logic এবং App Check লাইব্রেরির ডিপেন্ডেন্সি যোগ করুন। লাইব্রেরি ভার্সনিং কন্ট্রোল করতে Firebase Android BoM ব্যবহার করার সাজেশন দিই।

Java-এর জন্য, আপনাকে আরও দুটি লাইব্রেরি যোগ করতে হবে।

dependencies {
  // ... other androidx dependencies

  // Import the BoM for the Firebase platform
  implementation(platform("com.google.firebase:firebase-bom:35.0.0"))

  // Add the dependencies for the Firebase AI Logic and App Check libraries
  // When using the BoM, you don't specify versions in Firebase library dependencies
  implementation("com.google.firebase:firebase-ai")
  implementation("com.google.firebase:firebase-appcheck-debug")

  // 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 লাইব্রেরির মানানসই ভার্সন ব্যবহার করবে।

Web

Firebase AI Logic লাইব্রেরি, Gemini মডেলের সাথে ইন্টার‍্যাক্ট করার জন্য API-তে অ্যাক্সেস প্রদান করে। এই লাইব্রেরি ওয়েবের জন্য Firebase JavaScript SDK-এর অংশ হিসেবে অন্তর্ভুক্ত করা হয়েছে।

  1. npm ব্যবহার করে ওয়েবের জন্য Firebase JS SDK ইনস্টল করুন:

    npm install firebase
    
  2. আপনার অ্যাপে Firebase ইনিশিয়ালাইজ করুন:

    import { initializeApp } from "firebase/app";
    import { initializeAppCheck, DebugProvider } from "firebase/app-check";
    
    // 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);
    

Dart

Flutter-এর জন্য Firebase AI Logic প্লাগ-ইন (firebase_ai) Gemini মডেলের সাথে ইন্টার‍্যাক্ট করার জন্য API-তে অ্যাক্সেস প্রদান করে।

  1. আপনার Flutter প্রোজেক্ট ডিরেক্টরি থেকে, Firebase AI Logic এবং App Check প্লাগ-ইন ইনস্টল করতে নিম্নলিখিত কমান্ড রান করুন:

    flutter pub add firebase_ai firebase_app_check
    
  2. আপনার lib/main.dart ফাইলে, Firebase AI Logic এবং App Check প্লাগ-ইন ইমপোর্ট করুন:

    import 'package:firebase_core/firebase_core.dart';
    import 'package:firebase_ai/firebase_ai.dart';
    import 'package:firebase_app_check/firebase_app_check.dart';
    import 'firebase_options.dart';
    
  3. এছাড়াও, আপনার lib/main.dart ফাইলে, কনফিগারেশন ফাইল থেকে এক্সপোর্ট করা DefaultFirebaseOptions অবজেক্ট ব্যবহার করে Firebase ইনিশিয়ালাইজ করেছেন কিনা তা নিশ্চিত করুন:

    await Firebase.initializeApp(
      options: DefaultFirebaseOptions.currentPlatform,
    );
    
  4. আপনার Flutter অ্যাপ্লিকেশন আবার তৈরি করুন:

    flutter run
    

Unity

Unity-এর জন্য Google AI ক্লায়েন্ট SDK-তে সহায়তা উপলভ্য ছিল না।

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

আপনার অ্যাপ থেকে পুরনো SDK সরিয়ে দিন

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

Swift

পুরনো লাইব্রেরি সরিয়ে দিন:

  1. Xcode-এ, আপনার অ্যাপ প্রজেক্ট খোলা থাকা অবস্থায়, প্যাকেজ ডিপেন্ডেন্সি প্যানেলে নেভিগেট করুন।

  2. প্যাকেজ ডিপেন্ডেন্সি তালিকা থেকে generative-ai-swift প্যাকেজ বেছে নিন।

  3. তালিকার নিচে থাকা - বোতামে ক্লিক করুন এবং কনফার্ম করতে সরিয়ে দিন বিকল্পে ক্লিক করুন।

Kotlin

dependencies {
    implementation("com.google.ai.client.generativeai:generativeai:VERSION")
}

Java

dependencies {
    implementation("com.google.ai.client.generativeai:generativeai:VERSION")
}

Web

// BEFORE
import { initializeApp } from "firebase/app";
import { GoogleGenerativeAI } from "@google/generative-ai";

Dart

পুরনো প্যাকেজটি মুছে দিন:
flutter pub remove google_generative_ai

Unity

Unity-এর জন্য সহায়তা Google AI ক্লায়েন্ট SDK-তে উপলভ্য ছিল না।

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

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

আপনার ইমপোর্ট এবং কীভাবে Gemini Developer API ব্যাকএন্ড পরিষেবা চালু করবেন এবং GenerativeModel ইনস্ট্যান্স তৈরি করবেন তা আপডেট করুন।

Swift

// BEFORE
import GoogleGenerativeAI

let model = GenerativeModel(name: "MODEL_NAME", apiKey: APIKey.default)

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

// BEFORE
import com.google.ai.client.generativeai.Chat
import com.google.ai.client.generativeai.type.Content
import com.google.ai.client.generativeai.java.GenerativeModuleFutures

...

val generativeModel = GenerativeModel(modelName = "MODEL_NAME",
  // Access your API key as a Build Configuration variable
  apiKey = BuildConfig.apiKey
)

// AFTER
import com.google.firebase.Firebase
import com.google.firebase.ai.ai
import com.google.firebase.ai.type.GenerativeBackend

...

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

// BEFORE
import com.google.ai.client.generativeai.Chat;
import com.google.ai.client.generativeai.type.Content;
import com.google.ai.client.generativeai.java.GenerativeModuleFutures;

...

GenerativeModel gm = new GenerativeModel("MODEL_NAME",
  // Access your API key as a Build Configuration variable
  BuildConfig.apiKey
);

GenerativeModelFutures model = GenerativeModelFutures.from(gm);

// AFTER
import com.google.firebase.ai.FirebaseAI;
import com.google.firebase.ai.GenerativeModel;
import com.google.firebase.ai.java.GenerativeModelFutures;
import com.google.firebase.ai.type.GenerativeBackend;

...

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

// BEFORE
import { GoogleGenerativeAI } from "@google/generative-ai";

// Fetch your API_KEY and access your API
const API_KEY = "...";
const genAI = new GoogleGenerativeAI(API_KEY);

...

const model = genAI.getGenerativeModel({ model: "MODEL_NAME"});

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

// BEFORE
import 'package:google_generative_ai/google_generative_ai.dart';

final apiKey = Platform.environment['API_KEY'];
if (apiKey == null) {
print('No \$API_KEY environment variable');
exit(1);
}

final model = GenerativeModel(model: 'MODEL_NAME', apiKey: apiKey);

// AFTER
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-এর জন্য সহায়তা Google AI ক্লায়েন্ট SDK-তে উপলভ্য ছিল না।

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

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

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

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

  • Firebase AI Logic ক্লায়েন্ট SDK-তে কোড এক্সিকিউশন কাজ করে না। আপনি এই ফিচার ব্যবহার করলে, আপনার অ্যাপে এটি অ্যাকোমোডেট করতে ভুলবেন না।

  • Firebase AI Logic ক্লায়েন্ট SDK-তে মাইগ্রেট করার জন্য আপনার কোডে কোনও পরিবর্তন করতে হবে কিনা তা বুঝতে নিম্নলিখিত তালিকা পর্যালোচনা করুন।

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

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

  • responseSchema ব্যবহার করে স্ট্রাকচার্ড আউটপুট (যেমন JSON) জেনারেট করা
    আপনি এই ফিচার প্রয়োগ করে থাকলে, আপনাকে নিজের স্কিমা কীভাবে ডিফাইন করবেন সেই বিষয়ে আপডেট করতে হবে। 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 প্যারামিটারটি সরানো হয়েছে।

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 প্যারামিটারটি সরানো হয়েছে।

Web

মনে রাখবেন, Google AI ক্লায়েন্ট SDK for JavaScript-এ Firebase AI Logic ক্লায়েন্ট SDK-এর ব্রাঞ্চ তৈরি হওয়ার পর থেকে অনেক পরিবর্তন করা হয়েছে। আপনি Firebase AI Logic ক্লায়েন্ট SDK-তে মাইগ্রেট করার সময় আপনাকে নিম্নলিখিত সম্ভাব্য পরিবর্তনগুলি বিবেচনা করতে হতে পারে।

  • তালিকা

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

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

    • এই ফিচারের সমস্ত ব্যবহার সরিয়ে দেওয়া হয়েছে, কারণ এটি এখনও Firebase AI Logic SDK-তে কাজ করে না।
  • সমস্যা

    • GoogleGenerativeAIError-এর সব ব্যবহার সরিয়ে দেওয়া হয়েছে এবং ঐচ্ছিকভাবে AIError-এ সরানো হয়েছে।

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-এর জন্য সহায়তা Google AI ক্লায়েন্ট SDK-তে উপলভ্য ছিল না।

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


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


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

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