Firebase AI Logic ব্যবহার করে হাইব্রিড ইনফারেন্সের মাধ্যমে আপনি AI-পরিচালিত Android অ্যাপ ও ফিচার তৈরি করতে পারবেন। হাইব্রিড ইনফারেন্স, অন-ডিভাইস মডেল উপলভ্য থাকলে, সেটি ব্যবহার করে ইনফারেন্স রান করতে দেয় এবং তা না থাকলে, ক্লাউড-হোস্টেড মডেলে নির্বিঘ্নে ফিরে যায় (এবং এর উল্টোটাও হয়)।
এই পৃষ্ঠায় বর্ণনা করা হয়েছে কীভাবে ক্লায়েন্ট SDK ব্যবহার করা শুরু করবেন, তার পাশাপাশি অতিরিক্ত কনফিগারেশন বিকল্প ও ক্ষমতা দেখানো হয়েছে।
মনে রাখবেন যে Firebase AI Logic-এর মাধ্যমে অন-ডিভাইস ইনফারেন্স Android অ্যাপের জন্য কাজ করে, যদি সেগুলি Firebase AI Logic SDK v17.10.0+ (BoM v34.10.0+) ব্যবহার করে এবং নির্দিষ্ট ডিভাইসে রান করে। এটি ML Kit-এর শর্তাবলী, এবং ML Kit-এর Gen AI সংক্রান্ত দিকগুলির জন্য নির্দিষ্ট শর্তাবলী দ্বারা পরিচালিত হয়।
সাজেস্ট করা ব্যবহার এবং কাজ করার উপযুক্ত ফিচার
সাজেস্ট করা ব্যবহারের ক্ষেত্র
অনুমানের জন্য অন-ডিভাইস মডেল ব্যবহার করলে এইসব সুবিধা পাওয়া যায়:
- উন্নত গোপনীয়তা
- স্থানীয় প্রসঙ্গ
- কোনও খরচ ছাড়াই ইনফারেন্স
- অফলাইন কার্যকারিতা
হাইব্রিড কার্যকারিতা ব্যবহার করলে এইসব সুবিধা পাওয়া যায়:
- অন-ডিভাইস মডেলের উপলভ্যতা ও ইন্টারনেট কানেক্টিভিটি অনুযায়ী আপনার আরও বেশি দর্শকের কাছে পৌঁছান
অন-ডিভাইস ইনফারেন্সের জন্য কাজ করে এমন ক্ষমতা ও ফিচার
অন-ডিভাইস ইনফারেন্স শুধুমাত্র সিঙ্গেল-টার্ন টেক্সট জেনারেশন (চ্যাট নয়), স্ট্রিমিং বা নন-স্ট্রিমিং আউটপুটের সাথে কাজ করে। এটি নিম্নলিখিত টেক্সট-জেনারেট করার ক্ষমতাকে সমর্থন করে:
শুধুমাত্র টেক্সট ইনপুট থেকে টেক্সট জেনারেট করা
বিশেষ করে, ইনপুট হিসেবে একটি বিটম্যাপ ছবি থেকে টেক্সট-ও-ছবি ইনপুট থেকে টেক্সট জেনারেট করা
এই পৃষ্ঠার নিচে অন-ডিভাইস ইনফারেন্সের জন্য এখনও উপলভ্য নয় এমন ফিচারের তালিকা পর্যালোচনা করতে ভুলবেন না।
শুরু করার আগে
নিম্নলিখিত বিষয়গুলি মনে রাখবেন:
কাজ করে এমন API:
ইন-ক্লাউড ইনফারেন্স আপনার বেছে নেওয়া Gemini API প্রদানকারী (Gemini Developer API অথবা Agent Platform Gemini API (formerly Vertex AI)) ব্যবহার করে।
অন-ডিভাইস ইনফারেন্স ML Kit থেকে প্রম্পট API ব্যবহার করে, যা বিটা ভার্সনে আছে এবং শুধুমাত্র নির্দিষ্ট ডিভাইসে উপলভ্য।
এই পৃষ্ঠায় কীভাবে শুরু করতে হয় তা বর্ণনা করা হয়েছে।
এই স্ট্যান্ডার্ড সেট-আপ সম্পূর্ণ করার পরে, অতিরিক্ত কনফিগারেশন বিকল্প ও ক্ষমতা চেক করে দেখুন।
কাজ করে এমন Android ডিভাইস এবং সেগুলির অন-ডিভাইস মডেল
অন-ডিভাইস ইনফারেন্সের (যা ML Kit থেকে Prompt API ব্যবহার করে) জন্য, আপনি ML Kit ডকুমেন্টেশনে কাজ করে এমন ডিভাইস এবং তাদের অন-ডিভাইস মডেলের একটি তালিকা খুঁজে পেতে পারেন।
শুরু করুন
এই শুরু করার ধাপগুলি আপনি পাঠাতে চান এমন যেকোনও কাজ করে এমন প্রম্পট অনুরোধের জন্য প্রয়োজনীয় সাধারণ সেট-আপ বর্ণনা করে।
ধাপ ১: Firebase প্রোজেক্ট সেট-আপ করুন এবং Firebase-এর সাথে আপনার অ্যাপ কানেক্ট করুন
Firebase কনসোলে সাইন-ইন করুন, এবং তারপর আপনার Firebase প্রোজেক্ট বেছে নিন।
Firebase কনসোলে, AI পরিষেবা > AI লজিক বিকল্পে যান।
আপনার প্রোজেক্টের জন্য প্রয়োজনীয় API ও রিসোর্স সেট-আপ করতে সাহায্য করে এমন একটি নির্দেশিত ওয়ার্কফ্লো চালু করতে, শুরু করুন বিকল্পে ক্লিক করুন।
প্রম্পট করা হলে, আপনার অ্যাপ রেজিস্টার করতে এবং আপনার অ্যাপে Firebase কনফিগারেশন যোগ করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করুন।
"Gemini API প্রোভাইডার" বেছে নিতে বলা হলে, আমরা আপনাকে Gemini Developer API বেছে নেওয়ার সাজেশন দিই, যা আপনাকে কোনও খরচ ছাড়াই দ্রুত শুরু করতে দেয়।
পরে যেকোনও সময়, আপনি সবসময় Agent Platform Gemini API (formerly Vertex AI) সেট-আপ করতে পারবেন (এবং বিলিংয়ের জন্য এর প্রয়োজনীয়তা)।
Firebase AI Logic-এর জন্য প্রয়োজনীয় API ও সংশ্লিষ্ট পরিষেবা সেট-আপ করতে ওয়ার্কফ্লোতে চালিয়ে যান।
২০২৬ সালের জুলাই মাসের শুরু থেকে, ওয়ার্কফ্লোয়ের এই পর্যায়ে AI Logic-এর জন্য অটোমেটিক এনফোর্সমেন্ট Firebase App Check প্রয়োগ করা হবে, যা Gemini API সুরক্ষিত রাখার জন্য একটি গুরুত্বপূর্ণ পরিষেবা, যখন এটি আপনার অ্যাপ থেকে সরাসরি অ্যাক্সেস করা হয়। শুরু করার অংশ হিসেবে (এই গাইডে পরে ধাপগুলি দেখুন), App Check এনফোর্স করা হলে, লোকাল ডেভেলপমেন্টের জন্য আপনাকে App Check ডিবাগ প্রোভাইডার কনফিগার করতে হবে।
আপনার অ্যাপে প্রয়োজনীয় SDK যোগ করতে এই গাইডের পরবর্তী ধাপে যান।
ধাপ ২: প্রয়োজনীয় SDK যোগ করুন
Firebase AI Logic On-Device SDK
(firebase-ai-ondevicefirebase-ai
আপনার মডিউল (অ্যাপ-লেভেল) Gradle ফাইলে
(যেমন <project>/<app-module>/build.gradle.kts), Android-এর জন্য
Firebase AI Logic এবং App Check লাইব্রেরির ডিপেন্ডেন্সি যোগ করুন:
Kotlin
dependencies { // ... other androidx dependencies // Add the dependencies for the Firebase AI Logic and App Check libraries // Note that the on-device SDK is not yet included in the Firebase Android BoM implementation("com.google.firebase:firebase-ai:18.0.0") implementation("com.google.firebase:firebase-ai-ondevice:16.0.0-beta06") implementation("com.google.firebase:firebase-appcheck-debug:20.0.0") }
Java
Java-এর জন্য, আপনাকে দুটি অতিরিক্ত লাইব্রেরি যোগ করতে হবে।
dependencies { // ... other androidx dependencies // Add the dependencies for the Firebase AI Logic and App Check libraries // Note that the on-device SDK is not yet included in the Firebase Android BoM implementation("com.google.firebase:firebase-ai:18.0.0") implementation("com.google.firebase:firebase-ai-ondevice:16.0.0-beta06") implementation("com.google.firebase:firebase-appcheck-debug:20.0.0") // 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") }
ধাপ ৩: লোকাল ডেভেলপমেন্টের জন্য App Check ডিবাগ প্রোভাইডার কনফিগার করা
২০২৬ সালের জুলাই মাসের শুরু থেকে, কনসোলে AI Logic-এর জন্য গাইডেড সেট-আপ ওয়ার্কফ্লোর অংশ হিসেবে, Gemini API সুরক্ষিত রাখতে Firebase App Check অটোমেটিক এনফোর্স করা হয়। স্থানীয় ডেভেলপমেন্টের জন্য, আপনাকে App Check ডিবাগ প্রোভাইডার কনফিগার করতে হবে যাতে App Check-এর এনফোর্সমেন্ট বজায় রেখেও অ্যাটেস্টেশন বাইপাস করা যায়।
- অনুসরণ করুন।
আপনার ডিবাগ বিল্ডে, ডিবাগ প্রোভাইডার ফ্যাক্টরি ব্যবহার করতে App Check কনফিগার করুন:
Kotlin
Firebase.initialize(context = this) Firebase.appCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance(), )জাভা
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance());আপনার ডিবাগ টোকেন পান:
এমুলেটরে বা আপনার টেস্ট ডিভাইসে অ্যাপ রান করুন।
আপনার লগে App Check ডিবাগ টোকেন খুঁজুন। যেমন:
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678টোকেনটি কপি করুন (যেমন,
123a4567-b89c-12d3-e456-789012345678)।
App Check-এর সাথে আপনার ডিবাগ টোকেন রেজিস্টার করুন:
Firebase কনসোলে, নিরাপত্তা > অ্যাপ চেক > অ্যাপ ট্যাব বিকল্পে যান।
আপনার অ্যাপ খুঁজে নিন, ওভারফ্লো মেনুতে ক্লিক করুন () এবং তারপরে ডিবাগ টোকেন ম্যানেজ করুন বিকল্প বেছে নিন।
আপনার ডিবাগ টোকেন রেজিস্টার করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করুন।
ডিবাগ প্রোভাইডার সম্পর্কে আরও জানতে (নতুন ডিবাগ টোকেন কীভাবে পাবেন সেই তথ্য সহ), অফিসিয়াল App Check ডকুমেন্ট দেখুন।
ধাপ ৪: ডিভাইসে মডেল উপলভ্য আছে কিনা চেক করুন
FirebaseAIOnDevice
ব্যবহার করে,
অন-ডিভাইস মডেল উপলভ্য আছে কিনা তা চেক করুন এবং উপলভ্য না থাকলে মডেলটি ডাউনলোড করুন।
ডাউনলোড করা হয়ে গেলে, AICore অটোমেটিক মডেল আপডেট করতে থাকবে। AICore এবং অন-ডিভাইস মডেল ডাউনলোড ম্যানেজ করার ব্যাপারে আরও জানতে, স্নিপেটের পরে নোটগুলি দেখুন।
Kotlin
val status = FirebaseAIOnDevice.checkStatus()
when (status) {
OnDeviceModelStatus.UNAVAILABLE -> {
Log.w(TAG, "On-device model is unavailable")
}
OnDeviceModelStatus.DOWNLOADABLE -> {
FirebaseAIOnDevice.download().collect { status ->
when (status) {
is DownloadStatus.DownloadStarted ->
Log.w(TAG, "Starting download - ${status.bytesToDownload}")
is DownloadStatus.DownloadInProgress ->
Log.w(TAG, "Download in progress ${status.totalBytesDownloaded} bytes downloaded")
is DownloadStatus.DownloadCompleted ->
Log.w(TAG, "On-device model download complete")
is DownloadStatus.DownloadFailed ->
Log.e(TAG, "Download failed ${status}")
}
}
}
OnDeviceModelStatus.DOWNLOADING -> {
Log.w(TAG, "On-device model is being downloaded")
}
OnDeviceModelStatus.AVAILABLE -> {
Log.w(TAG, "On-device model is available")
}
}
Java
Checking for, downloading, and warming up the model is not yet available for Java.
However, all other APIs and interactions in this guide are available for Java.
অন-ডিভাইস মডেল ডাউনলোড করা সম্পর্কে নিম্নলিখিত বিষয়গুলি মনে রাখবেন:
অন-ডিভাইস মডেল ডাউনলোড করতে কত সময় লাগবে তা আপনার নেটওয়ার্ক সহ বিভিন্ন বিষয়ের উপর নির্ভর করে।
আপনার কোড যদি প্রাইমারি বা ফলব্যাক ইনফারেন্সের জন্য অন-ডিভাইস মডেল ব্যবহার করে, তাহলে নিশ্চিত করুন যে মডেলটি আপনার অ্যাপের লাইফসাইকেলের শুরুতেই ডাউনলোড করা হয়েছে যাতে আপনার অ্যাপে ব্যবহারকারীরা কোডটি দেখার আগেই অন-ডিভাইস মডেলটি উপলভ্য হয়।
অন-ডিভাইস ইনফারেন্স অনুরোধ করা হলে, অন-ডিভাইস মডেল উপলভ্য না থাকলে, SDK অটোমেটিক অন-ডিভাইস মডেল ডাউনলোড করার প্রসেস ট্রিগার করবে না। SDK ক্লাউড-হোস্ট করা মডেলে ফিরে যাবে অথবা ব্যতিক্রম দেখাবে (ইনফারেন্স মোড-এর আচরণ সম্পর্কে বিস্তারিত দেখুন)।
AICore (একটি Android সিস্টেম সার্ভিস) আপনার জন্য কোন মডেল ও ভার্সন ডাউনলোড করা হয়েছে, মডেল আপডেট রাখা ইত্যাদি ম্যানেজ করে। মনে রাখবেন যে ডিভাইসে শুধুমাত্র একটি মডেল ডাউনলোড করা থাকবে, তাই ডিভাইসে অন্য কোনও অ্যাপ আগে থেকে অন-ডিভাইস মডেল সফলভাবে ডাউনলোড করে থাকলে, এই চেক দেখাবে যে মডেলটি উপলভ্য আছে।
লেটেন্সি অপ্টিমাইজেশন
প্রথম ইনফারেন্স কলের জন্য অপ্টিমাইজ করতে, আপনার অ্যাপ কল করতে পারে
onDeviceExtension?.warmUp()
(বর্তমানে শুধুমাত্র Kotlin-এর জন্য উপলভ্য)। এটি অন-ডিভাইস মডেলকে মেমরিতে লোড করে
এবং রানটাইম কম্পোনেন্ট শুরু করে।
ধাপ ৫: পরিষেবা শুরু করুন এবং একটি মডেল ইনস্ট্যান্স তৈরি করুন
|
এই পৃষ্ঠায় প্রদানকারী-নির্দিষ্ট কন্টেন্ট এবং কোড দেখতে আপনার Gemini API প্রদানকারীর উপর ক্লিক করুন। |
মডেলকে প্রম্পট অনুরোধ পাঠানোর আগে নিম্নলিখিত বিষয়গুলি সেট-আপ করুন।
আপনার বেছে নেওয়া API প্রদানকারীর জন্য পরিষেবা শুরু করুন।
GenerativeModelইনস্ট্যান্স তৈরি করুন এবংmode-কে নিম্নলিখিতগুলির মধ্যে একটি হিসেবে সেট করুন। এখানে দেওয়া বিবরণগুলি খুব হাই-লেভেলের, তবে আপনি ইনফারেন্স মোড সেট করুন বিকল্পে গিয়ে এইসব মোডের আচরণ সম্পর্কে বিস্তারিত জানতে পারবেন।PREFER_ON_DEVICE: ডিভাইসে থাকা মডেল ব্যবহার করার চেষ্টা করুন; তা না হলে, ক্লাউড-হোস্টেড মডেলে ফিরে যান।ONLY_ON_DEVICE: অন-ডিভাইস মডেল ব্যবহার করার চেষ্টা করো; অন্যথায়, ব্যতিক্রম দেখাও।PREFER_IN_CLOUD: ক্লাউড-হোস্টেড মডেল ব্যবহার করার চেষ্টা করুন; অন্যথায়, অন-ডিভাইস মডেলে ফিরে যান।ONLY_IN_CLOUD: ক্লাউড-হোস্টেড মডেল ব্যবহার করার চেষ্টা করো; অন্যথায়, ব্যতিক্রম দেখাও।
Kotlin
// Using this SDK to access on-device inference is an Experimental release and requires opt-in
@OptIn(PublicPreviewAPI::class)
// ...
// Initialize the Gemini Developer API backend service
// Create a GenerativeModel instance with a model that supports your use case
// Set the inference mode (like PREFER_ON_DEVICE to use the on-device model if available)
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
.generativeModel(
modelName = "CLOUD_MODEL_NAME",
onDeviceConfig = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)
)
Java
// Initialize the Gemini Developer API backend service
// Create a GenerativeModel instance with a model that supports your use case
// Set the inference mode (like PREFER_ON_DEVICE to use the on-device model if available)
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel(
"CLOUD_MODEL_NAME",
new OnDeviceConfig(InferenceMode.PREFER_ON_DEVICE)
);
// Use the GenerativeModelFutures Java compatibility layer which offers
// support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(ai);
ধাপ ৬: কোনও মডেলে প্রম্পট অনুরোধ পাঠান
এই বিভাগে, বিভিন্ন ধরনের আউটপুট জেনারেট করার জন্য বিভিন্ন ধরনের ইনপুট কীভাবে পাঠাতে হয় তা দেখানো হয়েছে। এর মধ্যে রয়েছে:
শুধুমাত্র টেক্সট ইনপুট থেকে টেক্সট জেনারেট করুন
| এই স্যাম্পেল ব্যবহার করার আগে, এই গাইডের শুরু করুন বিভাগটি সম্পূর্ণ করেছেন কিনা তা নিশ্চিত করুন। |
টেক্সট আছে এমন প্রম্পট থেকে টেক্সট জেনারেট করতে আপনি
generateContent()
ব্যবহার করতে পারেন:
Kotlin
// Imports + initialization of Gemini API backend service + creation of model instance
// Provide a prompt that contains text
val prompt = "Write a story about a magic backpack."
// To generate text output, call generateContent with the text input
val response = model.generateContent(prompt)
print(response.text)
Java
// Imports + initialization of Gemini API backend service + creation of model instance
// Provide a prompt that contains text
Content prompt = new Content.Builder()
.addText("Write a story about a magic backpack.")
.build();
// To generate text output, call generateContent with the text input
ListenableFuture<GenerateContentResponse> response = model.generateContent(prompt);
Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
@Override
public void onSuccess(GenerateContentResponse result) {
String resultText = result.getText();
System.out.println(resultText);
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
}
}, executor);
মনে রাখবেন, Firebase AI Logic-এ generateContentStream
ব্যবহার করে টেক্সট উত্তর স্ট্রিম করার সুবিধাও আছে
(generateContent-এর পরিবর্তে)।
টেক্সট-ও-ছবি (মাল্টিমোডাল) ইনপুট থেকে টেক্সট জেনারেট করা
| এই স্যাম্পেল ব্যবহার করার আগে, এই গাইডের শুরু করুন বিভাগটি সম্পূর্ণ করেছেন কিনা তা নিশ্চিত করুন। |
আপনি
generateContent()
ব্যবহার করে, টেক্সট ও সর্বাধিক একটি ইমেজ ফাইল
(শুধুমাত্র বিটম্যাপ) — প্রতিটি ইনপুট ফাইলের mimeType ও ফাইলটি প্রদান করে — এমন প্রম্পট থেকে টেক্সট জেনারেট করতে পারেন।
Kotlin
// Imports + initialization of Gemini API backend service + creation of model instance
// Loads an image from the app/res/drawable/ directory
val bitmap: Bitmap = BitmapFactory.decodeResource(resources, R.drawable.sparky)
// Provide a prompt that includes the image specified above and text
val prompt = content {
image(bitmap)
text("What developer tool is this mascot from?")
}
// To generate text output, call generateContent with the prompt
val response = model.generateContent(prompt)
print(response.text)
Java
// Imports + initialization of Gemini API backend service + creation of model instance
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.sparky);
// Provide a prompt that includes the image specified above and text
Content content = new Content.Builder()
.addImage(bitmap)
.addText("What developer tool is this mascot from?")
.build();
// To generate text output, call generateContent with the prompt
ListenableFuture<GenerateContentResponse> response = model.generateContent(content);
Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
@Override
public void onSuccess(GenerateContentResponse result) {
String resultText = result.getText();
System.out.println(resultText);
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
}
}, executor);
মনে রাখবেন যে Firebase AI Logic-এ
generateContentStream
(generateContent-এর পরিবর্তে) ব্যবহার করে টেক্সট উত্তরের স্ট্রিমিংও করা যায়।
তুমি আর কী কী করতে পারো?
আপনার হাইব্রিড অভিজ্ঞতার জন্য আপনি বিভিন্ন অতিরিক্ত কনফিগারেশন বিকল্প ও ক্ষমতা ব্যবহার করতে পারবেন:
অন-ডিভাইস ইনফারেন্সের জন্য ফিচার এখনও উপলভ্য নয়
পরীক্ষামূলক রিলিজ হিসেবে, ক্লাউড মডেলের সব ক্ষমতা অন-ডিভাইস ইনফারেন্সের জন্য উপলভ্য নয়। নিম্নলিখিত ফিচারগুলি এখনও অন-ডিভাইস ইনফারেন্সের জন্য উপলভ্য নয় (তবে সেগুলি সাধারণত ক্লাউড-ভিত্তিক ইনফারেন্সের জন্য উপলভ্য)।
ছবি তৈরি করা হচ্ছে
- ক্লাউড-হোস্ট করা মডেলে ফিরে যেতে পারে;
তবে,
ONLY_ON_DEVICEমোড ব্যতিক্রম দেখাবে।
- ক্লাউড-হোস্ট করা মডেলে ফিরে যেতে পারে;
তবে,
বিটম্যাপ ছাড়া অন্য ধরনের ছবির ফাইল ইনপুট থেকে টেক্সট জেনারেট করা (মেমরিতে লোড করা ছবি)
- ক্লাউড-হোস্টেড মডেলে ফিরে যেতে পারে;
তবে,
ONLY_ON_DEVICEমোড একটি ব্যতিক্রম দেখাবে।
- ক্লাউড-হোস্টেড মডেলে ফিরে যেতে পারে;
তবে,
শুধুমাত্র ছবি আছে এমন ফাইল ইনপুট থেকে টেক্সট জেনারেট করা হচ্ছে। অন-ডিভাইস ইনফারেন্সের জন্য, আপনাকে অবশ্যই মাল্টিমোডাল অনুরোধের অংশ হিসেবে টেক্সট প্রদান করতে হবে।
- ক্লাউড-হোস্টেড মডেলে ফিরে যেতে পারে;
তবে,
ONLY_ON_DEVICEমোড একটি ব্যতিক্রম দেখাবে।
- ক্লাউড-হোস্টেড মডেলে ফিরে যেতে পারে;
তবে,
একাধিক ছবির ফাইল ইনপুট থেকে টেক্সট জেনারেট করা হচ্ছে
- ক্লাউড-হোস্টেড মডেলে ফিরে যেতে পারে;
তবে,
ONLY_ON_DEVICEমোড একটি ব্যতিক্রম দেখাবে।
- ক্লাউড-হোস্টেড মডেলে ফিরে যেতে পারে;
তবে,
অডিও, ভিডিও ও ডকুমেন্ট (যেমন, পিডিএফ) ইনপুট থেকে টেক্সট তৈরি করা
- ক্লাউড-হোস্টেড মডেলে ফিরে যেতে পারে;
তবে,
ONLY_ON_DEVICEমোড একটি ব্যতিক্রম দেখাবে।
- ক্লাউড-হোস্টেড মডেলে ফিরে যেতে পারে;
তবে,
মাল্টিমোডাল অনুরোধে URL ব্যবহার করে ফাইল প্রদান করা। অন-ডিভাইস ইনফারেন্সের জন্য, আপনাকে অবশ্যই বিটম্যাপ হিসেবে একটি ছবি প্রদান করতে হবে।
- আপনি
fileData(FileDataPart) ব্যবহার করে কোনও ফাইল URL প্রদান করলে, এটি ক্লাউড-হোস্টেড মডেলে ফিরে যেতে পারে (ONLY_ON_DEVICEমোড একটি ব্যতিক্রম দেখাবে)। - আপনি যদি কোনও টেক্সট প্রম্পটে সরাসরি কোনও URL এম্বেড করেন, তাহলে এটি অটোমেটিক ক্লাউড-হোস্টেড মডেলে ফিরে যায় না (এম্বেড করা URL-গুলি অন-ডিভাইস মডেল দ্বারা উপেক্ষা করা হয়)।
- আপনি
৪০০০ টোকেন (বা প্রায় ৩০০০ ইংরেজি শব্দ) ছাড়িয়ে যায় এমন অনুরোধ পাঠানো
- ক্লাউড-হোস্টেড মডেলে ফিরে যেতে পারে;
তবে,
ONLY_ON_DEVICEমোড একটি ব্যতিক্রম দেখাবে।
- ক্লাউড-হোস্টেড মডেলে ফিরে যেতে পারে;
তবে,
মাল্টি-টার্ন চ্যাট
- ক্লাউড-হোস্ট করা মডেলে (অন-ডিভাইস ইনফারেন্স প্রম্পট ইতিহাসকে একটি টেক্সট প্রম্পটে কনক্যাটেনেট করে; কারণ অন-ডিভাইস মডেল রোলগুলির মধ্যে পার্থক্য করে না এবং ইতিহাসকে একটি মেসেজ হিসেবে দেখে, এটি ক্লাউড-হোস্ট করা মডেলের মতো নিখুঁত হবে না) অটোমেটিক ফল ব্যাক করে না।
- আপনি মাল্টি-টার্ন চ্যাট ব্যবহার করতে চাইলে, আমরা
ONLY_IN_CLOUDমোড ব্যবহার করার সাজেশন দিই।
মডেলকে টুল প্রদান করা যাতে এটি উত্তর জেনারেট করতে পারে (যেমন ফাংশন কলিং, কোড এক্সিকিউশন, URL কন্টেক্সট,
Google Search -এর সাথে গ্রাউন্ডিং এবংGoogle Maps -এর সাথে গ্রাউন্ডিং)- অটোমেটিক ক্লাউড-হোস্টেড মডেলে ফিরে যায় না। আপনি যদি টুল ব্যবহার করতে চান, তাহলে আমরা
ONLY_IN_CLOUDমোড ব্যবহার করার সাজেশন দিই।
- অটোমেটিক ক্লাউড-হোস্টেড মডেলে ফিরে যায় না। আপনি যদি টুল ব্যবহার করতে চান, তাহলে আমরা
Firebase কনসোলে AI মনিটরিং, অন-ডিভাইস ইনফারেন্স (অন-ডিভাইস লগ সহ)-এর জন্য কোনও ডেটা দেখায় না। তবে, ক্লাউড-হোস্ট করা মডেল ব্যবহার করে এমন যেকোনও ইনফারেন্স Firebase AI Logic-এর মাধ্যমে অন্যান্য ইনফারেন্সের মতোই মনিটর করা যেতে পারে।
অতিরিক্ত সীমাবদ্ধতা
উপরে উল্লেখ করা বিষয় ছাড়াও, অন-ডিভাইস ইনফারেন্সের নিম্নলিখিত সীমাবদ্ধতা আছে (ML Kit ডকুমেন্টেশন থেকে আরও জানুন):
আপনার অ্যাপের গ্রাহককে অবশ্যই সাপোর্ট করে এমন ডিভাইস ব্যবহার করতে হবে।
আপনার অ্যাপ শুধুমাত্র তখনই অন-ডিভাইস ইনফারেন্স চালাতে পারে যখন এটি ফোরগ্রাউন্ডে থাকে।
অন-ডিভাইস ইনফারেন্সের জন্য শুধুমাত্র ইংরেজি ও কোরিয়ান ভাষা যাচাই করা হয়েছে।
সম্পূর্ণ অন-ডিভাইস ইনফারেন্স অনুরোধের জন্য সর্বাধিক টোকেন সীমা হল ৪০০০ টোকেন। আপনার অনুরোধ এই সীমা অতিক্রম করলে, ক্লাউড-হোস্ট করা মডেল ব্যবহার করতে পারে এমন একটি ইনফারেন্স মোড কনফিগার করতে ভুলবেন না।
আমরা সাজেস্ট করি যে ডিভাইসে ইনফারেন্সের এমন ব্যবহার এড়িয়ে চলুন যেখানে অনেক বড় আউটপুট (২৫৬ টোকেনের বেশি) প্রয়োজন।
AICore (একটি Android সিস্টেম পরিষেবা যা অন-ডিভাইস মডেল ম্যানেজ করে) প্রতি অ্যাপে ইনফারেন্স কোটা এনফোর্স করে। অল্প সময়ের মধ্যে অনেক API অনুরোধ করলে
ErrorCode.BUSYউত্তর পাওয়া যাবে। আপনি এই সমস্যা সংক্রান্ত মেসেজ পেলে, অনুরোধটি আবার করার জন্য এক্সপোনেনশিয়াল ব্যাকঅফ ব্যবহার করার কথা বিবেচনা করুন। এছাড়াও,ErrorCode.PER_APP_BATTERY_USE_QUOTA_EXCEEDEDফেরত দেওয়া হতে পারে যদি কোনও অ্যাপ দীর্ঘ-মেয়াদী কোটা (যেমন, দৈনিক কোটা) পেরিয়ে যায়।
Firebase AI Logic-এর সাথে আপনার অভিজ্ঞতা সম্পর্কে মতামত জানান