डिवाइस पर मौजूद मैसेज का जवाब देने के लिए, एमएल किट का इस्तेमाल किया जा सकता है मॉडल.
स्मार्ट जवाब जनरेट करने के लिए, आपको ML किट में हाल ही के मैसेज का लॉग पास करना होगा. बातचीत. अगर ML Kit को लगता है कि बातचीत अंग्रेज़ी में है, और बातचीत का विषय ऐसा नहीं है जो संवेदनशील हो, एमएल किट ज़्यादा से ज़्यादा तीन जवाब जनरेट करता है, जिनका सुझाव अपने उपयोगकर्ता को दिया जा सकता है.
शुरू करने से पहले
- अगर आपने अब तक ऐसा नहीं किया है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें.
- अपने मॉड्यूल में एमएल किट Android लाइब्रेरी के लिए डिपेंडेंसी जोड़ें
(ऐप्लिकेशन-लेवल) Gradle फ़ाइल (आम तौर पर
app/build.gradle
):apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' dependencies { // ... implementation 'com.google.firebase:firebase-ml-natural-language:22.0.0' implementation 'com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7' }
- अपनी ऐप्लिकेशन-लेवल
build.gradle
फ़ाइल में भी, कंप्रेस करने की सुविधा बंद करें कुलtflite
फ़ाइलें:android { // ... aaptOptions { noCompress "tflite" } }
1. बातचीत के इतिहास के लिए ऑब्जेक्ट बनाएं
स्मार्ट जवाब जनरेट करने के लिए, आपको ML Kit को समय के हिसाब से, क्रम से List
पास करना होगा
FirebaseTextMessage
ऑब्जेक्ट में से, जिसमें सबसे पुराने टाइमस्टैंप पहले हैं.
जब भी उपयोगकर्ता कोई संदेश भेजे, तो संदेश और उसका टाइमस्टैम्प बातचीत का इतिहास:
conversation.add(FirebaseTextMessage.createForLocalUser(
"heading out now", System.currentTimeMillis()));
conversation.add(FirebaseTextMessage.createForLocalUser(
"heading out now", System.currentTimeMillis()))
जब भी उपयोगकर्ता को कोई संदेश मिले, तो संदेश, उसका टाइमस्टैम्प, और बातचीत के इतिहास को भेजने वाले का यूज़र आईडी. यूज़र आईडी ऐसी कोई भी स्ट्रिंग हो सकती है जो बातचीत में भेजने वाले की खास पहचान करता है. यूज़र आईडी की ज़रूरत नहीं है का इस्तेमाल उपयोगकर्ता के डेटा से किया जा सकता है, और यूज़र आईडी का एक जैसा होना ज़रूरी नहीं है बातचीत या स्मार्ट जवाब जनरेटर के शुरू होने के बीच का समय शामिल होता है.
conversation.add(FirebaseTextMessage.createForRemoteUser(
"Are you coming back soon?", System.currentTimeMillis(), userId));
conversation.add(FirebaseTextMessage.createForRemoteUser(
"Are you coming back soon?", System.currentTimeMillis(), userId))
बातचीत के इतिहास का ऑब्जेक्ट कैसा दिखता है, यह जानने के लिए नीचे दिया गया उदाहरण देखें:
टाइमस्टैंप | यूज़र आईडी | स्थानीय उपयोगकर्ता? | मैसेज |
---|---|---|---|
गुरुवार 21 फ़रवरी 13:13:39 पीएसटी 2019 | सही | क्या आप अपने रास्ते में हैं? | |
गुरुवार 21 फ़रवरी 13:15:03 पीएसटी 2019 | दोस्त0 | गलत | मुझे देर हो रही है, माफ़ करें! |
ध्यान दें कि ऊपर दिए गए उदाहरण में हाल ही का मैसेज किसी गैर-स्थानीय मैसेज से आया है उपयोगकर्ता. यह अहम है, क्योंकि एमएल किट ऐसे जवाब सुझाती है जो भेजे जाने के लिए होते हैं आपके ऐप्लिकेशन के उपयोगकर्ता से: स्थानीय उपयोगकर्ता. पक्का करें कि आपने पास ML किट एक बातचीत लॉग है, जिसके आखिर में एक मैसेज होता है, जिसे आपका उपयोगकर्ता जवाब देना चाहते हैं.
2. मैसेज के जवाब पाएं
किसी मैसेज के स्मार्ट जवाब जनरेट करने के लिए, FirebaseSmartReply
का इंस्टेंस पाएं
और बातचीत के इतिहास को इसके suggestReplies()
तरीके में भेजें:
FirebaseSmartReply smartReply = FirebaseNaturalLanguage.getInstance().getSmartReply();
smartReply.suggestReplies(conversation)
.addOnSuccessListener(new OnSuccessListener<SmartReplySuggestionResult>() {
@Override
public void onSuccess(SmartReplySuggestionResult result) {
if (result.getStatus() == SmartReplySuggestionResult.STATUS_NOT_SUPPORTED_LANGUAGE) {
// The conversation's language isn't supported, so the
// the result doesn't contain any suggestions.
} else if (result.getStatus() == SmartReplySuggestionResult.STATUS_SUCCESS) {
// Task completed successfully
// ...
}
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Task failed with an exception
// ...
}
});
val smartReply = FirebaseNaturalLanguage.getInstance().smartReply
smartReply.suggestReplies(conversation)
.addOnSuccessListener { result ->
if (result.getStatus() == SmartReplySuggestionResult.STATUS_NOT_SUPPORTED_LANGUAGE) {
// The conversation's language isn't supported, so the
// the result doesn't contain any suggestions.
} else if (result.getStatus() == SmartReplySuggestionResult.STATUS_SUCCESS) {
// Task completed successfully
// ...
}
}
.addOnFailureListener {
// Task failed with an exception
// ...
}
अगर कार्रवाई पूरी होती है, तो SmartReplySuggestionResult
ऑब्जेक्ट को
सक्सेस हैंडलर के तहत काम करता है. इस ऑब्जेक्ट में सुझाए गए ज़्यादा से ज़्यादा तीन जवाबों की सूची होती है.
इसे उपयोगकर्ता को दिखाया जा सकता है:
for (SmartReplySuggestion suggestion : result.getSuggestions()) {
String replyText = suggestion.getText();
}
for (suggestion in result.suggestions) {
val replyText = suggestion.text
}
ध्यान दें कि अगर मॉडल को मशीन लर्निंग के बारे में नहीं पता, तो हो सकता है कि वह नतीजे न दिखाए सुझाए गए जवाब कितने काम के हैं, लेकिन इनपुट बातचीत अंग्रेज़ी भाषा हो या मॉडल, संवेदनशील विषय-वस्तु का पता लगाता हो.