आप ऑन-डिवाइस मॉडल का उपयोग करके संदेश उत्तर उत्पन्न करने के लिए एमएल किट का उपयोग कर सकते हैं।
स्मार्ट उत्तर उत्पन्न करने के लिए, आप एमएल किट को बातचीत में हाल के संदेशों का लॉग पास करते हैं। यदि एमएल किट निर्धारित करता है कि बातचीत अंग्रेजी में है, और बातचीत में संभावित रूप से संवेदनशील विषय नहीं है, तो एमएल किट तीन उत्तर उत्पन्न करता है, जिसे आप अपने उपयोगकर्ता को सुझा सकते हैं।
शुरू करने से पहले
- यदि आपने पहले से ही अपने ऐप में फायरबेस नहीं जोड़ा है, तो आरंभ करने की मार्गदर्शिका में दिए गए चरणों का पालन करके ऐसा करें।
- अपने पॉडफाइल में एमएल किट लाइब्रेरी शामिल करें:
pod 'Firebase/MLCommon', '6.25.0' pod 'Firebase/MLNLSmartReply', '6.25.0'
अपने प्रोजेक्ट के पॉड इंस्टॉल या अपडेट करने के बाद, अपने Xcode प्रोजेक्ट को इसके.xcworkspace
का उपयोग करके खोलना सुनिश्चित करें। - अपने ऐप में, फ़ायरबेस आयात करें:
तीव्र
import Firebase
उद्देश्य सी
@import Firebase;
1. वार्तालाप इतिहास ऑब्जेक्ट बनाएं
स्मार्ट उत्तर उत्पन्न करने के लिए, आप एमएल किट को 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)
उद्देश्य सी
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 | असत्य | देर से चल रहा है, क्षमा करें! |
ध्यान दें कि उपरोक्त उदाहरण में सबसे ताज़ा संदेश एक गैर-स्थानीय उपयोगकर्ता का है। यह महत्वपूर्ण है क्योंकि एमएल किट आपके ऐप के उपयोगकर्ता द्वारा भेजे जाने वाले उत्तरों का सुझाव देता है: स्थानीय उपयोगकर्ता। आपको यह सुनिश्चित करना चाहिए कि आप एमएल किट को एक वार्तालाप लॉग भेज रहे हैं जो एक संदेश के साथ समाप्त होता है जिसका आपका उपयोगकर्ता उत्तर देना चाहता है।
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.
// ...
}
}
उद्देश्य सी
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)")
}
उद्देश्य सी
for (FIRSmartReplySuggestion *suggestion in result.suggestions) {
NSLog(@"Suggested reply: %@", suggestion.text);
}
ध्यान दें कि यदि मॉडल सुझाए गए उत्तरों की प्रासंगिकता के बारे में आश्वस्त नहीं है, इनपुट वार्तालाप अंग्रेजी में नहीं है, या यदि मॉडल संवेदनशील विषय वस्तु का पता लगाता है, तो एमएल किट परिणाम नहीं लौटा सकता है।