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


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

ফায়ারবেস এআই লজিক এসডিকে ব্যবহার করার জন্য কেন মাইগ্রেট করবেন?

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

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

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

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

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

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

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

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

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

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

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

ফায়ারবেস এআই লজিক এসডিকেতে স্থানান্তরের পদক্ষেপগুলির সংক্ষিপ্তসার:

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

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

  • ধাপ ৩ : আপনার অ্যাপে আপনার আমদানি এবং আরম্ভকরণ আপডেট করুন।

  • ধাপ ৪ : আপনার ব্যবহৃত বৈশিষ্ট্যগুলির উপর নির্ভর করে আপনার কোড আপডেট করুন।

ধাপ ১ : একটি Firebase প্রকল্প সেট আপ করুন এবং আপনার অ্যাপটি সংযুক্ত করুন

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

  2. Firebase কনসোলে, ফায়ারবেস এআই লজিক পৃষ্ঠায় যান।

  3. আপনার প্রকল্পের জন্য প্রয়োজনীয় API এবং সংস্থান সেট আপ করতে সাহায্য করার জন্য একটি নির্দেশিত কর্মপ্রবাহ চালু করতে "শুরু করুন" এ ক্লিক করুন।

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

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

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

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

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

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

সুইফট

ফায়ারবেস নির্ভরতা ইনস্টল এবং পরিচালনা করতে সুইফট প্যাকেজ ম্যানেজার ব্যবহার করুন।

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

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

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

  2. অনুরোধ করা হলে, Firebase Apple platforms SDK সংগ্রহস্থল যোগ করুন:

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

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

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

Kotlin

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

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

dependencies {
  // ... other androidx dependencies

  // Import the BoM for the Firebase platform
  implementation(platform("com.google.firebase:firebase-bom:34.4.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 ) জেমিনি এবং ইমেজেন মডেলের সাথে ইন্টারঅ্যাক্ট করার জন্য API গুলিতে অ্যাক্সেস প্রদান করে।

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

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

dependencies {
  // ... other androidx dependencies

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

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

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

    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

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

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

    flutter pub add firebase_core firebase_ai
    
  2. আপনার lib/main.dart ফাইলে, Firebase কোর প্লাগইন, 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 অ্যাপ্লিকেশনটি পুনর্নির্মাণ করুন:

    flutter run
    

ঐক্য

গুগল এআই ক্লায়েন্ট এসডিকে থেকে ইউনিটির জন্য সমর্থন পাওয়া যায়নি।

ইউনিটির জন্য ফায়ারবেস এআই লজিক এসডিকে কীভাবে শুরু করবেন তা শিখুন।

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

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

সুইফট

পুরাতন লাইব্রেরিটি সরান:

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

  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

ঐক্য

গুগল এআই ক্লায়েন্ট এসডিকে থেকে ইউনিটির জন্য সমর্থন পাওয়া যায়নি।

ইউনিটির জন্য ফায়ারবেস এআই লজিক এসডিকে কীভাবে শুরু করবেন তা শিখুন।

ধাপ ৩ : আপনার অ্যাপে আপনার আমদানি এবং আরম্ভকরণ আপডেট করুন

আপনার আমদানিগুলি এবং আপনি কীভাবে জেমিনি ডেভেলপার 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-2.5-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-2.5-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-2.5-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-2.5-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-2.5-flash');

ঐক্য

গুগল এআই ক্লায়েন্ট এসডিকে থেকে ইউনিটির জন্য সমর্থন পাওয়া যায়নি।

ইউনিটির জন্য ফায়ারবেস এআই লজিক এসডিকে কীভাবে শুরু করবেন তা শিখুন।

মনে রাখবেন যে আপনি যে ক্ষমতা ব্যবহার করছেন তার উপর নির্ভর করে, আপনি সর্বদা একটি GenerativeModel ইনস্ট্যান্স তৈরি নাও করতে পারেন

ধাপ ৪ : আপনার ব্যবহৃত বৈশিষ্ট্যের উপর নির্ভর করে কোড আপডেট করুন

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

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

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

সকল ভাষা এবং প্ল্যাটফর্মের জন্য প্রয়োজনীয়

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

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

  • সময়সীমা শেষ

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

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

সুইফট

  • গণনা

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

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

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

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

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

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

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

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

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

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

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

    • CountTokensResponsetotalBillableCharacters প্রপার্টি পরিবর্তন করে ঐচ্ছিক করা হয়েছে যাতে কোনও অক্ষর পাঠানো না হওয়া পরিস্থিতি প্রতিফলিত হয়।
  • প্রার্থীর প্রতিক্রিয়া

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

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

Kotlin

  • গণনা

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

    • BlockThreshold গণনার নাম পরিবর্তন করে HarmBlockThreshold রাখা হয়েছে।

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

  • ব্লব পদ্ধতি

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

    • ক্ষেত্র method বাতিলযোগ্য করে পরিবর্তন করা হয়েছে।
  • ক্লাসের সময়কাল

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

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

    • totalBillableCharacters ফিল্ডটিকে nullable এ পরিবর্তন করা হয়েছে।
  • মোট বিলযোগ্য অক্ষর

    • CountTokensResponsetotalBillableCharacters প্রপার্টি পরিবর্তন করে ঐচ্ছিক করা হয়েছে যাতে কোনও অক্ষর পাঠানো না হওয়া পরিস্থিতি প্রতিফলিত হয়।
  • একটি মডেল তৈরি করা হচ্ছে

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

Java

  • গণনা

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

    • BlockThreshold গণনার নাম পরিবর্তন করে HarmBlockThreshold রাখা হয়েছে।

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

  • ব্লব পদ্ধতি

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

    • ক্ষেত্র method বাতিলযোগ্য করে পরিবর্তন করা হয়েছে।
  • ক্লাসের সময়কাল

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

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

    • totalBillableCharacters ফিল্ডটিকে nullable এ পরিবর্তন করা হয়েছে।
  • মোট বিলযোগ্য অক্ষর

    • CountTokensResponsetotalBillableCharacters প্রপার্টি পরিবর্তন করে ঐচ্ছিক করা হয়েছে যাতে কোনও অক্ষর পাঠানো না হওয়া পরিস্থিতি প্রতিফলিত হয়।
  • একটি মডেল তৈরি করা হচ্ছে

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

Web

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

  • গণনা

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

    • PromptFeedbackblockReason ঐচ্ছিক করা হয়েছে।
  • অনুসন্ধান গ্রাউন্ডিং

    • এই বৈশিষ্ট্যটির সমস্ত ব্যবহার সরিয়ে দেওয়া হয়েছে, কারণ এটি এখনও Firebase AI Logic SDK-তে সমর্থিত নয়।
  • ত্রুটি

    • GoogleGenerativeAIError এর সমস্ত ব্যবহার সরিয়ে ফেলা হয়েছে, এবং ঐচ্ছিকভাবে AIError এ সরানো হয়েছে।

Dart

  • গণনা

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

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

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

    • GenerationConfigstopSequences প্যারামিটারটিকে ঐচ্ছিক করে ডিফল্টে খালি অ্যারের পরিবর্তে null করে দেওয়া হয়েছে।
  • উদ্ধৃতি

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

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

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

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

    • মডেল থেকে অসমর্থিত এম্বেডিং কার্যকারিতা ( embedContent এবং batchEmbedContents ) সরানো হয়েছে।

ঐক্য

গুগল এআই ক্লায়েন্ট এসডিকে থেকে ইউনিটির জন্য সমর্থন পাওয়া যায়নি।

ইউনিটির জন্য ফায়ারবেস এআই লজিক এসডিকে কীভাবে শুরু করবেন তা শিখুন।


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