সরাসরি মাইগ্রেশন নির্দেশাবলীতে যান
কেন 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-গুলো যোগ করুন।
ধাপ ৩ : আপনার অ্যাপে ইম্পোর্ট এবং ইনিশিয়ালাইজেশন আপডেট করুন।
ধাপ ৪ : আপনার ব্যবহৃত ফিচারগুলোর ওপর নির্ভর করে কোড আপডেট করুন।
ধাপ ১ : একটি ফায়ারবেস প্রজেক্ট সেট আপ করুন এবং আপনার অ্যাপটি সংযুক্ত করুন।
Firebase কনসোলে সাইন ইন করুন এবং তারপরে আপনার ফায়ারবেস প্রজেক্টটি নির্বাচন করুন।
আপনার যদি আগে থেকে কোনো ফায়ারবেস প্রজেক্ট না থাকে, তাহলে একটি নতুন ফায়ারবেস প্রজেক্ট তৈরি করতে বাটনটিতে ক্লিক করুন এবং তারপর নিচের বিকল্পগুলোর যেকোনো একটি ব্যবহার করুন:
বিকল্প ১ : ওয়ার্কফ্লো-এর প্রথম ধাপে একটি নতুন প্রজেক্টের নাম লিখে একটি সম্পূর্ণ নতুন Firebase প্রজেক্ট তৈরি করুন (এবং এর অধীনস্থ Google Cloud প্রজেক্টটিও স্বয়ংক্রিয়ভাবে তৈরি হয়ে যাবে)।
বিকল্প ২ : একটি বিদ্যমান Google Cloud প্রজেক্টে ফায়ারবেস যোগ করতে (পৃষ্ঠার নীচে থাকা) ‘ Add Firebase to Google Cloud project’-এ ক্লিক করুন। ওয়ার্কফ্লো-এর প্রথম ধাপে, বিদ্যমান প্রজেক্টটির নাম লেখা শুরু করুন এবং তারপরে প্রদর্শিত তালিকা থেকে প্রজেক্টটি নির্বাচন করুন।
আপনি চাইলে, Google AI Studio- তে Gemini API কী তৈরি করার সময় নেপথ্যে তৈরি হওয়া প্রজেক্টটিতে Firebase যোগ করতে পারেন।
একটি Firebase প্রজেক্ট তৈরি করতে স্ক্রিনে দেখানো ওয়ার্কফ্লো-এর বাকি ধাপগুলো সম্পূর্ণ করুন। মনে রাখবেন, অনুরোধ করা হলে Firebase AI Logic SDK-গুলো ব্যবহার করার জন্য আপনাকে Google Analytics সেট আপ করতে হবে না ।
Firebase কনসোলে, Firebase AI Logic পৃষ্ঠায় যান।
আপনার প্রোজেক্টের জন্য প্রয়োজনীয় এপিআই ও রিসোর্স সেট আপ করতে সাহায্যকারী একটি নির্দেশিত ওয়ার্কফ্লো চালু করতে 'Get started'- এ ক্লিক করুন।
জেমিনি ডেভেলপার এপিআই (Gemini Developer API) নির্বাচন করুন। আপনি চাইলে পরবর্তীতে যেকোনো সময় অন্য এপিআই প্রোভাইডারটি সেট আপ করে ব্যবহার করতে পারেন।
কনসোলটি প্রয়োজনীয় API-গুলো সক্রিয় করবে এবং আপনার প্রোজেক্টে একটি নতুন, ডেডিকেটেড Gemini API কী তৈরি করবে।
এই নতুন জেমিনি এপিআই কী-টি আপনার অ্যাপের কোডবেসে যোগ করবেন না । আরও জানুন।কনসোলের ওয়ার্কফ্লোতে নির্দেশ দেওয়া হলে, আপনার অ্যাপটি রেজিস্টার করতে এবং ফায়ারবেসের সাথে সংযুক্ত করতে স্ক্রিনে দেওয়া নির্দেশাবলী অনুসরণ করুন।
আপনার অ্যাপে লাইব্রেরি ও ইনিশিয়ালাইজেশন আপডেট করতে এই মাইগ্রেশন গাইডটি অনুসরণ করুন।
ধাপ ২ : আপনার অ্যাপে Firebase AI Logic SDK যোগ করুন
আপনার Firebase প্রজেক্ট সেট আপ করা হয়ে গেলে এবং আপনার অ্যাপটি Firebase-এর সাথে সংযুক্ত হয়ে গেলে (পূর্ববর্তী ধাপ দেখুন), আপনি এখন আপনার অ্যাপে Firebase AI Logic SDK যোগ করতে পারেন।
সুইফট
ফায়ারবেস ডিপেন্ডেন্সিগুলো ইনস্টল ও পরিচালনা করতে সুইফট প্যাকেজ ম্যানেজার ব্যবহার করুন।
ফায়ারবেস এআই লজিক লাইব্রেরিটি জেমিনি মডেলের সাথে ইন্টারঅ্যাক্ট করার জন্য এপিআই-গুলোতে অ্যাক্সেস প্রদান করে। এই লাইব্রেরিটি অ্যাপল প্ল্যাটফর্মের জন্য ফায়ারবেস এসডিকে ( firebase-ios-sdk )-এর অংশ হিসেবে অন্তর্ভুক্ত রয়েছে।
আপনি যদি ইতিমধ্যেই Firebase ব্যবহার করে থাকেন, তাহলে নিশ্চিত করুন যে আপনার Firebase প্যাকেজটি v12.5.0 বা তার পরবর্তী সংস্করণ।
Xcode-এ আপনার অ্যাপ প্রজেক্টটি খুলে, File > Add Package Dependencies -এ যান।
অনুরোধ করা হলে, Firebase Apple প্ল্যাটফর্ম SDK রিপোজিটরিটি যোগ করুন:
https://github.com/firebase/firebase-ios-sdkসর্বশেষ SDK সংস্করণটি নির্বাচন করুন।
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 লাইব্রেরিগুলোর সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করবে।
আপনি যদি Firebase BoM ব্যবহার না করার সিদ্ধান্ত নেন, তাহলে আপনাকে প্রতিটি Firebase লাইব্রেরির ভার্সন তার ডিপেন্ডেন্সি লাইনে উল্লেখ করতে হবে।
মনে রাখবেন, আপনি যদি আপনার অ্যাপে একাধিক Firebase লাইব্রেরি ব্যবহার করেন, তাহলে আমরা লাইব্রেরির ভার্সনগুলো পরিচালনা করার জন্য BoM অফ মেটেরিয়ালস) ব্যবহার করার জন্য দৃঢ়ভাবে সুপারিশ করি, যা সব ভার্সনের সামঞ্জস্যতা নিশ্চিত করে।
dependencies { // Add the dependency for the Firebase AI Logic library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-ai:17.11.0") }
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 লাইব্রেরিগুলোর সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করবে।
আপনি যদি Firebase BoM ব্যবহার না করার সিদ্ধান্ত নেন, তাহলে আপনাকে প্রতিটি Firebase লাইব্রেরির ভার্সন তার ডিপেন্ডেন্সি লাইনে উল্লেখ করতে হবে।
মনে রাখবেন, আপনি যদি আপনার অ্যাপে একাধিক Firebase লাইব্রেরি ব্যবহার করেন, তাহলে আমরা লাইব্রেরির ভার্সনগুলো পরিচালনা করার জন্য BoM অফ মেটেরিয়ালস) ব্যবহার করার জন্য দৃঢ়ভাবে সুপারিশ করি, যা সব ভার্সনের সামঞ্জস্যতা নিশ্চিত করে।
dependencies { // Add the dependency for the Firebase AI Logic library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-ai:17.11.0") }
Web
ফায়ারবেস এআই লজিক লাইব্রেরিটি জেমিনি মডেলগুলোর সাথে ইন্টারঅ্যাক্ট করার জন্য এপিআই-গুলোতে অ্যাক্সেস প্রদান করে। এই লাইব্রেরিটি ফায়ারবেস জাভাস্ক্রিপ্ট এসডিকে ফর ওয়েব-এর অংশ হিসেবে অন্তর্ভুক্ত রয়েছে।
npm ব্যবহার করে Firebase JS SDK for Web ইনস্টল করুন:
npm install firebaseআপনার অ্যাপে 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 ) জেমিনি মডেলের সাথে ইন্টারঅ্যাক্ট করার জন্য এপিআই-গুলোতে অ্যাক্সেস প্রদান করে।
আপনার ফ্লাটার প্রজেক্ট ডিরেক্টরি থেকে কোর প্লাগইন এবং ফায়ারবেস এআই লজিক প্লাগইন ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:
flutter pub add firebase_core firebase_aiআপনার
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';এছাড়াও আপনার
lib/main.dartফাইলে, কনফিগারেশন ফাইল দ্বারা এক্সপোর্ট করাDefaultFirebaseOptionsঅবজেক্টটি ব্যবহার করে Firebase ইনিশিয়ালাইজ করুন:await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, );আপনার ফ্লাটার অ্যাপ্লিকেশনটি পুনর্গঠন করুন:
flutter run
ঐক্য
গুগল এআই ক্লায়েন্ট এসডিকে-গুলোতে ইউনিটির জন্য সাপোর্ট উপলব্ধ ছিল না।
ইউনিটির জন্য ফায়ারবেস এআই লজিক এসডিকে (Firebase AI Logic SDK for Unity) দিয়ে কীভাবে কাজ শুরু করবেন তা জেনে নিন।
আপনার অ্যাপ থেকে পুরানো SDK সরিয়ে ফেলুন
আপনার অ্যাপ মাইগ্রেট করা শেষ হলে (এই গাইডের বাকি অংশগুলো দেখুন), পুরোনো লাইব্রেরিটি মুছে ফেলতে ভুলবেন না।
সুইফট
পুরানো লাইব্রেরিটি মুছে ফেলুন:
Xcode-এ, আপনার অ্যাপ প্রজেক্টটি খোলা অবস্থায়, Packages Dependencies প্যানে যান।
প্যাকেজ নির্ভরতার তালিকা থেকে
generative-ai-swiftপ্যাকেজটি নির্বাচন করুন।তালিকার নিচের
-বোতামটি ক্লিক করুন এবং নিশ্চিত করতে রিমুভ-এ ক্লিক করুন।
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 ইনস্ট্যান্স তৈরি করেন।
সুইফট
// BEFOREimport 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
// BEFOREimport 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
// BEFOREimport 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
// BEFOREimport { 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
// BEFOREimport '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।নিম্নলিখিত এনুমারেশনগুলি (এখন
structs) থেকেunknownএবংunspecifiedকেসগুলি সরানো হয়েছে:HarmCategory,HarmBlockThreshold,HarmProbability,BlockReason, এবংFinishReason।পূর্ববর্তী সংস্করণের সাথে সামঞ্জস্যপূর্ণভাবে নতুন টাইপ যুক্ত করার সুযোগ দিতে,
ModelContent.PartএনুমারেশনটিকেPartনামক একটি প্রোটোকল দ্বারা প্রতিস্থাপন করা হয়েছে। এই পরিবর্তনটি Content parts বিভাগে আরও বিস্তারিতভাবে বর্ণনা করা হয়েছে।
বিষয়বস্তুর অংশ
মাঝেমধ্যে ঘটা কম্পাইলার ত্রুটি এড়ানোর জন্য
ThrowingPartsRepresentableপ্রোটোকলটি সরিয়ে দেওয়া হয়েছে এবংModelContentএর ইনিশিয়ালাইজারগুলোকে সরল করা হয়েছে। যেসব ইমেজ সঠিকভাবে এনকোড হয় না, সেগুলোgenerateContentএ ব্যবহার করার সময় এখনও ত্রুটি দেখাবে।Partপ্রোটোকল মেনেModelContent.Partকেসগুলোকে নিম্নলিখিতstructটাইপগুলো দ্বারা প্রতিস্থাপন করা হয়েছে:-
.texttoTextPart -
.datatoInlineDataPart -
.fileDataথেকেFileDataPart -
.functionCallথেকেFunctionCallPart -
.functionResponsetoFunctionResponsePart
-
ক্ষতির বিভাগ
-
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রাখা হয়েছে এবংstaticdataফাংশনের নাম পরিবর্তন করে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 ব্যবহারের অভিজ্ঞতা সম্পর্কে মতামত দিন।