Google AI ক্লায়েন্ট SDK থেকে Firebase AI লজিক SDKগুলিতে স্থানান্তর করুন


সরাসরি মাইগ্রেশন নির্দেশাবলীতে যান

কেন Firebase AI Logic SDK ব্যবহার শুরু করবেন?

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

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

মোবাইল এবং ওয়েব অ্যাপের জন্য নিরাপত্তা বৈশিষ্ট্য

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

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

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

ফায়ারবেস হলো মোবাইল ও ওয়েব অ্যাপ তৈরির জন্য গুগলের একটি প্ল্যাটফর্ম। ফায়ারবেস এআই লজিক ব্যবহার করার অর্থ হলো, আপনার অ্যাপগুলো এমন একটি ইকোসিস্টেমে থাকবে যা ফুল-স্ট্যাক অ্যাপ এবং ডেভেলপারদের চাহিদার ওপর বিশেষভাবে মনোনিবেশ করে। উদাহরণস্বরূপ:

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

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

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

Firebase AI Logic SDK-গুলিতে স্থানান্তরিত করুন

Firebase AI Logic SDK-গুলিতে স্থানান্তরের ধাপগুলির সংক্ষিপ্ত বিবরণ:

  • ধাপ ১ : একটি নতুন বা বিদ্যমান ফায়ারবেস প্রজেক্ট তৈরি করুন এবং আপনার অ্যাপটিকে ফায়ারবেসের সাথে সংযুক্ত করুন।

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

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

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

ধাপ ১ : একটি ফায়ারবেস প্রজেক্ট সেট আপ করুন এবং আপনার অ্যাপটি সংযুক্ত করুন।

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

  2. Firebase কনসোলে, Firebase AI Logic পৃষ্ঠায় যান।

  3. আপনার প্রোজেক্টের জন্য প্রয়োজনীয় এপিআই ও রিসোর্স সেট আপ করতে সাহায্যকারী একটি নির্দেশিত ওয়ার্কফ্লো চালু করতে 'Get started'- এ ক্লিক করুন।

  4. জেমিনি ডেভেলপার এপিআই (Gemini Developer API) নির্বাচন করুন। আপনি চাইলে পরবর্তীতে যেকোনো সময় অন্য এপিআই প্রোভাইডারটি সেট আপ করে ব্যবহার করতে পারেন।

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

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

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

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

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

সুইফট

ফায়ারবেস ডিপেন্ডেন্সিগুলো ইনস্টল ও পরিচালনা করতে সুইফট প্যাকেজ ম্যানেজার ব্যবহার করুন।

ফায়ারবেস এআই লজিক লাইব্রেরিটি জেমিনি মডেলের সাথে ইন্টারঅ্যাক্ট করার জন্য এপিআই-গুলোতে অ্যাক্সেস প্রদান করে। এই লাইব্রেরিটি অ্যাপল প্ল্যাটফর্মের জন্য ফায়ারবেস এসডিকে ( firebase-ios-sdk )-এর অংশ হিসেবে অন্তর্ভুক্ত রয়েছে।

আপনি যদি ইতিমধ্যেই Firebase ব্যবহার করে থাকেন, তাহলে নিশ্চিত করুন যে আপনার Firebase প্যাকেজটি v12.5.0 বা তার পরবর্তী সংস্করণ।

  1. Xcode-এ আপনার অ্যাপ প্রজেক্টটি খুলে, File > Add Package Dependencies -এ যান।

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

    https://github.com/firebase/firebase-ios-sdk
    
  3. সর্বশেষ SDK সংস্করণটি নির্বাচন করুন।

  4. FirebaseAILogic লাইব্রেরিটি নির্বাচন করুন।

কাজ শেষ হলে, Xcode স্বয়ংক্রিয়ভাবে ব্যাকগ্রাউন্ডে আপনার ডিপেন্ডেন্সিগুলো রিজলভ ও ডাউনলোড করা শুরু করবে।

Kotlin

অ্যান্ড্রয়েডের জন্য ফায়ারবেস এআই লজিক এসডিকে ( firebase-ai ) জেমিনি মডেলগুলির সাথে ইন্টারঅ্যাক্ট করার জন্য এপিআইগুলিতে অ্যাক্সেস প্রদান করে।

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

dependencies {
  // ... other androidx dependencies

  // Import the BoM for the Firebase platform
  implementation(platform("com.google.firebase:firebase-bom:34.12.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")
}

Firebase Android BoM ব্যবহার করলে, আপনার অ্যাপ সর্বদা Firebase Android লাইব্রেরিগুলোর সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করবে।

Java

অ্যান্ড্রয়েডের জন্য ফায়ারবেস এআই লজিক এসডিকে ( firebase-ai ) জেমিনি মডেলগুলির সাথে ইন্টারঅ্যাক্ট করার জন্য এপিআইগুলিতে অ্যাক্সেস প্রদান করে।

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

জাভার জন্য আপনাকে দুটি অতিরিক্ত লাইব্রেরি যোগ করতে হবে।

dependencies {
  // ... other androidx dependencies

  // Import the BoM for the Firebase platform
  implementation(platform("com.google.firebase:firebase-bom:34.12.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")

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

ফায়ারবেস এআই লজিক লাইব্রেরিটি জেমিনি মডেলগুলোর সাথে ইন্টারঅ্যাক্ট করার জন্য এপিআই-গুলোতে অ্যাক্সেস প্রদান করে। এই লাইব্রেরিটি ফায়ারবেস জাভাস্ক্রিপ্ট এসডিকে ফর ওয়েব-এর অংশ হিসেবে অন্তর্ভুক্ত রয়েছে।

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

    npm install firebase
    
  2. আপনার অ্যাপে Firebase চালু করুন:

    import { initializeApp } from "firebase/app";
    
    // 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

ফ্লাটারের জন্য ফায়ারবেস এআই লজিক প্লাগইন ( firebase_ai ) জেমিনি মডেলের সাথে ইন্টারঅ্যাক্ট করার জন্য এপিআই-গুলোতে অ্যাক্সেস প্রদান করে।

  1. আপনার ফ্লাটার প্রজেক্ট ডিরেক্টরি থেকে কোর প্লাগইন এবং ফায়ারবেস এআই লজিক প্লাগইন ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:

    flutter pub add firebase_core firebase_ai
    
  2. আপনার lib/main.dart ফাইলে, Firebase core প্লাগইন, Firebase AI Logic প্লাগইন, এবং আপনার পূর্বে তৈরি করা কনফিগারেশন ফাইলটি ইম্পোর্ট করুন:

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

    await Firebase.initializeApp(
      options: DefaultFirebaseOptions.currentPlatform,
    );
    
  4. আপনার ফ্লাটার অ্যাপ্লিকেশনটি পুনর্গঠন করুন:

    flutter run
    

ঐক্য

গুগল এআই ক্লায়েন্ট এসডিকে-গুলোতে ইউনিটির জন্য সাপোর্ট উপলব্ধ ছিল না।

ইউনিটির জন্য ফায়ারবেস এআই লজিক এসডিকে (Firebase AI Logic SDK for Unity) দিয়ে কীভাবে কাজ শুরু করবেন তা জেনে নিন।

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

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

সুইফট

পুরানো লাইব্রেরিটি মুছে ফেলুন:

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

  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

ঐক্য

গুগল এআই ক্লায়েন্ট এসডিকে-গুলোতে ইউনিটির জন্য সাপোর্ট উপলব্ধ ছিল না।

ইউনিটির জন্য ফায়ারবেস এআই লজিক এসডিকে (Firebase AI Logic SDK for Unity) দিয়ে কীভাবে কাজ শুরু করবেন তা জেনে নিন।

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

আপনার ইম্পোর্টগুলো আপডেট করুন, যেভাবে আপনি Gemini Developer API ব্যাকএন্ড সার্ভিসটি ইনিশিয়ালাইজ করেন এবং একটি GenerativeModel ইনস্ট্যান্স তৈরি করেন।

সুইফট

// 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-flash-preview")

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-flash-preview")

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-flash-preview");

// 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-flash-preview" });

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

ঐক্য

গুগল এআই ক্লায়েন্ট এসডিকে-গুলোতে ইউনিটির জন্য সাপোর্ট উপলব্ধ ছিল না।

ইউনিটির জন্য ফায়ারবেস এআই লজিক এসডিকে (Firebase AI Logic SDK for Unity) দিয়ে কীভাবে কাজ শুরু করবেন তা জেনে নিন।

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

ধাপ ৪ : আপনার ব্যবহৃত ফিচারগুলোর ওপর নির্ভর করে কোড আপডেট করুন।

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

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

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

সকল ভাষা এবং প্ল্যাটফর্মের জন্য আবশ্যক

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

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

  • টাইমআউট

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

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

সুইফট

  • গণনা

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

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

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

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

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

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

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

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

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

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

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

    • CountTokensResponse এর totalBillableCharacters প্রপার্টিটিকে ঐচ্ছিক করা হয়েছে, যাতে কোনো ক্যারেক্টার পাঠানো না হলে সেই পরিস্থিতিও প্রতিফলিত হয়।
  • প্রার্থীর প্রতিক্রিয়া

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

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

Kotlin

  • গণনা

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

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

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

  • ব্লব পদ্ধতি

    • যেসব মেথডের নামে Blob ছিল, সেগুলোর নাম পরিবর্তন করে InlineData ব্যবহার করা হয়েছে।
  • নিরাপত্তা সেটিংস

    • ফিল্ড method নালযোগ্য করা হয়েছে।
  • সময়কাল শ্রেণী

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

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

    • totalBillableCharacters ফিল্ডটিকে নাল (null) করা হয়েছে।
  • মোট বিলযোগ্য অক্ষর

    • CountTokensResponse এর totalBillableCharacters প্রপার্টিটিকে ঐচ্ছিক করা হয়েছে, যাতে কোনো ক্যারেক্টার পাঠানো না হলে সেই পরিস্থিতিও প্রতিফলিত হয়।
  • একটি মডেল ইনস্ট্যানশিয়েট করা

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

Java

  • গণনা

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

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

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

  • ব্লব পদ্ধতি

    • যেসব মেথডের নামে Blob ছিল, সেগুলোর নাম পরিবর্তন করে InlineData ব্যবহার করা হয়েছে।
  • নিরাপত্তা সেটিংস

    • ফিল্ড method নালযোগ্য করা হয়েছে।
  • সময়কাল শ্রেণী

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

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

    • totalBillableCharacters ফিল্ডটিকে নাল (null) করা হয়েছে।
  • মোট বিলযোগ্য অক্ষর

    • CountTokensResponse এর totalBillableCharacters প্রপার্টিটিকে ঐচ্ছিক করা হয়েছে, যাতে কোনো ক্যারেক্টার পাঠানো না হলে সেই পরিস্থিতিও প্রতিফলিত হয়।
  • একটি মডেল ইনস্ট্যানশিয়েট করা

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

Web

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

  • গণনা

    • নিম্নলিখিত এনুমারেশনগুলো থেকে মানগুলো মুছে ফেলা হয়েছে: 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 ) সরিয়ে ফেলা হয়েছে।

ঐক্য

গুগল এআই ক্লায়েন্ট এসডিকে-গুলোতে ইউনিটির জন্য সাপোর্ট উপলব্ধ ছিল না।

ইউনিটির জন্য ফায়ারবেস এআই লজিক এসডিকে (Firebase AI Logic SDK for Unity) দিয়ে কীভাবে কাজ শুরু করবেন তা জেনে নিন।


Firebase AI Logic ব্যবহারের অভিজ্ঞতা সম্পর্কে মতামত দিন।