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

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

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

इसे आज़माएं

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

  1. अपनी Podfile में, नीचे दिए गए ML Kit पॉड शामिल करें:
    pod 'GoogleMLKit/SmartReply', '3.2.0'
    
  2. अपने प्रोजेक्ट के Pods को इंस्टॉल या अपडेट करने के बाद, इसके .xcworkspace. ML Kit, Xcode के 12.4 या इसके बाद के वर्शन पर काम करता है.

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:
MLKTextMessage *message = [[MLKTextMessage alloc]
        initWithText:@"How are you?"
        timestamp:[NSDate date].timeIntervalSince1970
        userID:userId
        isLocalUser:NO];
[conversation addObject:message];

बातचीत के इतिहास का ऑब्जेक्ट कैसा दिखता है, यह जानने के लिए नीचे दिया गया उदाहरण देखें:

टाइमस्टैंप userID isLocalUser मैसेज
गुरुवार 21 फ़रवरी 13:13:39 पीएसटी 2019 सही क्या आप अपने रास्ते में हैं?
गुरुवार 21 फ़रवरी 13:15:03 पीएसटी 2019 दोस्त0 गलत मुझे देर हो रही है, माफ़ करें!

ML Kit, बातचीत के इतिहास में, पिछले मैसेज के जवाबों का सुझाव देती है. आखिरी मैसेज एक गैर-स्थानीय उपयोगकर्ता से होना चाहिए. ऊपर दिए गए उदाहरण में, बातचीत का आखिरी मैसेज गैर-स्थानीय उपयोगकर्ता FRIEND0 से है. जब इस लॉग के लिए पास एमएल किट का इस्तेमाल किया जाता है, तो यह FRIENDO के संदेश का जवाब: "देर से चल रही है, माफ़ करें!"

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

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

Swift

SmartReply.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 result doesn't contain any suggestions.
    } else if (result.status == .success) {
        // Successfully suggested smart replies.
        // ...
    }
}

Objective-C

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

अगर कार्रवाई पूरी होती है, तो SmartReplySuggestionResult ऑब्जेक्ट को पूरा करने वाला हैंडलर. इस ऑब्जेक्ट में, सुझाए गए तीन से ज़्यादा आइटम की सूची शामिल है जवाब, जिन्हें अपने उपयोगकर्ता को दिखाया जा सकता है:

Swift

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

Objective-C

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

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