Android-এ ML Kit-এর সাহায্যে স্মার্ট উত্তর তৈরি করুন

এমএল কিট একটি অন-ডিভাইস মডেল ব্যবহার করে বার্তাগুলির সংক্ষিপ্ত উত্তর তৈরি করতে পারে।

স্মার্ট উত্তর তৈরি করতে, আপনাকে কথোপকথনের সাম্প্রতিক বার্তাগুলির একটি লগ ML Kit-কে দিতে হবে। যদি ML Kit নির্ধারণ করে যে কথোপকথনটি ইংরেজিতে, এবং কথোপকথনে সম্ভাব্য সংবেদনশীল বিষয়বস্তু নেই, তাহলে ML Kit সর্বাধিক তিনটি উত্তর তৈরি করবে, যা আপনি আপনার ব্যবহারকারীকে সুপারিশ করতে পারবেন।

বান্ডিলযুক্ত আনবান্ডেলড
লাইব্রেরির নাম com.google.mlkit:smart-reply com.google.android.gms:play-services-mlkit-smart-reply
বাস্তবায়ন মডেলটি তৈরির সময় আপনার অ্যাপের সাথে স্ট্যাটিক্যালি লিঙ্ক করা থাকে। মডেলটি গুগল প্লে সার্ভিসেসের মাধ্যমে গতিশীলভাবে ডাউনলোড করা হয়।
অ্যাপের আকারের প্রভাব প্রায় ৫.৭ মেগাবাইট সাইজ বৃদ্ধি। প্রায় ২০০ কিলোবাইট আকার বৃদ্ধি।
আরম্ভের সময় মডেলটি অবিলম্বে পাওয়া যাচ্ছে। প্রথম ব্যবহারের আগে মডেলটি ডাউনলোড হওয়ার জন্য অপেক্ষা করতে হতে পারে।

চেষ্টা করে দেখো

শুরু করার আগে

  1. আপনার প্রজেক্ট-লেভেল build.gradle ফাইলে, আপনার buildscript এবং allprojects উভয় বিভাগেই Google এর Maven রিপোজিটরি অন্তর্ভুক্ত করতে ভুলবেন না।

  2. আপনার মডিউলের অ্যাপ-লেভেল গ্রেডল ফাইলে ML কিট অ্যান্ড্রয়েড লাইব্রেরির জন্য নির্ভরতা যোগ করুন, যা সাধারণত app/build.gradle হয়। আপনার প্রয়োজনের উপর ভিত্তি করে নিম্নলিখিত নির্ভরতাগুলির মধ্যে একটি বেছে নিন:

    • আপনার অ্যাপের সাথে মডেলটি বান্ডেল করতে:
    dependencies {
      // ...
      // Use this dependency to bundle the model with your app
      implementation 'com.google.mlkit:smart-reply:17.0.4'
    }
    
    • গুগল প্লে সার্ভিসে মডেলটি ব্যবহার করতে:
    dependencies {
      // ...
      // Use this dependency to use the dynamically downloaded model in Google Play Services
      implementation 'com.google.android.gms:play-services-mlkit-smart-reply:16.0.0-beta1'
    }
    

    যদি আপনি Google Play Services-এ মডেলটি ব্যবহার করতে চান, তাহলে Play Store থেকে আপনার অ্যাপটি ইনস্টল করার পরে ডিভাইসে স্বয়ংক্রিয়ভাবে মডেলটি ডাউনলোড করার জন্য আপনার অ্যাপটি কনফিগার করতে পারেন। আপনার অ্যাপের AndroidManifest.xml ফাইলে নিম্নলিখিত ঘোষণাটি যোগ করে:

    <application ...>
          ...
          <meta-data
              android:name="com.google.mlkit.vision.DEPENDENCIES"
              android:value="smart_reply" >
          <!-- To use multiple models: android:value="smart_reply,model2,model3" -->
    </application>
    

    আপনি Google Play পরিষেবা ModuleInstallClient API এর মাধ্যমে মডেলের উপলব্ধতা স্পষ্টভাবে পরীক্ষা করতে পারেন এবং ডাউনলোডের অনুরোধ করতে পারেন।

    যদি আপনি ইনস্টল-টাইম মডেল ডাউনলোড সক্ষম না করেন বা স্পষ্ট ডাউনলোডের অনুরোধ না করেন, তাহলে স্মার্ট রিপ্লাই জেনারেটর চালানোর সময় প্রথমবার মডেলটি ডাউনলোড হয়ে যাবে। ডাউনলোড সম্পূর্ণ হওয়ার আগে আপনার করা অনুরোধগুলি কোনও ফলাফল দেয় না।

    ১. একটি কথোপকথনের ইতিহাসের বস্তু তৈরি করুন

    স্মার্ট উত্তর তৈরি করতে, আপনাকে ML Kit-কে একটি কালানুক্রমিকভাবে সাজানো TextMessage অবজেক্টের List দিতে হবে, যেখানে প্রথমে প্রথম টাইমস্ট্যাম্প থাকবে।

    যখনই ব্যবহারকারী কোনও বার্তা পাঠাবেন, তখন কথোপকথনের ইতিহাসে বার্তাটি এবং তার টাইমস্ট্যাম্প যোগ করুন:

    কোটলিন

    conversation.add(TextMessage.createForLocalUser(
            "heading out now", System.currentTimeMillis()))

    জাভা

    conversation.add(TextMessage.createForLocalUser(
            "heading out now", System.currentTimeMillis()));

    যখনই ব্যবহারকারী কোনও বার্তা পান, তখন কথোপকথনের ইতিহাসে বার্তাটি, তার টাইমস্ট্যাম্প এবং প্রেরকের ব্যবহারকারী আইডি যোগ করুন। ব্যবহারকারী আইডি যেকোনো স্ট্রিং হতে পারে যা কথোপকথনের মধ্যে প্রেরককে অনন্যভাবে সনাক্ত করে। ব্যবহারকারী আইডি কোনও ব্যবহারকারীর ডেটার সাথে সঙ্গতিপূর্ণ হতে হবে না এবং ব্যবহারকারী আইডি স্মার্ট উত্তর জেনারেটরের কথোপকথন বা আহ্বানের মধ্যে সামঞ্জস্যপূর্ণ হতে হবে না।

    কোটলিন

    conversation.add(TextMessage.createForRemoteUser(
            "Are you coming back soon?", System.currentTimeMillis(), userId))

    জাভা

    conversation.add(TextMessage.createForRemoteUser(
            "Are you coming back soon?", System.currentTimeMillis(), userId));

    একটি কথোপকথনের ইতিহাসের বস্তুটি নিম্নলিখিত উদাহরণের মতো দেখাচ্ছে:

    টাইমস্ট্যাম্প ব্যবহারকারী আইডি isLocalUser সম্পর্কে বার্তা
    বৃহস্পতিবার ২১ ফেব্রুয়ারী ১৩:১৩:৩৯ পিএসটি ২০১৯ সত্য তুমি কি পথে আছো?
    বৃহস্পতিবার ২১ ফেব্রুয়ারী ১৩:১৫:০৩ পিএসটি ২০১৯ বন্ধু০ মিথ্যা দেরি হয়ে গেল, দুঃখিত!

    ML Kit কথোপকথনের ইতিহাসের শেষ বার্তার উত্তরের পরামর্শ দেয়। শেষ বার্তাটি স্থানীয় নয় এমন ব্যবহারকারীর কাছ থেকে আসা উচিত। উপরের উদাহরণে, কথোপকথনের শেষ বার্তাটি স্থানীয় নয় এমন ব্যবহারকারী FRIEND0 এর কাছ থেকে এসেছে। যখন আপনি এই লগটি ML Kit ব্যবহার করেন, তখন এটি FRIENDO এর বার্তার উত্তরের পরামর্শ দেয়: "দেরি করে চলেছি, দুঃখিত!"

    2. বার্তার উত্তর পান

    কোনও বার্তার স্মার্ট উত্তর তৈরি করতে, SmartReplyGenerator এর একটি উদাহরণ পান এবং কথোপকথনের ইতিহাসটি এর suggestReplies() পদ্ধতিতে প্রেরণ করুন:

    কোটলিন

    val smartReplyGenerator = SmartReply.getClient()
    smartReply.suggestReplies(conversation)
            .addOnSuccessListener { result ->
                if (result.getStatus() == SmartReplySuggestionResult.STATUS_NOT_SUPPORTED_LANGUAGE) {
                    // The conversation's language isn't supported, so
                    // the result doesn't contain any suggestions.
                } else if (result.getStatus() == SmartReplySuggestionResult.STATUS_SUCCESS) {
                    // Task completed successfully
                    // ...
                }
            }
            .addOnFailureListener {
                // Task failed with an exception
                // ...
            }

    জাভা

    SmartReplyGenerator smartReply = SmartReply.getClient();
    smartReply.suggestReplies(conversation)
            .addOnSuccessListener(new OnSuccessListener() {
                @Override
                public void onSuccess(SmartReplySuggestionResult result) {
                    if (result.getStatus() == SmartReplySuggestionResult.STATUS_NOT_SUPPORTED_LANGUAGE) {
                        // The conversation's language isn't supported, so
                        // the result doesn't contain any suggestions.
                    } else if (result.getStatus() == SmartReplySuggestionResult.STATUS_SUCCESS) {
                        // Task completed successfully
                        // ...
                    }
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    // Task failed with an exception
                    // ...
                }
            });

    যদি অপারেশনটি সফল হয়, তাহলে একটি SmartReplySuggestionResult অবজেক্ট সাকসেস হ্যান্ডলারের কাছে পাঠানো হবে। এই অবজেক্টে সর্বাধিক তিনটি প্রস্তাবিত উত্তরের একটি তালিকা রয়েছে, যা আপনি আপনার ব্যবহারকারীর কাছে উপস্থাপন করতে পারেন:

    কোটলিন

    for (suggestion in result.suggestions) {
        val replyText = suggestion.text
    }

    জাভা

    for (SmartReplySuggestion suggestion : result.getSuggestions()) {
        String replyText = suggestion.getText();
    }

    মনে রাখবেন যে যদি মডেলটি প্রস্তাবিত উত্তরগুলির প্রাসঙ্গিকতা সম্পর্কে আত্মবিশ্বাসী না হয়, ইনপুট কথোপকথনটি ইংরেজিতে না থাকে, অথবা মডেলটি সংবেদনশীল বিষয়বস্তু সনাক্ত করে তবে ML Kit ফলাফল নাও দিতে পারে।