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