iOS पर एमएल किट की मदद से स्मार्ट जवाब जनरेट करना

डिवाइस पर मौजूद मैसेज का जवाब देने के लिए, एमएल किट का इस्तेमाल किया जा सकता है मॉडल.

स्मार्ट जवाब जनरेट करने के लिए, आपको ML किट में हाल ही के मैसेज का लॉग पास करना होगा. बातचीत. अगर ML Kit को लगता है कि बातचीत अंग्रेज़ी में है, और बातचीत का विषय ऐसा नहीं है जो संवेदनशील हो, एमएल किट ज़्यादा से ज़्यादा तीन जवाब जनरेट करता है, जिनका सुझाव अपने उपयोगकर्ता को दिया जा सकता है.

शुरू करने से पहले

  1. अगर आपने पहले से अपने ऐप्लिकेशन में Firebase नहीं जोड़ा है, तो ऐसा करने के लिए शुरुआती निर्देश में दिए गए चरणों को पूरा करें.
  2. अपनी Podfile में ML Kit लाइब्रेरी शामिल करें:
    pod 'Firebase/MLCommon', '6.25.0'
    pod 'Firebase/MLNLSmartReply', '6.25.0'
    
    प्रोजेक्ट के Pods को इंस्टॉल या अपडेट करने के बाद, अपना Xcode ज़रूर खोलें प्रोजेक्ट को .xcworkspace का इस्तेमाल करके बनाया गया है.
  3. अपने ऐप्लिकेशन में Firebase इंपोर्ट करें:

    Swift

    import Firebase

    Objective-C

    @import Firebase;

1. बातचीत के इतिहास के लिए ऑब्जेक्ट बनाएं

स्मार्ट जवाब जनरेट करने के लिए, ML Kit को समय के हिसाब से क्रम में पास किया जाता है TextMessage ऑब्जेक्ट, जिनमें सबसे पुराने टाइमस्टैंप पहले हैं. जब भी उपयोगकर्ता मैसेज भेजता या रिसीव करता है, मैसेज, उसका टाइमस्टैंप, और मैसेज जोड़ें बातचीत के इतिहास को भेजने वाले का यूज़र आईडी.

यूज़र आईडी कोई भी ऐसी स्ट्रिंग हो सकती है जिससे ईमेल भेजने वाले की खास पहचान की जा सके बातचीत. यह ज़रूरी नहीं है कि यूज़र आईडी किसी उपयोगकर्ता के डेटा से जुड़ा हो. और यूज़र आईडी का बातचीत के बीच में एक जैसा होना ज़रूरी नहीं है या स्मार्ट जवाब जनरेटर को शुरू करना.

अगर मैसेज उस व्यक्ति ने भेजा है जिसे जवाब के सुझाव चाहिए, तो यह सेट करें isLocalUser को सही के लिए सेट किया गया है.

Swift

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)

Objective-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 पीएसटी 2019 सही क्या आप अपने रास्ते में हैं?
गुरुवार 21 फ़रवरी 13:15:03 पीएसटी 2019 दोस्त0 गलत मुझे देर हो रही है, माफ़ करें!

ध्यान दें कि ऊपर दिए गए उदाहरण में हाल ही का मैसेज किसी गैर-स्थानीय मैसेज से आया है उपयोगकर्ता. यह अहम है, क्योंकि एमएल किट ऐसे जवाब सुझाती है जो भेजे जाने के लिए होते हैं आपके ऐप्लिकेशन के उपयोगकर्ता से: स्थानीय उपयोगकर्ता. पक्का करें कि आपने पास ML किट एक बातचीत लॉग है, जिसके आखिर में एक मैसेज होता है, जिसे आपका उपयोगकर्ता जवाब देना चाहते हैं.

2. मैसेज के जवाब पाएं

किसी मैसेज के स्मार्ट जवाब जनरेट करने के लिए, SmartReply का इंस्टेंस पाएं और पास बातचीत के इतिहास को इसकी suggestReplies(for:completion:) तरीके से जोड़ें:

Swift

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.
        // ...
    }
}

Objective-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 ऑब्जेक्ट को पूरा करने वाला हैंडलर. इस ऑब्जेक्ट में, सुझाए गए ज़्यादा से ज़्यादा तीन आइटम की सूची शामिल है जवाब, जिन्हें अपने उपयोगकर्ता को दिखाया जा सकता है:

Swift

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

Objective-C

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

ध्यान दें कि अगर मॉडल को मशीन लर्निंग के बारे में नहीं पता, तो हो सकता है कि वह नतीजे न दिखाए सुझाए गए जवाब कितने काम के हैं, लेकिन इनपुट बातचीत अंग्रेज़ी भाषा हो या मॉडल, संवेदनशील विषय-वस्तु का पता लगाता हो.