iOS-এ ML কিট দিয়ে স্মার্ট উত্তর তৈরি করুন

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

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

আপনি শুরু করার আগে

  1. আপনি যদি ইতিমধ্যে আপনার অ্যাপে Firebase যোগ না করে থাকেন, তাহলে শুরু করার নির্দেশিকাতে দেওয়া ধাপগুলি অনুসরণ করে তা করুন৷
  2. আপনার পডফাইলে এমএল কিট লাইব্রেরি অন্তর্ভুক্ত করুন:
    pod 'Firebase/MLCommon', '6.25.0'
    pod 'Firebase/MLNLSmartReply', '6.25.0'
    
    আপনি আপনার প্রোজেক্টের পড ইনস্টল বা আপডেট করার পরে, আপনার Xcode প্রোজেক্ট এর .xcworkspace ব্যবহার করে খুলতে ভুলবেন না।
  3. আপনার অ্যাপে, Firebase আমদানি করুন:

    সুইফট

    import Firebase

    উদ্দেশ্য-C

    @import Firebase;

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

স্মার্ট উত্তর তৈরি করার জন্য, আপনি ML Kit-কে প্রথমতম টাইমস্ট্যাম্প সহ, TextMessage অবজেক্টের একটি কালানুক্রমিক-অর্ডার অ্যারে পাস করেন। যখনই ব্যবহারকারী একটি বার্তা পাঠান বা গ্রহণ করেন, কথোপকথনের ইতিহাসে বার্তাটি, তার টাইমস্ট্যাম্প এবং বার্তা প্রেরকের ব্যবহারকারীর আইডি যোগ করুন।

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

যদি বার্তাটি ব্যবহারকারীর দ্বারা প্রেরিত হয় যাকে আপনি উত্তরের পরামর্শ দিতে চান, isLocalUser সেট করুন সত্য।

সুইফট

var conversation: [TextMessage] = []

// Then, for each message sent and received:
let message = TextMessage(
    text: "How are you?",
    timestamp: Date().timeIntervalSince1970,
    userID: "userId",
    isLocalUser: false)
conversation.append(message)

উদ্দেশ্য-C

NSMutableArray *conversation = [NSMutableArray array];

// Then, for each message sent and received:
FIRTextMessage *message = [[FIRTextMessage alloc]
        initWithText:@"How are you?"
        timestamp:[NSDate date].timeIntervalSince1970
        userID:userId
        isLocalUser:NO];
[conversation addObject:message];

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

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

উল্লেখ্য যে উপরের উদাহরণে সবচেয়ে সাম্প্রতিক বার্তাটি একজন অ-স্থানীয় ব্যবহারকারীর কাছ থেকে এসেছে। এটি গুরুত্বপূর্ণ কারণ এমএল কিট আপনার অ্যাপের ব্যবহারকারী: স্থানীয় ব্যবহারকারীর দ্বারা পাঠানোর উদ্দেশ্যে উত্তরের পরামর্শ দেয়। আপনার নিশ্চিত হওয়া উচিত যে আপনি ML Kit-এ একটি কথোপকথন লগ পাস করছেন যা একটি বার্তা দিয়ে শেষ হয় যা আপনার ব্যবহারকারী উত্তর দিতে চাইতে পারে।

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

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

সুইফট

let naturalLanguage = NaturalLanguage.naturalLanguage()
naturalLanguage.smartReply().suggestReplies(for: conversation) { result, error in
    guard error == nil, let result = result else {
        return
    }
    if (result.status == .notSupportedLanguage) {
        // The conversation's language isn't supported, so the
        // the result doesn't contain any suggestions.
    } else if (result.status == .success) {
        // Successfully suggested smart replies.
        // ...
    }
}

উদ্দেশ্য-C

FIRNaturalLanguage *naturalLanguage = [FIRNaturalLanguage naturalLanguage];
FIRSmartReply *smartReply = [naturalLanguage smartReply];
[smartReply suggestRepliesForMessages:inputText
                           completion:^(FIRSmartReplySuggestionResult * _Nullable result,
                                        NSError * _Nullable error) {
  if (error || !result) {
    return;
  }
  if (result.status == FIRSmartReplyResultStatusNotSupportedLanguage) {
      // The conversation's language isn't supported, so the
      // the result doesn't contain any suggestions.
  } else if (result.status == FIRSmartReplyResultStatusSuccess) {
      // Successfully suggested smart replies.
      // ...
  }
}];
]

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

সুইফট

for suggestion in result.suggestions {
  print("Suggested reply: \(suggestion.text)")
}

উদ্দেশ্য-C

for (FIRSmartReplySuggestion *suggestion in result.suggestions) {
  NSLog(@"Suggested reply: %@", suggestion.text);
}

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