আপনি Firebase AI Logic ব্যবহার করে হাইব্রিড ইনফারেন্স ব্যবহার করে AI-চালিত অ্যান্ড্রয়েড অ্যাপ এবং বৈশিষ্ট্য তৈরি করতে পারেন। হাইব্রিড ইনফারেন্স উপলব্ধ থাকলে ডিভাইসের মডেল ব্যবহার করে ইনফারেন্স চালানো এবং অন্যথায় (এবং বিপরীতভাবে) ক্লাউড-হোস্টেড মডেলগুলিতে ফিরে আসা সম্ভব করে।
এই পৃষ্ঠাটি ক্লায়েন্ট SDK ব্যবহার শুরু করার পদ্ধতি বর্ণনা করে, পাশাপাশি তাপমাত্রার মতো অতিরিক্ত কনফিগারেশন বিকল্প এবং ক্ষমতাও দেখায়।
মনে রাখবেন যে Firebase AI Logic- এর মাধ্যমে অন-ডিভাইস ইনফারেন্স নির্দিষ্ট ডিভাইসে চলমান অ্যান্ড্রয়েড অ্যাপগুলির জন্য সমর্থিত এবং ML Kit শর্তাবলী দ্বারা নিয়ন্ত্রিত হয়, সেইসাথে ML Kit-এর Gen AI দিকগুলির সাথে সম্পর্কিত শর্তাবলী দ্বারাও ।
প্রস্তাবিত ব্যবহারের ক্ষেত্রে এবং সমর্থিত ক্ষমতা
প্রস্তাবিত ব্যবহারের ক্ষেত্রে
ইনফারেন্স অফারগুলির জন্য একটি অন-ডিভাইস মডেল ব্যবহার করা:
- উন্নত গোপনীয়তা
- স্থানীয় প্রেক্ষাপট
- বিনামূল্যে অনুমান
- অফলাইন কার্যকারিতা
হাইব্রিড কার্যকারিতা ব্যবহারের ফলে নিম্নলিখিত সুবিধাগুলি পাওয়া যায়:
- ডিভাইসে মডেলের প্রাপ্যতা এবং ইন্টারনেট সংযোগের সুবিধা প্রদান করে আপনার আরও বেশি দর্শকের কাছে পৌঁছান
ডিভাইসে থাকা অনুমানের জন্য সমর্থিত ক্ষমতা এবং বৈশিষ্ট্য
অন-ডিভাইস ইনফারেন্স শুধুমাত্র সিঙ্গেল-টার্ন টেক্সট জেনারেশন সমর্থন করে (চ্যাট নয় ) , স্ট্রিমিং বা নন-স্ট্রিমিং আউটপুট সহ। এটি নিম্নলিখিত টেক্সট-জেনারেশন ক্ষমতা সমর্থন করে:
শুধুমাত্র-টেক্সট ইনপুট থেকে টেক্সট তৈরি করা হচ্ছে
টেক্সট-এন্ড-ইমেজ ইনপুট থেকে টেক্সট তৈরি করা, বিশেষ করে ইনপুট হিসেবে একটি একক বিটম্যাপ ইমেজ
এই পৃষ্ঠার নীচে ডিভাইসে অনুমানের জন্য এখনও উপলব্ধ নয় এমন বৈশিষ্ট্যগুলির তালিকাটি পর্যালোচনা করতে ভুলবেন না।
শুরু করার আগে
নিম্নলিখিত বিষয়গুলি লক্ষ্য করুন:
সমর্থিত API গুলি:
ইন-ক্লাউড ইনফারেন্স আপনার নির্বাচিত জেমিনি এপিআই সরবরাহকারী (হয় জেমিনি ডেভেলপার এপিআই অথবা ভার্টেক্স এআই জেমিনি এপিআই ) ব্যবহার করে।
অন-ডিভাইস ইনফারেন্স ML Kit থেকে প্রম্পট API ব্যবহার করে, যা বিটাতে রয়েছে এবং শুধুমাত্র নির্দিষ্ট ডিভাইসে উপলব্ধ।
এই পৃষ্ঠাটি কীভাবে শুরু করবেন তা বর্ণনা করে।
এই স্ট্যান্ডার্ড সেটআপটি সম্পন্ন করার পরে, অতিরিক্ত কনফিগারেশন বিকল্প এবং ক্ষমতাগুলি (যেমন তাপমাত্রা সেট করা) পরীক্ষা করে দেখুন।
সমর্থিত অ্যান্ড্রয়েড ডিভাইস এবং তাদের অন-ডিভাইস মডেলগুলি
অন-ডিভাইস ইনফারেন্সের জন্য (যা ML Kit এর প্রম্পট API ব্যবহার করে), আপনি ML Kit ডকুমেন্টেশনে সমর্থিত ডিভাইস এবং তাদের অন-ডিভাইস মডেলগুলির একটি তালিকা খুঁজে পেতে পারেন।
শুরু করুন
এই শুরু করার ধাপগুলি আপনার পাঠানো যেকোনো সমর্থিত প্রম্পট অনুরোধের জন্য প্রয়োজনীয় সাধারণ সেটআপ বর্ণনা করে।
ধাপ ১ : একটি Firebase প্রকল্প সেট আপ করুন এবং আপনার অ্যাপটিকে Firebase এর সাথে সংযুক্ত করুন।
Firebase কনসোলে সাইন ইন করুন, এবং তারপর আপনার Firebase প্রকল্পটি নির্বাচন করুন।
যদি আপনার ইতিমধ্যেই কোন Firebase প্রকল্প না থাকে, তাহলে একটি নতুন Firebase প্রকল্প তৈরি করতে বোতামটি ক্লিক করুন, এবং তারপর নিম্নলিখিত বিকল্পগুলির যেকোনো একটি ব্যবহার করুন:
বিকল্প ১ : কর্মপ্রবাহের প্রথম ধাপে একটি নতুন প্রকল্পের নাম প্রবেশ করিয়ে একটি সম্পূর্ণ নতুন ফায়ারবেস প্রকল্প (এবং এর অন্তর্নিহিত Google Cloud প্রকল্প স্বয়ংক্রিয়ভাবে) তৈরি করুন।
বিকল্প ২ : "Add Firebase to Google Cloud Cloud প্রকল্পে "Add Firebase " যোগ করুন। কর্মপ্রবাহের প্রথম ধাপে, বিদ্যমান প্রকল্পের প্রকল্পের নাম প্রবেশ করা শুরু করুন, এবং তারপর প্রদর্শিত তালিকা থেকে প্রকল্পটি নির্বাচন করুন।
একটি Firebase প্রকল্প তৈরি করতে অন-স্ক্রিন ওয়ার্কফ্লোর অবশিষ্ট ধাপগুলি সম্পূর্ণ করুন। মনে রাখবেন যে অনুরোধ করা হলে, Firebase AI Logic SDK ব্যবহার করার জন্য আপনাকে Google Analytics সেট আপ করার প্রয়োজন নেই ।
Firebase কনসোলে, ফায়ারবেস এআই লজিক পৃষ্ঠায় যান।
আপনার প্রকল্পের জন্য প্রয়োজনীয় API এবং সংস্থান সেট আপ করতে সাহায্য করার জন্য একটি নির্দেশিত কর্মপ্রবাহ চালু করতে "শুরু করুন" এ ক্লিক করুন।
" Gemini API " প্রদানকারী ব্যবহার করার জন্য আপনার প্রকল্পটি সেট আপ করুন।
আমরা জেমিনি ডেভেলপার API ব্যবহার শুরু করার পরামর্শ দিচ্ছি। যেকোনো সময়, আপনি Vertex AI জেমিনি API (এবং বিলিংয়ের জন্য এর প্রয়োজনীয়তা) সেট আপ করতে পারেন।
জেমিনি ডেভেলপার এপিআই- এর জন্য, কনসোলটি প্রয়োজনীয় এপিআই সক্ষম করবে এবং আপনার প্রকল্পে একটি জেমিনি এপিআই কী তৈরি করবে।
এই জেমিনি এপিআই কীটি আপনার অ্যাপের কোডবেসে যোগ করবেন না । আরও জানুন।কনসোলের ওয়ার্কফ্লোতে যদি অনুরোধ করা হয়, তাহলে আপনার অ্যাপটি নিবন্ধন করতে এবং এটিকে Firebase-এর সাথে সংযুক্ত করতে অন-স্ক্রীন নির্দেশাবলী অনুসরণ করুন।
আপনার অ্যাপে SDK যোগ করতে এই নির্দেশিকার পরবর্তী ধাপে যান।
ধাপ ২ : প্রয়োজনীয় SDK গুলি যোগ করুন
অ্যান্ড্রয়েডের জন্য ফায়ারবেস এআই লজিক এসডিকে ( firebase-ai ) এবং ফায়ারবেস এআই লজিক অন-ডিভাইস এসডিকে ( firebase-ai-ondevice ) জেনারেটিভ মডেলগুলির সাথে ইন্টারঅ্যাক্ট করার জন্য এপিআইগুলিতে অ্যাক্সেস প্রদান করে।
আপনার মডিউল (অ্যাপ-লেভেল) গ্র্যাডেল ফাইলে (যেমন <project>/<app-module>/build.gradle.kts ), অ্যান্ড্রয়েডের জন্য Firebase AI Logic লাইব্রেরির জন্য নির্ভরতা যোগ করুন:
Kotlin
dependencies { // ... other androidx dependencies // Add the dependencies for the Firebase AI Logic libraries // Note that the on-device SDK is not yet included in the Firebase Android BoM implementation("com.google.firebase:firebase-ai:17.10.0") implementation("com.google.firebase:firebase-ai-ondevice:16.0.0-beta01") }
Java
জাভার জন্য, আপনাকে দুটি অতিরিক্ত লাইব্রেরি যুক্ত করতে হবে।
dependencies { // ... other androidx dependencies // Add the dependencies for the Firebase AI Logic libraries // Note that the on-device SDK is not yet included in the Firebase Android BoM implementation("com.google.firebase:firebase-ai:17.10.0") implementation("com.google.firebase:firebase-ai-ondevice:16.0.0-beta01") // 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") }
ধাপ ৩ : ডিভাইসে থাকা মডেলটি উপলব্ধ কিনা তা পরীক্ষা করুন।
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 and downloading the model is not yet available for Java.
However, all other APIs and interactions in this guide are available for Java.
ডিভাইসে থাকা মডেলটি ডাউনলোড করার সময় নিম্নলিখিত বিষয়গুলি লক্ষ্য করুন:
ডিভাইসে থাকা মডেলটি ডাউনলোড করতে কত সময় লাগে তা আপনার নেটওয়ার্ক সহ অনেকগুলি বিষয়ের উপর নির্ভর করে।
যদি আপনার কোডটি তার প্রাথমিক বা ফলব্যাক ইনফারেন্সের জন্য একটি অন-ডিভাইস মডেল ব্যবহার করে, তাহলে নিশ্চিত করুন যে মডেলটি আপনার অ্যাপের জীবনচক্রের প্রথম দিকে ডাউনলোড করা হয়েছে যাতে আপনার ব্যবহারকারীরা আপনার অ্যাপে কোডটি দেখতে পাওয়ার আগেই অন-ডিভাইস মডেলটি উপলব্ধ থাকে।
যদি অন-ডিভাইস ইনফারেন্স অনুরোধ করা হলে অন-ডিভাইস মডেলটি উপলব্ধ না থাকে, তাহলে SDK স্বয়ংক্রিয়ভাবে অন-ডিভাইস মডেলের ডাউনলোড ট্রিগার করবে না । SDK হয় ক্লাউড-হোস্টেড মডেলে ফিরে যাবে অথবা একটি ব্যতিক্রম দেবে ( ইনফারেন্স মোডের আচরণ সম্পর্কে বিস্তারিত দেখুন)।
AICore (একটি অ্যান্ড্রয়েড সিস্টেম পরিষেবা) আপনার জন্য কোন মডেল এবং সংস্করণ ডাউনলোড করা হয়েছে তা পরিচালনা করে, মডেলটি আপডেট রাখে, ইত্যাদি। মনে রাখবেন যে ডিভাইসটিতে কেবল একটি মডেল ডাউনলোড করা হবে, তাই যদি ডিভাইসের অন্য কোনও অ্যাপ পূর্বে ডিভাইসে থাকা মডেলটি সফলভাবে ডাউনলোড করে থাকে, তাহলে এই চেকটি আপনাকে জানাবে যে মডেলটি উপলব্ধ।
লেটেন্সি অপ্টিমাইজেশন
প্রথম ইনফারেন্স কলের জন্য অপ্টিমাইজ করার জন্য, আপনি আপনার অ্যাপ কল warmup() করতে পারেন। এটি অন-ডিভাইস মডেলটিকে মেমরিতে লোড করে এবং রানটাইম উপাদানগুলিকে ইনিশিয়ালাইজ করে।
ধাপ ৪ : পরিষেবাটি শুরু করুন এবং একটি মডেল ইনস্ট্যান্স তৈরি করুন
এই পৃষ্ঠায় প্রোভাইডার-নির্দিষ্ট কন্টেন্ট এবং কোড দেখতে আপনার জেমিনি API প্রোভাইডারে ক্লিক করুন। |
মডেলটিতে একটি প্রম্পট অনুরোধ পাঠানোর আগে নিম্নলিখিতগুলি সেট আপ করুন।
আপনার নির্বাচিত API প্রদানকারীর জন্য পরিষেবাটি শুরু করুন।
একটি
GenerativeModelইনস্ট্যান্স তৈরি করুন এবংmodeনিম্নলিখিতগুলির মধ্যে একটিতে সেট করুন। এখানে বর্ণনাগুলি খুবই উচ্চ-স্তরের, তবে আপনি Set an inference 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 = "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(
"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_IN_CLOUD অনুমান মোড ব্যবহার করার পরামর্শ দিচ্ছি।
স্ট্রাকচার্ড আউটপুট তৈরি করা (যেমন JSON বা enums)
বিটম্যাপ ব্যতীত অন্যান্য ধরণের ইমেজ ফাইল ইনপুট থেকে টেক্সট তৈরি করা (মেমরিতে লোড করা ছবি)
একাধিক চিত্র ফাইল থেকে পাঠ্য তৈরি করা হচ্ছে
অডিও, ভিডিও এবং ডকুমেন্ট (যেমন পিডিএফ) ইনপুট থেকে টেক্সট তৈরি করা
জেমিনি বা ইমেজেন মডেল ব্যবহার করে ছবি তৈরি করা
মাল্টিমোডাল অনুরোধে URL ব্যবহার করে ফাইল সরবরাহ করা। আপনাকে অবশ্যই অন-ডিভাইস মডেলগুলিতে ইনলাইন ডেটা হিসাবে ফাইল সরবরাহ করতে হবে।
৪০০০ টোকেনের বেশি (অথবা প্রায় ৩০০০ ইংরেজি শব্দ) অনুরোধ পাঠানো হচ্ছে।
মাল্টি-টার্ন চ্যাট
মডেলটিকে তার প্রতিক্রিয়া তৈরি করতে সাহায্য করার জন্য সরঞ্জাম সরবরাহ করা (যেমন ফাংশন কলিং, কোড এক্সিকিউশন, URL প্রসঙ্গ এবং Google অনুসন্ধানের মাধ্যমে গ্রাউন্ডিং)
Firebase কনসোলে AI মনিটরিং ডিভাইসে অন-ডিভাইস ইনফারেন্সের জন্য কোনও ডেটা দেখায় না (অন-ডিভাইস লগ সহ)। তবে, ক্লাউড-হোস্টেড মডেল ব্যবহার করে এমন যেকোনো ইনফারেন্স Firebase AI Logic এর মাধ্যমে অন্যান্য ইনফারেন্সের মতোই পর্যবেক্ষণ করা যেতে পারে।
অতিরিক্ত সীমাবদ্ধতা
উপরেরটি ছাড়াও, অন-ডিভাইস ইনফারেন্সের নিম্নলিখিত সীমাবদ্ধতা রয়েছে ( এমএল কিট ডকুমেন্টেশনে আরও জানুন):
আপনার অ্যাপের শেষ ব্যবহারকারীকে অবশ্যই ডিভাইসে অনুমানের জন্য একটি সমর্থিত ডিভাইস ব্যবহার করতে হবে।
আপনার অ্যাপটি কেবল তখনই ডিভাইসের উপর ভিত্তি করে অনুমান চালাতে পারবে যখন এটি ফোরগ্রাউন্ডে থাকবে।
ডিভাইসে থাকা অনুমানের জন্য শুধুমাত্র ইংরেজি এবং কোরিয়ান ভাষা যাচাই করা হয়েছে।
সম্পূর্ণ ডিভাইসে থাকা ইনফারেন্স অনুরোধের জন্য সর্বোচ্চ টোকেন সীমা হল 4000 টোকেন। যদি আপনার অনুরোধগুলি এই সীমা অতিক্রম করতে পারে, তাহলে নিশ্চিত করুন যে আপনি এমন একটি ইনফারেন্স মোড কনফিগার করেছেন যা ক্লাউড-হোস্টেড মডেল ব্যবহার করতে পারে।
আমরা এমন ডিভাইসে অনুমান ব্যবহারের ক্ষেত্রে এড়িয়ে চলার পরামর্শ দিচ্ছি যেখানে দীর্ঘ আউটপুট প্রয়োজন (২৫৬ টোকেনের বেশি)।
AICore (একটি অ্যান্ড্রয়েড সিস্টেম পরিষেবা যা ডিভাইসের মডেলগুলি পরিচালনা করে) প্রতিটি অ্যাপের জন্য একটি অনুমান কোটা প্রয়োগ করে। অল্প সময়ের মধ্যে অনেকগুলি API অনুরোধ করলে একটি
ErrorCode.BUSYপ্রতিক্রিয়া দেখা দেবে। যদি আপনি এই ত্রুটিটি পান, তাহলে অনুরোধটি পুনরায় চেষ্টা করার জন্য সূচকীয় ব্যাকঅফ ব্যবহার করার কথা বিবেচনা করুন। এছাড়াও, যদি কোনও অ্যাপ দীর্ঘ-মেয়াদী কোটা (উদাহরণস্বরূপ, দৈনিক কোটা) অতিক্রম করে তবেErrorCode.PER_APP_BATTERY_USE_QUOTA_EXCEEDEDফেরত পাঠানো যেতে পারে।
Firebase AI Logic এর সাথে আপনার অভিজ্ঞতা সম্পর্কে মতামত দিন।