मशीन लर्निंग (ML) किट, डिवाइस पर मौजूद मॉडल का इस्तेमाल करके मैसेज के छोटे जवाब दे सकती है.
स्मार्ट जवाब जनरेट करने के लिए, किसी बातचीत में एमएल किट को हाल ही के मैसेज का लॉग दें. अगर ML किट तय करती है कि बातचीत अंग्रेज़ी में है और बातचीत में संवेदनशील विषय नहीं है, तो ML किट ज़्यादा से ज़्यादा तीन जवाब जनरेट करेगा, जिसका सुझाव आप अपने उपयोगकर्ता को दे सकते हैं.
इसे आज़माएं
- इस एपीआई के इस्तेमाल का उदाहरण देखने के लिए, ऐप्लिकेशन के नमूने का इस्तेमाल करें.
शुरू करने से पहले
- अपनी Podfile में ये ML किट पॉड शामिल करें:
pod 'GoogleMLKit/SmartReply', '3.2.0'
- अपने प्रोजेक्ट के पॉड इंस्टॉल करने या अपडेट करने के बाद, अपने
.xcworkspace
कोड का इस्तेमाल करके Xcode प्रोजेक्ट खोलें. ML किट, Xcode के 12.4 या इसके बाद के वर्शन पर काम करती है.
1. बातचीत के इतिहास वाला ऑब्जेक्ट बनाएं
स्मार्ट जवाब जनरेट करने के लिए, आप TextMessage
ऑब्जेक्ट की क्रम से व्यवस्थित की गई श्रेणी
का इस्तेमाल करते हैं, जिसमें सबसे पहले टाइमस्टैंप होता है. जब भी उपयोगकर्ता
कोई मैसेज भेजता या पाया जाता है, तो मैसेज, उसके टाइमस्टैंप, और मैसेज भेजने वाले के
यूज़र आईडी को बातचीत के इतिहास में जोड़ें.
User-ID कोई भी स्ट्रिंग हो सकती है जो बातचीत में भेजने वाले की खास पहचान करती है. User-ID किसी भी उपयोगकर्ता के डेटा से मेल खाना ज़रूरी नहीं है. साथ ही, User-ID के लिए स्मार्ट जवाब जनरेट करने वाले व्यक्ति की बातचीत या उसे शुरू करने के बीच एक जैसा होना ज़रूरी नहीं है.
अगर मैसेज किसी ऐसे उपयोगकर्ता ने भेजा है जिसका जवाब देना है, तो 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 | true | क्या आप रास्ते में हैं? | |
गुरुवार 21 फ़रवरी 13:15:03 पीएसटी 2019 | फ़्रेंडली | false | देर हो रही है, माफ़ करें! |
ML किट, बातचीत के इतिहास में पिछले मैसेज के जवाब देती है. आखिरी मैसेज किसी स्थानीय उपयोगकर्ता से होना चाहिए. ऊपर दिए गए उदाहरण में, बातचीत का आखिरी मैसेज गैर-स्थानीय उपयोगकर्ता friend0 का है. जब आप इस लॉग को एमएल किट पास करने का इस्तेमाल करते हैं, तो यह फ़्रेंडलीओ के मैसेज के जवाब देता है: "देरी से चल रहा है, माफ़ करें!"
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); }
ध्यान दें कि अगर मशीन जवाब (मॉडल) सुझाए गए जवाबों की प्रासंगिकता के बारे में पक्के तौर पर नहीं जानता है, तो ML किट, नतीजे नहीं दिखा सकता. इनपुट वाली बातचीत अंग्रेज़ी में नहीं होती है या जब मॉडल को किसी संवेदनशील विषय का पता चलता है.