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


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

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

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

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

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

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

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

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

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

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

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

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

Firebase AI লজিক SDK-এ স্থানান্তর করুন

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

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

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

  • ধাপ 3 : আপনার অ্যাপে আপনার আমদানি এবং সূচনা আপডেট করুন।

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

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

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

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

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

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

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

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

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

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

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

সুইফট

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

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

আপনি যদি আগে থেকেই Firebase ব্যবহার করে থাকেন, তাহলে নিশ্চিত করুন যে আপনার Firebase প্যাকেজ v11.13.0 বা তার পরের।

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

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

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

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

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

Kotlin

অ্যান্ড্রয়েডের জন্য Firebase AI লজিক SDK ( firebase-ai ) জেমিনি এবং ইমেজেন মডেলগুলির সাথে ইন্টারঅ্যাক্ট করার জন্য APIগুলিতে অ্যাক্সেস সরবরাহ করে৷

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

dependencies {
  // ... other androidx dependencies

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

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

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

dependencies {
  // ... other androidx dependencies

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

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

  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 ) এর জন্য ফায়ারবেস এআই লজিক প্লাগইন জেমিনি এবং ইমেজেন মডেলের সাথে ইন্টারঅ্যাক্ট করার জন্য APIগুলিতে অ্যাক্সেস সরবরাহ করে।

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

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

    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
    

ঐক্য

ঐক্যের জন্য সমর্থন Google AI ক্লায়েন্ট SDKs থেকে উপলব্ধ ছিল না।

একতার জন্য Firebase AI লজিক SDK দিয়ে কীভাবে শুরু করবেন তা জানুন।

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

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

সুইফট

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

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

  2. প্যাকেজ নির্ভরতার তালিকা থেকে generative-ai-swift প্যাকেজ নির্বাচন করুন।

  3. তালিকার নীচে থেকে - বোতামে ক্লিক করুন এবং নিশ্চিত করতে সরান ক্লিক করুন৷

Kotlin

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

Java

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

Web

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

Dart

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

ঐক্য

ঐক্যের জন্য সমর্থন Google AI ক্লায়েন্ট SDKs থেকে উপলব্ধ ছিল না।

একতার জন্য Firebase AI লজিক SDK দিয়ে কীভাবে শুরু করবেন তা জানুন।

ধাপ 3 : আপনার অ্যাপে আপনার আমদানি এবং সূচনা আপডেট করুন

আপনার আমদানি আপডেট করুন এবং আপনি কিভাবে Gemini Developer API ব্যাকএন্ড পরিষেবা শুরু করবেন এবং একটি GenerativeModel উদাহরণ তৈরি করুন৷

সুইফট

// BEFORE
import GoogleGenerativeAI

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

// AFTER
import FirebaseAI

// 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.0-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.0-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.0-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.0-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.0-flash');

ঐক্য

ঐক্যের জন্য সমর্থন Google AI ক্লায়েন্ট SDKs থেকে উপলব্ধ ছিল না।

একতার জন্য Firebase AI লজিক SDK দিয়ে কীভাবে শুরু করবেন তা জানুন।

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

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

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

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

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

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

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

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

  • টাইম আউট

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

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

সুইফট

  • গণনা

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

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

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

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

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

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

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

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

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

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

    • CitationMetadatacitationSources সম্পত্তির নাম পরিবর্তন করে citations
  • মোট বিলযোগ্য অক্ষর

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

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

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

Kotlin

  • গণনা

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

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

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

  • ব্লব পদ্ধতি

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

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

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

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

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

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

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

Java

  • গণনা

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

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

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

  • ব্লব পদ্ধতি

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

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

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

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

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

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

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

Web

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

  • গণনা

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

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

    • এই বৈশিষ্ট্যটির সমস্ত ব্যবহার সরানো হয়েছে, যেহেতু এটি এখনও Firebase AI লজিক SDK-তে সমর্থিত নয়৷
  • ত্রুটি

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

Dart

  • গণনা

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

    • InlineDataPartDataPart নামকরণ করা হয়েছে এবং অন্যান্য প্ল্যাটফর্মের সাথে সারিবদ্ধ করার জন্য inlineDatastatic data ফাংশন।
  • অনুরোধ বিকল্প

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

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

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

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

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

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

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

ঐক্য

ঐক্যের জন্য সমর্থন Google AI ক্লায়েন্ট SDKs থেকে উপলব্ধ ছিল না।

একতার জন্য Firebase AI লজিক SDK দিয়ে কীভাবে শুরু করবেন তা জানুন।


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