আপনি Firebase AI Logic ব্যবহার করে হাইব্রিড ইনফারেন্সের মাধ্যমে এআই-চালিত অ্যান্ড্রয়েড অ্যাপ এবং ফিচার তৈরি করতে পারেন। হাইব্রিড ইনফারেন্সের ফলে, ডিভাইসে থাকা মডেল উপলব্ধ থাকলে তা ব্যবহার করে ইনফারেন্স চালানো যায় এবং অন্যথায় এটি নির্বিঘ্নে ক্লাউড-হোস্টেড মডেলে ফিরে আসে (এবং এর বিপরীতটিও ঘটে)।
এই পৃষ্ঠায় ক্লায়েন্ট SDK ব্যবহার শুরু করার পদ্ধতি বর্ণনা করা হয়েছে, পাশাপাশি তাপমাত্রার মতো অতিরিক্ত কনফিগারেশন বিকল্প ও সক্ষমতাগুলোও দেখানো হয়েছে।
উল্লেখ্য যে, Firebase AI Logic- এর মাধ্যমে অন-ডিভাইস ইনফারেন্স শুধুমাত্র নির্দিষ্ট ডিভাইসে চলমান অ্যান্ড্রয়েড অ্যাপের জন্য সমর্থিত এবং এটি ML Kit-এর শর্তাবলী , সেইসাথে ML Kit-এর Gen AI দিকগুলির জন্য নির্দিষ্ট শর্তাবলী দ্বারা নিয়ন্ত্রিত হয়।
সুপারিশকৃত ব্যবহারের ক্ষেত্র এবং সমর্থিত সক্ষমতা
সুপারিশকৃত ব্যবহারের ক্ষেত্রসমূহ
ইনফারেন্সের জন্য অন-ডিভাইস মডেল ব্যবহারের সুবিধাগুলো হলো:
- উন্নত গোপনীয়তা
- স্থানীয় প্রেক্ষাপট
- বিনা খরচে অনুমান
- অফলাইন কার্যকারিতা
হাইব্রিড কার্যকারিতা ব্যবহারের সুবিধা:
- ডিভাইসে মডেলের সহজলভ্যতা এবং ইন্টারনেট সংযোগের ব্যবস্থা করে আপনার আরও বেশি দর্শকের কাছে পৌঁছান।
অন-ডিভাইস ইনফারেন্সের জন্য সমর্থিত ক্ষমতা এবং বৈশিষ্ট্যসমূহ
অন-ডিভাইস ইনফারেন্স শুধুমাত্র একক-টার্ন টেক্সট জেনারেশন (চ্যাট নয় ) সমর্থন করে, যার আউটপুট স্ট্রিমিং বা নন-স্ট্রিমিং হতে পারে। এটি নিম্নলিখিত টেক্সট-জেনারেটর ক্ষমতাগুলো সমর্থন করে:
শুধুমাত্র টেক্সট ইনপুট থেকে টেক্সট তৈরি করা
টেক্সট ও ইমেজ ইনপুট থেকে টেক্সট তৈরি করা, বিশেষত ইনপুট হিসেবে একটিমাত্র বিটম্যাপ ইমেজ ব্যবহার করে।
এই পৃষ্ঠার নীচে অন-ডিভাইস ইনফারেন্সের জন্য এখনও অনুপলব্ধ ফিচারগুলির তালিকাটি পর্যালোচনা করতে ভুলবেন না।
শুরু করার আগে
নিম্নলিখিত বিষয়গুলো লক্ষ্য করুন:
সমর্থিত এপিআইগুলো:
ইন-ক্লাউড ইনফারেন্স আপনার নির্বাচিত জেমিনি এপিআই প্রোভাইডার ( জেমিনি ডেভেলপার এপিআই অথবা ভার্টেক্স এআই জেমিনি এপিআই ) ব্যবহার করে।
অন-ডিভাইস ইনফারেন্স এমএল কিট (ML Kit)-এর প্রম্পট এপিআই (Prompt API) ব্যবহার করে, যা বর্তমানে বিটা পর্যায়ে রয়েছে এবং শুধুমাত্র নির্দিষ্ট কিছু ডিভাইসে উপলব্ধ।
এই পৃষ্ঠায় বর্ণনা করা হয়েছে কীভাবে শুরু করতে হয় ।
এই সাধারণ সেটআপটি সম্পন্ন করার পর, অতিরিক্ত কনফিগারেশন বিকল্প এবং কার্যকারিতাগুলো (যেমন তাপমাত্রা নির্ধারণ) দেখে নিন।
সমর্থিত অ্যান্ড্রয়েড ডিভাইস এবং তাদের অন-ডিভাইস মডেল
অন-ডিভাইস ইনফারেন্সের জন্য (যা এমএল কিট-এর প্রম্পট এপিআই ব্যবহার করে), আপনি এমএল কিট ডকুমেন্টেশনে সমর্থিত ডিভাইস এবং তাদের অন-ডিভাইস মডেলগুলির একটি তালিকা খুঁজে পেতে পারেন।
শুরু করুন
এই প্রারম্ভিক ধাপগুলোতে আপনার পাঠাতে চাওয়া যেকোনো সমর্থিত প্রম্পট অনুরোধের জন্য প্রয়োজনীয় সাধারণ সেটআপ বর্ণনা করা হয়েছে।
ধাপ ১ : একটি Firebase প্রজেক্ট তৈরি করুন এবং আপনার অ্যাপটিকে Firebase-এর সাথে সংযুক্ত করুন।
Firebase কনসোলে সাইন ইন করুন এবং তারপরে আপনার ফায়ারবেস প্রজেক্টটি নির্বাচন করুন।
আপনার যদি আগে থেকে কোনো ফায়ারবেস প্রজেক্ট না থাকে, তাহলে একটি নতুন ফায়ারবেস প্রজেক্ট তৈরি করতে বাটনটিতে ক্লিক করুন এবং তারপর নিচের বিকল্পগুলোর যেকোনো একটি ব্যবহার করুন:
বিকল্প ১ : ওয়ার্কফ্লো-এর প্রথম ধাপে একটি নতুন প্রজেক্টের নাম লিখে একটি সম্পূর্ণ নতুন Firebase প্রজেক্ট তৈরি করুন (এবং এর অধীনস্থ Google Cloud প্রজেক্টটিও স্বয়ংক্রিয়ভাবে তৈরি হয়ে যাবে)।
বিকল্প ২ : একটি বিদ্যমান Google Cloud প্রজেক্টে ফায়ারবেস যোগ করতে (পৃষ্ঠার নীচে থাকা) ‘ Add Firebase to Google Cloud project’-এ ক্লিক করুন। ওয়ার্কফ্লো-এর প্রথম ধাপে, বিদ্যমান প্রজেক্টটির নাম লেখা শুরু করুন এবং তারপরে প্রদর্শিত তালিকা থেকে প্রজেক্টটি নির্বাচন করুন।
একটি Firebase প্রজেক্ট তৈরি করতে স্ক্রিনে দেখানো ওয়ার্কফ্লো-এর বাকি ধাপগুলো সম্পূর্ণ করুন। মনে রাখবেন, অনুরোধ করা হলে Firebase AI Logic SDK-গুলো ব্যবহার করার জন্য আপনাকে Google Analytics সেট আপ করতে হবে না ।
Firebase কনসোলে, Firebase AI Logic পৃষ্ঠায় যান।
আপনার প্রোজেক্টের জন্য প্রয়োজনীয় এপিআই ও রিসোর্স সেট আপ করতে সাহায্যকারী একটি নির্দেশিত ওয়ার্কফ্লো চালু করতে 'Get started'- এ ক্লিক করুন।
আপনার প্রজেক্টটি একটি ' Gemini API ' প্রোভাইডার ব্যবহার করার জন্য সেট আপ করুন।
আমরা জেমিনি ডেভেলপার এপিআই (Gemini Developer API) ব্যবহার করে কাজ শুরু করার পরামর্শ দিই। আপনি যেকোনো সময়ে ভার্টেক্স এআই জেমিনি এপিআই ( Vertex AI Gemini API) (এবং বিলিংয়ের জন্য এর প্রয়োজনীয়তা) সেট আপ করে নিতে পারেন।
জেমিনি ডেভেলপার এপিআই- এর জন্য, কনসোলটি প্রয়োজনীয় এপিআইগুলো সক্রিয় করবে এবং আপনার প্রোজেক্টে একটি জেমিনি এপিআই কী তৈরি করবে।
এই জেমিনি এপিআই কী-টি আপনার অ্যাপের কোডবেসে যোগ করবেন না । আরও জানুন।কনসোলের ওয়ার্কফ্লোতে নির্দেশ দেওয়া হলে, আপনার অ্যাপটি রেজিস্টার করতে এবং ফায়ারবেসের সাথে সংযুক্ত করতে স্ক্রিনে দেওয়া নির্দেশাবলী অনুসরণ করুন।
আপনার অ্যাপে SDK যোগ করতে এই নির্দেশিকার পরবর্তী ধাপে যান।
ধাপ ২ : প্রয়োজনীয় SDK-গুলো যোগ করুন
অ্যান্ড্রয়েডের জন্য ফায়ারবেস এআই লজিক এসডিকে (firebase-ai ) এবং Firebase AI Logic On-Device SDK (firebase-ai-ondevice জেনারেটিভ মডেলের সাথে ইন্টারঅ্যাক্ট করার জন্য এপিআই-গুলোতে অ্যাক্সেস প্রদান করে।
আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে (যেমন <project>/<app-module>/build.gradle.kts ), অ্যান্ড্রয়েডের জন্য ফায়ারবেস এআই লজিক লাইব্রেরির ডিপেন্ডেন্সিগুলো যোগ করুন:
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.1") 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.1") 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() কল করাতে পারেন। এটি অন-ডিভাইস মডেলটিকে মেমরিতে লোড করে এবং রানটাইম কম্পোনেন্টগুলোকে ইনিশিয়ালাইজ করে।
ধাপ ৪ : পরিষেবাটি চালু করুন এবং একটি মডেল ইনস্ট্যান্স তৈরি করুন।
এই পৃষ্ঠায় প্রদানকারী-নির্দিষ্ট বিষয়বস্তু এবং কোড দেখতে আপনার জেমিনি এপিআই প্রদানকারীর উপর ক্লিক করুন। |
মডেলে প্রম্পট অনুরোধ পাঠানোর আগে নিম্নলিখিত বিষয়গুলো সেট আপ করুন।
আপনার নির্বাচিত এপিআই প্রোভাইডারের জন্য সার্ভিসটি চালু করুন।
একটি
GenerativeModelইনস্ট্যান্স তৈরি করুন এবংmodeনিম্নলিখিতগুলির মধ্যে একটিতে সেট করুন। এখানকার বর্ণনাগুলি খুবই প্রাথমিক স্তরের, তবে আপনি "একটি ইনফারেন্স মোড সেট করুন" অংশে এই মোডগুলির আচরণ সম্পর্কে বিস্তারিত জানতে পারবেন।PREFER_ON_DEVICE: অন-ডিভাইস মডেল ব্যবহার করার চেষ্টা করা হবে; অন্যথায়, ক্লাউড-হোস্টেড মডেলে ফিরে যাওয়া হবে ।ONLY_ON_DEVICE: ডিভাইসের মডেল ব্যবহার করার চেষ্টা করুন; অন্যথায়, একটি ব্যতিক্রম (exception) দেখান ।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 বা enum)
বিটম্যাপ ছাড়া অন্য ধরনের ইমেজ ফাইল ইনপুট থেকে টেক্সট তৈরি করা (মেমরিতে লোড করা ইমেজ)
একাধিক ইমেজ ফাইল থেকে টেক্সট তৈরি করা
অডিও, ভিডিও এবং ডকুমেন্ট (যেমন পিডিএফ) ইনপুট থেকে টেক্সট তৈরি করা
জেমিনি বা ইমাজেন মডেল ব্যবহার করে ছবি তৈরি করা
মাল্টিমোডাল অনুরোধে URL ব্যবহার করে ফাইল সরবরাহ করা। আপনাকে অবশ্যই অন-ডিভাইস মডেলগুলিতে ফাইলগুলি ইনলাইন ডেটা হিসাবে সরবরাহ করতে হবে।
৪০০০ টোকেনের (বা প্রায় ৩০০০ ইংরেজি শব্দের) বেশি দৈর্ঘ্যের অনুরোধ পাঠানো হচ্ছে।
মাল্টি-টার্ন চ্যাট
মডেলটিকে তার প্রতিক্রিয়া তৈরি করতে সাহায্য করার জন্য সরঞ্জাম সরবরাহ করা (যেমন ফাংশন কলিং, কোড এক্সিকিউশন, ইউআরএল কনটেক্সট, এবং গুগল সার্চের সাথে সংযোগ স্থাপন)
Firebase কনসোলে AI মনিটরিং অন-ডিভাইস ইনফারেন্সের (অন-ডিভাইস লগ সহ) কোনো ডেটা দেখায় না । তবে, ক্লাউড-হোস্টেড মডেল ব্যবহার করে এমন যেকোনো ইনফারেন্সকে Firebase AI Logic- এর মাধ্যমে অন্যান্য ইনফারেন্সের মতোই মনিটর করা যায়।
অতিরিক্ত সীমাবদ্ধতা
উপরোক্ত বিষয়গুলো ছাড়াও, অন-ডিভাইস ইনফারেন্সের নিম্নলিখিত সীমাবদ্ধতাগুলো রয়েছে ( এমএল কিট ডকুমেন্টেশনে আরও জানুন):
অন-ডিভাইস ইনফারেন্সের জন্য আপনার অ্যাপের শেষ ব্যবহারকারীকে অবশ্যই একটি সমর্থিত ডিভাইস ব্যবহার করতে হবে।
আপনার অ্যাপটি শুধুমাত্র ফোরগ্রাউন্ডে থাকলেই অন-ডিভাইস ইনফারেন্স চালাতে পারবে।
ডিভাইসে ইনফারেন্সের জন্য শুধুমাত্র ইংরেজি এবং কোরিয়ান ভাষাই যাচাই করা হয়েছে।
সম্পূর্ণ অন-ডিভাইস ইনফারেন্স অনুরোধের জন্য সর্বোচ্চ টোকেন সীমা হলো ৪০০০ টোকেন। যদি আপনার অনুরোধ এই সীমা অতিক্রম করার সম্ভাবনা থাকে, তাহলে এমন একটি ইনফারেন্স মোড কনফিগার করুন যা ক্লাউড-হোস্টেড মডেল ব্যবহার করতে পারে।
আমরা এমন অন-ডিভাইস ইনফারেন্স ব্যবহার এড়িয়ে চলার পরামর্শ দিই, যেগুলোর জন্য দীর্ঘ আউটপুট (২৫৬টির বেশি টোকেন) প্রয়োজন হয়।
AICore (একটি অ্যান্ড্রয়েড সিস্টেম পরিষেবা যা ডিভাইসের মডেলগুলো পরিচালনা করে) প্রতিটি অ্যাপের জন্য একটি ইনফারেন্স কোটা প্রয়োগ করে। অল্প সময়ের মধ্যে খুব বেশি API অনুরোধ করলে
ErrorCode.BUSYপ্রতিক্রিয়া পাওয়া যাবে। আপনি যদি এই ত্রুটিটি পান, তাহলে অনুরোধটি পুনরায় চেষ্টা করার জন্য এক্সপোনেনশিয়াল ব্যাকঅফ ব্যবহার করার কথা বিবেচনা করুন। এছাড়াও, যদি কোনো অ্যাপ দীর্ঘ-মেয়াদী কোটা (উদাহরণস্বরূপ, দৈনিক কোটা) অতিক্রম করে, তাহলেErrorCode.PER_APP_BATTERY_USE_QUOTA_EXCEEDEDফেরত আসতে পারে।
Firebase AI Logic ব্যবহারের অভিজ্ঞতা সম্পর্কে মতামত দিন।