ডিভাইসে থাকা ও ক্লাউড-হোস্ট করা মডেলের সাহায্যে Android অ্যাপে হাইব্রিড অভিজ্ঞতা তৈরি করা


আপনি Firebase AI Logic ব্যবহার করে হাইব্রিড ইনফারেন্সের মাধ্যমে AI-পরিচালিত Android অ্যাপ ও ফিচার তৈরি করতে পারবেন। হাইব্রিড ইনফারেন্স উপলভ্য হলে ডিভাইস-মধ্যস্থ মডেল ব্যবহার করে ইনফারেন্স চালানোর সুবিধা দেয় এবং তা উপলভ্য না থাকলে নির্বিঘ্নে ক্লাউড-হোস্টেড মডেল ব্যবহার করে (এবং এর বিপরীত)।

এই পৃষ্ঠায় কীভাবে ক্লায়েন্ট SDK ব্যবহার করা শুরু করতে হয়, তা বর্ণনা করা হয়েছে, সেইসাথে অতিরিক্ত কনফিগারেশন বিকল্প ও ক্ষমতা দেখানো হয়েছে।

মনে রাখবেন, Firebase AI Logic-এর মাধ্যমে অন-ডিভাইস ইনফারেন্স Firebase AI Logic SDK v17.10.0+ (BoM v34.10.0+) ব্যবহার করা Android অ্যাপের জন্য কাজ করে এবং নির্দিষ্ট ডিভাইসে রান করে। এটি ML Kit-এর শর্তাবলী, এবং ML Kit-এর Gen AI সংক্রান্ত দিকগুলির জন্য নির্দিষ্ট শর্তাবলী দ্বারা পরিচালিত হয়।

সাজেস্ট করা ব্যবহার এবং কাজ করার উপযুক্ত ফিচার

সাজেস্ট করা ব্যবহারের ক্ষেত্র

  • ইনফারেন্সের জন্য অন-ডিভাইস মডেল ব্যবহার করলে এগুলি পাওয়া যায়:

    • উন্নত গোপনীয়তা
    • স্থানীয় প্রসঙ্গ
    • কোনও খরচ ছাড়াই ইনফারেন্স
    • অফলাইন ফাংশনালিটি
  • হাইব্রিড ফাংশনালিটি ব্যবহার করে এইসব সুবিধা পাওয়া যায়:

    • ডিভাইসে উপলভ্য মডেল ও ইন্টারনেট কানেক্টিভিটি ব্যবহার করে আরও বেশি দর্শকের কাছে পৌঁছানো

অন-ডিভাইস ইনফারেন্সের জন্য কাজ করে এমন ফিচার ও ক্ষমতা

অন-ডিভাইস ইনফারেন্স শুধুমাত্র সিঙ্গেল-টার্ন টেক্সট জেনারেশন (চ্যাট নয়), স্ট্রিমিং বা নন-স্ট্রিমিং আউটপুটের সাথে কাজ করে। এটি নিম্নলিখিত টেক্সট-জেনারেট করার ক্ষমতাকে সমর্থন করে:

এই পৃষ্ঠার নিচে দেওয়া অন-ডিভাইস ইনফারেন্সের জন্য এখনও উপলভ্য নয় এমন ফিচারের তালিকা পর্যালোচনা করতে ভুলবেন না।

শুরু করার আগে

নিম্নলিখিত বিষয়গুলি মনে রাখবেন:

কাজ করে এমন Android ডিভাইস ও সেগুলির অন-ডিভাইস মডেল

ডিভাইসে ইনফারেন্সের (যা ML Kit থেকে প্রম্পট API ব্যবহার করে) জন্য, আপনি ML Kit ডকুমেন্টেশনে কাজ করে এমন ডিভাইস ও সেগুলির অন-ডিভাইস মডেলের একটি তালিকা দেখতে পাবেন।

শুরু করুন

আপনি পাঠাতে চান এমন যেকোনও কাজ করে এমন প্রম্পট অনুরোধের জন্য প্রয়োজনীয় সাধারণ সেট-আপ এই 'শুরু করা যাক' ধাপগুলিতে বর্ণনা করা হয়েছে।

ধাপ ১: Firebase প্রোজেক্ট সেট-আপ করুন এবং Firebase-এর সাথে আপনার অ্যাপ কানেক্ট করুন

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

  2. Firebase কনসোলে, AI পরিষেবা > AI লজিক বিকল্পে যান।

  3. আপনার প্রোজেক্টের জন্য প্রয়োজনীয় API ও রিসোর্স সেট-আপ করতে সাহায্য করে এমন নির্দেশিত ওয়ার্কফ্লো লঞ্চ করতে, শুরু করুন বিকল্পে ক্লিক করুন।

  4. প্রম্পট করা হলে, আপনার অ্যাপ রেজিস্টার করতে এবং অ্যাপে Firebase কনফিগারেশন যোগ করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করুন।

  5. "Gemini API প্রদানকারী" বেছে নিতে বলা হলে, আমরা Gemini Developer API বেছে নেওয়ার সাজেশন দিই, এটি আপনাকে কোনও খরচ ছাড়াই দ্রুত শুরু করতে দেয়।

    পরে যেকোনও সময়, আপনি সবসময় Agent Platform Gemini API (formerly Vertex AI) সেট-আপ করতে পারবেন (এবং বিলিংয়ের জন্য এর প্রয়োজনীয়তা)।

  6. Firebase AI Logic-এর জন্য প্রয়োজনীয় API ও সংশ্লিষ্ট পরিষেবা সেট-আপ করতে ওয়ার্কফ্লোতে চালিয়ে যান।

    ২০২৬ সালের জুলাই মাসের শুরু থেকে, ওয়ার্কফ্লোয়ের এই পর্যায়ে AI Logic-এর জন্য অটোমেটিক এনফোর্সমেন্ট Firebase App Check প্রয়োগ করা হবে, যা Gemini API সুরক্ষিত রাখার জন্য একটি গুরুত্বপূর্ণ পরিষেবা, যখন এটি আপনার অ্যাপ থেকে সরাসরি অ্যাক্সেস করা হয়। শুরু করার অংশ হিসেবে (এই গাইডে পরে ধাপগুলি দেখুন), App Check এনফোর্স করা হলে, লোকাল ডেভেলপমেন্টের জন্য আপনাকে App Check ডিবাগ প্রোভাইডার কনফিগার করতে হবে।

  7. আপনার অ্যাপে প্রয়োজনীয় SDK যোগ করতে, এই গাইডের পরবর্তী ধাপ অনুসরণ করুন।

ধাপ ২: প্রয়োজনীয় SDK যোগ করুন

জেনারেটিভ মডেলের সাথে ইন্টার‍্যাক্ট করার জন্য API-তে অ্যাক্সেস প্রদান করে Firebase AI Logic On-Device SDK (firebase-ai-ondevice) সহ Firebase AI Logic Android-এর জন্য SDK (firebase-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 এর জন্য নির্দেশিত সেট-আপ ওয়ার্কফ্লোর অংশ হিসেবে, Firebase App Check অটোমেটিক প্রয়োগ করা হবে যাতে Gemini API সুরক্ষিত থাকে। লোকাল ডেভেলপমেন্টের জন্য, আপনাকে App Check ডিবাগ প্রোভাইডার কনফিগার করতে হবে যাতে App Check-এর এনফোর্সমেন্ট বজায় রেখেই অ্যাটেস্টেশন বাইপাস করা যায়।

    অনুসরণ করুন।
  1. আপনার ডিবাগ বিল্ডে, ডিবাগ প্রোভাইডার ফ্যাক্টরি ব্যবহার করার জন্য App Check কনফিগার করুন:

    Kotlin

    Firebase.initialize(context = this)
    Firebase.appCheck.installAppCheckProviderFactory(
        DebugAppCheckProviderFactory.getInstance(),
    )
    

    জাভা

    FirebaseApp.initializeApp(/*context=*/ this);
    FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
    firebaseAppCheck.installAppCheckProviderFactory(
            DebugAppCheckProviderFactory.getInstance());
    
  2. আপনার ডিবাগ টোকেন পান:

    1. এমুলেটরে বা আপনার টেস্ট ডিভাইসে অ্যাপ রান করান।

    2. আপনার লগে App Check ডিবাগ টোকেন খুঁজুন। যেমন:

      D DebugAppCheckProvider: Enter this debug secret into the allow list
      in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
      
    3. টোকেনটি কপি করুন (যেমন, 123a4567-b89c-12d3-e456-789012345678)।

  3. App Check-এর সাথে আপনার ডিবাগ টোকেন রেজিস্টার করুন:

    1. Firebase কনসোলে, নিরাপত্তা > অ্যাপ চেক > অ্যাপ ট্যাব বিকল্পে যান।

    2. আপনার অ্যাপ খুঁজে নিন, ওভারফ্লো মেনুতে ক্লিক করুন () এবং তারপরে ডিবাগ টোকেন ম্যানেজ করুন বিকল্প বেছে নিন।

    3. আপনার ডিবাগ টোকেন রেজিস্টার করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করুন।

ডিবাগ প্রদানকারী সম্পর্কে আরও তথ্য (নতুন ডিবাগ টোকেন কীভাবে পাবেন তা সহ) পেতে, অফিসিয়াল 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 প্রদানকারীর আইকনে ক্লিক করুন।

মডেলকে প্রম্পট অনুরোধ পাঠানোর আগে নিম্নলিখিত বিষয়গুলি সেট-আপ করুন।

  1. আপনার বেছে নেওয়া API প্রদানকারীর জন্য পরিষেবাটি ইনিশিয়ালাইজ করুন।

  2. 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_IN_CLOUDইনফারেন্স মোড ব্যবহার করার সাজেশন দিই।

  • Bitmap (মেমরিতে লোড করা ছবি) ছাড়া অন্য ধরনের ইনপুট ইমেজ ফাইল থেকে টেক্সট জেনারেট করা

  • একাধিক ছবি ফাইল থেকে টেক্সট জেনারেট করা

  • অডিও, ভিডিও ও ডকুমেন্ট (যেমন, পিডিএফ) ইনপুট থেকে টেক্সট তৈরি করা

  • Gemini মডেল ব্যবহার করে ছবি জেনারেট করা

  • মাল্টিমোডাল অনুরোধে URL ব্যবহার করে ফাইল প্রদান করা। ডিভাইসে থাকা মডেলকে ইনলাইন ডেটা হিসেবে ফাইল দিতে হবে

  • ৪০০০ টোকেনের (বা আনুমানিক ৩০০০ ইংরেজি শব্দ) বেশি অনুরোধ পাঠানো।

  • মাল্টি-টার্ন চ্যাট

  • মডেলকে উত্তর জেনারেট করতে সাহায্য করার জন্য টুল প্রদান করা (যেমন, ফাংশন কলিং, কোড এক্সিকিউশন, URL কনটেক্সট, Google Search-এর মাধ্যমে গ্রাউন্ডিং এবং Google Maps-এর মাধ্যমে গ্রাউন্ডিং)

Firebase কনসোলে AI মনিটরিং, অন-ডিভাইস ইনফারেন্স (অন-ডিভাইস লগ সহ)-এর জন্য কোনও ডেটা দেখায় না। তবে, ক্লাউড-হোস্ট করা মডেল ব্যবহার করে যেকোনও ইনফারেন্সকে Firebase AI Logic-এর মাধ্যমে অন্যান্য ইনফারেন্সের মতো মনিটর করা যেতে পারে।

অতিরিক্ত সীমাবদ্ধতা

উপরে উল্লেখ করা বিষয়গুলি ছাড়াও, অন-ডিভাইস ইনফারেন্সের নিম্নলিখিত সীমাবদ্ধতা আছে (এই বিষয়ে ML Kit ডকুমেন্টেশন থেকে আরও জানুন):

  • আপনার অ্যাপের গ্রাহককে অবশ্যই সাপোর্ট করে এমন ডিভাইস ব্যবহার করতে হবে।

  • আপনার অ্যাপ ফোরগ্রাউন্ডে থাকলে তবেই এটি অন-ডিভাইস ইনফারেন্স চালাতে পারবে।

  • ডিভাইসে ইনফারেন্সের জন্য শুধুমাত্র ইংরেজি ও কোরিয়ান ভাষা যাচাই করা হয়েছে।

  • সম্পূর্ণ অন-ডিভাইস ইনফারেন্স অনুরোধের জন্য সর্বাধিক টোকেন সীমা হল ৪০০০ টোকেন। আপনার অনুরোধ এই সীমা অতিক্রম করতে পারে বলে মনে হলে, নিশ্চিত করুন যে আপনি এমন একটি ইনফারেন্স মোড কনফিগার করেছেন যা ক্লাউড-হোস্ট করা মডেল ব্যবহার করতে পারে।

  • আমরা সাজেস্ট করি যে ডিভাইসে ইনফারেন্সের এমন ব্যবহার এড়িয়ে চলুন যেখানে অনেক বড় আউটপুট (২৫৬ টোকেনের বেশি) প্রয়োজন।

  • AICore (একটি Android সিস্টেম পরিষেবা যা ডিভাইসে থাকা মডেল ম্যানেজ করে) একটি ইনফারেন্স কোটা প্রতি অ্যাপে প্রয়োগ করে। অল্প সময়ের মধ্যে অনেক বেশি API অনুরোধ করলে ErrorCode.BUSY উত্তর পাওয়া যাবে। আপনি এই সমস্যাটি পেলে, অনুরোধ আবার করার জন্য এক্সপোনেনশিয়াল ব্যাকঅফ ব্যবহার করার কথা বিবেচনা করুন। এছাড়াও, ErrorCode.PER_APP_BATTERY_USE_QUOTA_EXCEEDED ফেরত দেওয়া হতে পারে যদি কোনও অ্যাপ দীর্ঘ-মেয়াদী কোটা (যেমন, দৈনিক কোটা) পেরিয়ে যায়।


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


অন্য কিছু উল্লেখ না করা থাকলে, এই পৃষ্ঠার কন্টেন্ট Creative Commons Attribution 4.0 License-এর অধীনে এবং কোডের নমুনাগুলি Apache 2.0 License-এর অধীনে লাইসেন্স প্রাপ্ত। আরও জানতে, Google Developers সাইট নীতি দেখুন। Java হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।

2026-10-09 UTC-তে শেষবার আপডেট করা হয়েছে।