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

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

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

বান্ডিল আনবান্ডেড
লাইব্রেরির নাম com.google.mlkit:smart-reply com.google.android.gms:play-services-mlkit-smart-reply
বাস্তবায়ন মডেলটি বিল্ড টাইমে আপনার অ্যাপের সাথে স্ট্যাটিকভাবে লিঙ্ক করা থাকে। মডেলটি গতিশীলভাবে Google Play পরিষেবার মাধ্যমে ডাউনলোড করা হয়।
অ্যাপের আকারের প্রভাব প্রায় 5.7 MB আকার বৃদ্ধি. প্রায় 200 KB আকার বৃদ্ধি.
প্রারম্ভিক সময় মডেল অবিলম্বে উপলব্ধ. প্রথম ব্যবহারের আগে মডেল ডাউনলোড করার জন্য অপেক্ষা করতে হতে পারে।

চেষ্টা কর

তুমি শুরু করার আগে

  1. আপনার প্রকল্প-স্তরের build.gradle ফাইলে, আপনার buildscript এবং allprojects বিভাগেই Google-এর Maven সংগ্রহস্থল অন্তর্ভুক্ত করা নিশ্চিত করুন৷

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

    • আপনার অ্যাপের সাথে মডেল বান্ডিল করতে:
    dependencies {
      // ...
      // Use this dependency to bundle the model with your app
      implementation 'com.google.mlkit:smart-reply:17.0.3'
    }
    
    • Google Play পরিষেবাগুলিতে মডেলটি ব্যবহার করতে:
    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 পরিষেবাগুলিতে মডেলটি ব্যবহার করতে চান, তাহলে প্লে স্টোর থেকে আপনার অ্যাপ ইনস্টল হওয়ার পরে আপনি ডিভাইসে মডেলটিকে স্বয়ংক্রিয়ভাবে ডাউনলোড করতে আপনার অ্যাপটি কনফিগার করতে পারেন। আপনার অ্যাপের 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- এর মাধ্যমে ডাউনলোডের অনুরোধ করতে পারেন।

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

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

    স্মার্ট উত্তর তৈরি করতে, আপনি 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));

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

    টাইমস্ট্যাম্প ব্যবহারকারী আইডি স্থানীয় ব্যবহারকারী বার্তা
    বৃহস্পতি ফেব্রুয়ারি 21 13:13:39 PST 2019 সত্য তুমি তোমার পথে?
    বৃহস্পতি ফেব্রুয়ারি 21 13:15:03 PST 2019 FRIEND0 মিথ্যা দেরিতে চলছে, দুঃখিত!

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

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