Firebase AI Logic এবং এর ক্লায়েন্ট SDK-গুলো পূর্বে " Vertex AI in Firebase " নামে পরিচিত ছিল। আমাদের সম্প্রসারিত পরিষেবা এবং বৈশিষ্ট্যগুলোকে আরও ভালোভাবে তুলে ধরার জন্য (উদাহরণস্বরূপ, আমরা এখন Gemini Developer API সমর্থন করি!), আমরা আমাদের পরিষেবাগুলোর নাম পরিবর্তন করে Firebase AI Logic নামে নতুন করে প্যাকেজ করেছি ।
আপনার মোবাইল বা ওয়েব অ্যাপ থেকে সরাসরি এবং নিরাপদে গুগলের জেনারেটিভ এআই মডেলগুলো অ্যাক্সেস করার জন্য, আপনি এখন একটি ' জেমিনি এপিআই ' প্রোভাইডার বেছে নিতে পারেন — হয় বহু পুরোনো ভার্টেক্স এআই জেমিনি এপিআই অথবা নতুন জেমিনি ডেভেলপার এপিআই । এর মানে হলো, এখন আপনার কাছে জেমিনি ডেভেলপার এপিআই ব্যবহার করার সুযোগ রয়েছে, যা যুক্তিসঙ্গত রেট লিমিট এবং কোটা সহ একটি বিনামূল্যের স্তর প্রদান করে।
Firebase AI Logic SDK-গুলিতে স্থানান্তরের ধাপগুলির সংক্ষিপ্ত বিবরণ
ধাপ ১ : আপনার অ্যাপ এবং ব্যবহারের ক্ষেত্র অনুযায়ী সেরা 'জেমিনি এপিআই' প্রদানকারী বেছে নিন।
ধাপ ২ : প্রয়োজনীয় API-গুলো সক্রিয় করুন।
ধাপ ৩ : আপনার অ্যাপে ব্যবহৃত লাইব্রেরিটি আপডেট করুন।
ধাপ ৪ : আপনার অ্যাপে প্রারম্ভিককরণ আপডেট করুন।
ধাপ ৫ : আপনার ব্যবহৃত ফিচারগুলোর ওপর নির্ভর করে কোড আপডেট করুন।
ধাপ ১ : আপনার অ্যাপের জন্য সেরা 'জেমিনি এপিআই' প্রদানকারী বেছে নিন।
এই মাইগ্রেশনের মাধ্যমে, আপনার কাছে ' জেমিনি এপিআই ' প্রদানকারী বেছে নেওয়ার সুযোগ রয়েছে:
পুরানো " Vertex AI in Firebase " SDK-গুলো শুধুমাত্র Vertex AI Gemini API ব্যবহার করতে পারত।
নতুন Firebase AI Logic SDK-গুলো আপনাকে আপনার মোবাইল বা ওয়েব অ্যাপ থেকে সরাসরি কোন " Gemini API " প্রোভাইডারকে কল করতে চান তা বেছে নেওয়ার সুযোগ দেয় – হয় Gemini Developer API অথবা Vertex AI Gemini API ।
দুটি জেমিনি এপিআই প্রোভাইডার ব্যবহারের মধ্যেকার পার্থক্যগুলো পর্যালোচনা করুন, বিশেষ করে সমর্থিত ফিচার, মূল্য এবং রেট লিমিটের দিক থেকে। উদাহরণস্বরূপ, জেমিনি ডেভেলপার এপিআই Cloud Storage ইউআরএল ব্যবহার করে ফাইল সরবরাহ করা সমর্থন করে না, কিন্তু আপনি যদি এর বিনামূল্যের স্তর এবং যুক্তিসঙ্গত কোটার সুবিধা নিতে চান, তবে এটি একটি ভালো বিকল্প হতে পারে।
ধাপ ২ : প্রয়োজনীয় API গুলো সক্রিয় করুন
আপনার নির্বাচিত ' Gemini API ' প্রোভাইডার ব্যবহার করার জন্য আপনার Firebase প্রোজেক্টে সমস্ত প্রয়োজনীয় API সক্রিয় করা আছে কিনা তা নিশ্চিত করুন।
মনে রাখবেন, আপনি আপনার প্রোজেক্টে একই সময়ে উভয় এপিআই প্রোভাইডারই সক্রিয় রাখতে পারেন।
Firebase কনসোলে সাইন ইন করুন এবং তারপরে আপনার ফায়ারবেস প্রজেক্টটি নির্বাচন করুন।
Firebase কনসোলে, Firebase AI Logic পৃষ্ঠায় যান।
আপনার প্রোজেক্টের জন্য প্রয়োজনীয় এপিআই ও রিসোর্স সেট আপ করতে সাহায্যকারী একটি নির্দেশিত ওয়ার্কফ্লো চালু করতে 'Get started'- এ ক্লিক করুন।
আপনি Firebase AI Logic SDK-গুলোর সাথে যে 'Gemini API' প্রোভাইডারটি ব্যবহার করতে চান, সেটি নির্বাচন করুন। আপনি চাইলে পরবর্তীতে যেকোনো সময় অন্য API প্রোভাইডারটি সেট আপ করে ব্যবহার করতে পারেন।
জেমিনি ডেভেলপার এপিআই — বিলিং ঐচ্ছিক (বিনামূল্যের স্পার্ক প্রাইসিং প্ল্যানে উপলব্ধ)
কনসোলের ওয়ার্কফ্লো আপনার প্রোজেক্টে প্রয়োজনীয় API-গুলো সক্রিয় করবে এবং একটি Gemini API কী তৈরি করবে।
এই জেমিনি এপিআই কী-টি আপনার অ্যাপের কোডবেসে যোগ করবেন না । আরও জানুন।ভার্টেক্স এআই জেমিনি এপিআই — বিলিং আবশ্যক (এর জন্য পে-অ্যাজ-ইউ-গো ব্লেজ প্রাইসিং প্ল্যান প্রয়োজন)
কনসোলের ওয়ার্কফ্লো আপনার প্রোজেক্টে প্রয়োজনীয় এপিআইগুলো সক্রিয় করবে।
আপনার অ্যাপে লাইব্রেরি ও ইনিশিয়ালাইজেশন আপডেট করতে এই মাইগ্রেশন গাইডটি অনুসরণ করুন।
ধাপ ৩ : আপনার অ্যাপে ব্যবহৃত লাইব্রেরিটি আপডেট করুন।
Firebase AI Logic লাইব্রেরি ব্যবহার করার জন্য আপনার অ্যাপের কোডবেস আপডেট করুন।
সুইফট
Xcode-এ, আপনার অ্যাপ প্রজেক্টটি খোলা রেখে, নিম্নলিখিত বিকল্পগুলির মধ্যে যেকোনো একটি ব্যবহার করে আপনার Firebase প্যাকেজটি v11.13.0 বা তার পরবর্তী সংস্করণে আপডেট করুন:
বিকল্প ১ : সমস্ত প্যাকেজ আপডেট করুন: ফাইল > প্যাকেজ > সর্বশেষ প্যাকেজ সংস্করণে আপডেট করুন-এ যান।
বিকল্প ২ : পৃথকভাবে ফায়ারবেস আপডেট করুন: 'প্যাকেজ ডিপেন্ডেন্সি' নামক বিভাগে ফায়ারবেস প্যাকেজটিতে যান। ফায়ারবেস প্যাকেজটির উপর রাইট-ক্লিক করুন এবং তারপর 'আপডেট প্যাকেজ' নির্বাচন করুন।
নিশ্চিত করুন যে Firebase প্যাকেজটিতে এখন v11.13.0 বা তার পরবর্তী সংস্করণ দেখাচ্ছে। যদি তা না দেখায়, তবে যাচাই করুন যে আপনার নির্দিষ্ট করা প্যাকেজ রিকোয়ারমেন্টস (Package Requirements) অনুযায়ী v11.13.0 বা তার পরবর্তী সংস্করণে আপডেট করা যাবে কিনা।
প্রজেক্ট এডিটর-এ আপনার অ্যাপের লক্ষ্য নির্বাচন করুন, এবং তারপর ফ্রেমওয়ার্কস, লাইব্রেরিস, এবং এমবেডেড কন্টেন্ট সেকশনে যান।
নতুন লাইব্রেরিটি যোগ করুন: + বোতামটি নির্বাচন করুন, এবং তারপরে Firebase প্যাকেজ থেকে FirebaseAI যোগ করুন।
আপনার অ্যাপ মাইগ্রেট করা শেষ হলে (এই গাইডের বাকি অংশগুলো দেখুন), পুরোনো লাইব্রেরিটি অবশ্যই মুছে ফেলবেন:
FirebaseVertexAI-Preview নির্বাচন করুন, এবং তারপর — বোতামটি চাপুন।
Kotlin
আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত
<project>/<app-module>/build.gradle.ktsঅথবা<project>/<app-module>/build.gradle), পুরোনো ডিপেন্ডেন্সিগুলো (প্রযোজ্য ক্ষেত্রে) নিম্নলিখিতগুলো দিয়ে প্রতিস্থাপন করুন।মনে রাখবেন যে, পুরোনো ডিপেন্ডেন্সিটি ডিলিট করার আগে আপনার অ্যাপের কোডবেস মাইগ্রেট করা আরও সহজ হতে পারে (এই গাইডের বাকি অংশগুলো দেখুন)।
// BEFORE dependencies {
implementation("com.google.firebase:firebase-vertexai:16.0.0-betaXX")} // AFTER dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.11.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-ai লাইব্রেরির ডিপেন্ডেন্সিটি যোগ করুন এবং Android Studio দ্বারা প্রস্তাবিত সর্বশেষ সংস্করণটি গ্রহণ করুন।
Java
আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত
<project>/<app-module>/build.gradle.ktsঅথবা<project>/<app-module>/build.gradle), পুরোনো ডিপেন্ডেন্সিগুলো (প্রযোজ্য ক্ষেত্রে) নিম্নলিখিতগুলো দিয়ে প্রতিস্থাপন করুন।মনে রাখবেন যে, পুরোনো ডিপেন্ডেন্সিটি ডিলিট করার আগে আপনার অ্যাপের কোডবেস মাইগ্রেট করা আরও সহজ হতে পারে (এই গাইডের বাকি অংশগুলো দেখুন)।
// BEFORE dependencies {
implementation("com.google.firebase:firebase-vertexai:16.0.0-betaXX")} // AFTER dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.11.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-ai লাইব্রেরির ডিপেন্ডেন্সিটি যোগ করুন এবং Android Studio দ্বারা প্রস্তাবিত সর্বশেষ সংস্করণটি গ্রহণ করুন।
Web
npm ব্যবহার করে ওয়েবের জন্য Firebase JS SDK-এর সর্বশেষ সংস্করণটি ডাউনলোড করুন:
npm i firebase@latest
অথবা
yarn add firebase@latest
আপনি যেখানেই লাইব্রেরিটি ইম্পোর্ট করেছেন, সেখানে
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
আপনার ফ্লাটার প্রজেক্ট ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডটি চালিয়ে আপনার
pubspec.yamlফাইলেfirebase_aiপ্যাকেজটি ব্যবহার করার জন্য ফাইলটি আপডেট করুন:flutter pub add firebase_ai
আপনার ফ্লাটার প্রজেক্টটি পুনর্গঠন করুন:
flutter run
আপনার অ্যাপ মাইগ্রেট করা শেষ হলে (এই গাইডের বাকি অংশগুলো দেখুন), পুরোনো প্যাকেজটি ডিলিট করে দিতে ভুলবেন না:
flutter pub remove firebase_vertexai
ঐক্য
" ফায়ারবেসে ভার্টেক্স এআই " থেকে ইউনিটির জন্য সমর্থন পাওয়া যাচ্ছিল না।
ইউনিটির জন্য ফায়ারবেস এআই লজিক এসডিকে (Firebase AI Logic SDK for Unity) দিয়ে কীভাবে কাজ শুরু করবেন তা জেনে নিন।
ধাপ ৪ : আপনার অ্যাপে প্রারম্ভিককরণ আপডেট করুন।
এই পৃষ্ঠায় প্রদানকারী-নির্দিষ্ট বিষয়বস্তু এবং কোড দেখতে আপনার জেমিনি এপিআই প্রদানকারীর উপর ক্লিক করুন। |
আপনার নির্বাচিত এপিআই প্রোভাইডারের জন্য সার্ভিসটি ইনিশিয়ালাইজ করার পদ্ধতি আপডেট করুন এবং একটি GenerativeModel ইনস্ট্যান্স তৈরি করুন।
সুইফট
import FirebaseAILogic
// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Create a `GenerativeModel` instance with a model that supports your use case
let model = ai.generativeModel(modelName: "gemini-3-flash-preview")
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-flash-preview")
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-flash-preview");
// 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-flash-preview" });
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-flash-preview');
ঐক্য
" ফায়ারবেসে ভার্টেক্স এআই " থেকে ইউনিটির জন্য সমর্থন পাওয়া যাচ্ছিল না।
ইউনিটির জন্য ফায়ারবেস এআই লজিক এসডিকে (Firebase AI Logic SDK for Unity) দিয়ে কীভাবে কাজ শুরু করবেন তা জেনে নিন।
মনে রাখবেন যে , আপনি যে সক্ষমতা ব্যবহার করছেন তার উপর নির্ভর করে, আপনি সবসময় একটি GenerativeModel ইনস্ট্যান্স তৈরি নাও করতে পারেন ।
- একটি Imagen মডেল অ্যাক্সেস করতে , একটি
ImagenModelইনস্ট্যান্স তৈরি করুন।
ধাপ ৫ : আপনার ব্যবহৃত ফিচারগুলোর ওপর নির্ভর করে কোড আপডেট করুন।
এই ধাপে আপনার ব্যবহৃত ফিচারগুলোর ওপর নির্ভর করে প্রয়োজনীয় পরিবর্তনগুলো বর্ণনা করা হয়েছে।
আপনি যদি Cloud Storage ইউআরএল ব্যবহার করে থাকেন এবং এই মাইগ্রেশনে জেমিনি ডেভেলপার এপিআই ব্যবহার শুরু করে থাকেন, তাহলে আপনাকে অবশ্যই আপনার মাল্টিমোডাল রিকোয়েস্টগুলো আপডেট করে ফাইলগুলোকে ইনলাইন ডেটা হিসেবে অন্তর্ভুক্ত করতে হবে (অথবা ভিডিওর জন্য ইউটিউব ইউআরএল ব্যবহার করতে হবে)।
" Vertex AI in Firebase " SDK-এর GA সংস্করণগুলিতে বেশ কিছু পরিবর্তন আনা হয়েছে। Firebase AI Logic SDK ব্যবহার করার জন্যও এই একই পরিবর্তনগুলি আবশ্যক। Firebase AI Logic SDK ব্যবহারের জন্য আপনার কোডে কী কী পরিবর্তন করতে হতে পারে, তা জানতে নিচের তালিকাগুলি পর্যালোচনা করুন।
সকল ভাষা এবং প্ল্যাটফর্মের জন্য আবশ্যক
ফাংশন কলিং
আপনি যদি GA-এর আগে এই ফিচারটি প্রয়োগ করে থাকেন, তাহলে আপনার স্কিমা সংজ্ঞায়িত করার পদ্ধতিতে আপডেট আনতে হবে। আপনার ফাংশন ডিক্লারেশনগুলো কীভাবে লিখতে হয় তা জানতে আমরা আপডেট করা ফাংশন কলিং গাইডটি পর্যালোচনা করার পরামর্শ দিচ্ছি।responseSchemaব্যবহার করে কাঠামোগত আউটপুট (যেমন JSON) তৈরি করা
আপনি যদি GA-এর আগে এই ফিচারটি প্রয়োগ করে থাকেন, তাহলে আপনার স্কিমা সংজ্ঞায়িত করার পদ্ধতিতে আপডেট আনতে হবে। 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প্যারামিটারটিকে প্যারামিটার তালিকার শেষে সরানো হয়েছে।
- অন্যান্য প্ল্যাটফর্মের সাথে সামঞ্জস্য রাখতে
Live API
ResponseModalityenum ক্লাসের জন্যUNSPECIFIEDভ্যালুটি সরিয়ে ফেলা হয়েছে। এর পরিবর্তেnullব্যবহার করুন।LiveGenerationConfig.setResponseModalitiesনাম পরিবর্তন করেLiveGenerationConfig.setResponseModalityরাখা হয়েছে।LiveContentResponse.Statusক্লাসটি সরিয়ে দেওয়া হয়েছে এবং এর পরিবর্তে স্ট্যাটাস ফিল্ডগুলোকেLiveContentResponseএর প্রপার্টি হিসেবে নেস্ট করা হয়েছে।LiveContentResponseক্লাসটি সরিয়ে দেওয়া হয়েছে এবং এর পরিবর্তেLiveServerMessageএর সাবক্লাস দেওয়া হয়েছে যা মডেলের রেসপন্সগুলোর সাথে মেলে।LiveModelFutures.connectকেListenableFuture<LiveSessionFutures>ListenableFuture<LiveSession>এর পরিবর্তে ListenableFuture<LiveSessionFutures> রিটার্ন করার জন্য পরিবর্তন করা হয়েছে।
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প্যারামিটারটিকে প্যারামিটার তালিকার শেষে সরানো হয়েছে।
- অন্যান্য প্ল্যাটফর্মের সাথে সামঞ্জস্য রাখতে
Live API
ResponseModalityenum ক্লাসের জন্যUNSPECIFIEDভ্যালুটি সরিয়ে ফেলা হয়েছে। এর পরিবর্তেnullব্যবহার করুন।LiveGenerationConfig.setResponseModalitiesনাম পরিবর্তন করেLiveGenerationConfig.setResponseModalityরাখা হয়েছে।LiveContentResponse.Statusক্লাসটি সরিয়ে দেওয়া হয়েছে এবং এর পরিবর্তে স্ট্যাটাস ফিল্ডগুলোকেLiveContentResponseএর প্রপার্টি হিসেবে নেস্ট করা হয়েছে।LiveContentResponseক্লাসটি সরিয়ে দেওয়া হয়েছে এবং এর পরিবর্তেLiveServerMessageএর সাবক্লাস দেওয়া হয়েছে যা মডেলের রেসপন্সগুলোর সাথে মেলে।LiveModelFutures.connectকেListenableFuture<LiveSessionFutures>ListenableFuture<LiveSession>এর পরিবর্তে ListenableFuture<LiveSessionFutures> রিটার্ন করার জন্য পরিবর্তন করা হয়েছে।
বিভিন্ন জাভা বিল্ডার মেথড পরিবর্তন করা হয়েছে, যাতে এখন থেকে এগুলো
voidএর পরিবর্তে সঠিকভাবে তাদের ক্লাসের ইনস্ট্যান্স রিটার্ন করে।
Web
গণনা
- নিম্নলিখিত এনুমারেশনগুলো থেকে মানগুলো মুছে ফেলা হয়েছে:
HarmCategory,BlockThreshold,HarmProbability,HarmSeverity,BlockReason, এবংFinishReason।
- নিম্নলিখিত এনুমারেশনগুলো থেকে মানগুলো মুছে ফেলা হয়েছে:
ব্লক কারণ
-
PromptFeedbackএরblockReasonঐচ্ছিক করা হয়েছে।
-
শুধুমাত্র তখনই পরিবর্তন প্রয়োজন হবে, যদি আপনি Vertex AI Gemini API- এর পরিবর্তে Gemini Developer API ব্যবহার শুরু করেন :
নিরাপত্তা সেটিংস
- অসমর্থিত
SafetySetting.methodএর ব্যবহারগুলো সরিয়ে ফেলা হয়েছে।
- অসমর্থিত
ইনলাইন ডেটা
- অসমর্থিত
InlineDataPart.videoMetadataএর ব্যবহারগুলো সরিয়ে ফেলা হয়েছে।
- অসমর্থিত
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- এর GA সংস্করণটি ব্যবহার করার জন্য মাইগ্রেট করছেন, তখন এই মাইগ্রেশন গাইডে বর্ণিত সমস্ত প্রয়োজনীয় পরিবর্তনগুলি সম্পন্ন না করে থাকলে আপনি ত্রুটির সম্মুখীন হতে পারেন।
৪০৩ ত্রুটি: Requests to this API firebasevertexai.googleapis.com ... are blocked.
যদি আপনি Requests to this API firebasevertexai.googleapis.com ... are blocked. লেখা একটি 403 এরর পান, তাহলে এর মানে সাধারণত এই যে, আপনার Firebase কনফিগারেশন ফাইল বা অবজেক্টে থাকা Firebase API কী-টির allowlist-এ আপনি যে প্রোডাক্টটি ব্যবহার করার চেষ্টা করছেন তার জন্য প্রয়োজনীয় API-টি নেই।
নিশ্চিত করুন যে আপনার অ্যাপে ব্যবহৃত Firebase API কী- এর "API restrictions" allowlist-এ সমস্ত প্রয়োজনীয় API অন্তর্ভুক্ত আছে। Firebase AI Logic-এর জন্য, আপনার Firebase API কী-এর allowlist-এ ন্যূনতম Firebase AI Logic API-টি থাকা প্রয়োজন। আপনি যখন Firebase কনসোলে প্রয়োজনীয় API-গুলো সক্রিয় করেছিলেন , তখন এই API-টি স্বয়ংক্রিয়ভাবে আপনার API কী-এর allowlist-এ যুক্ত হয়ে যাওয়ার কথা।
আপনি Google Cloud কনসোলের APIs & Services > Credentials প্যানেলে আপনার সমস্ত API কী দেখতে পারেন।
Firebase AI Logic ব্যবহারের অভিজ্ঞতা সম্পর্কে মতামত দিন।