Android'de Makine Öğrenimi Kiti ile Akıllı Yanıtlar Oluşturma
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Mesaj yanıtlarını cihaz üzerinde oluşturmak için ML Kit'i kullanabilirsiniz.
modeli.
Akıllı yanıtlar oluşturmak için ML Kit'e son mesajların bir günlüğünü
yardımcı olur. Makine Öğrenimi Kiti sohbetin İngilizce olduğunu belirlerse ve
Bu konuşmanın hassas olabilecek bir konusu yok, ML Kit
, kullanıcılarınıza önerebileceğiniz üç adede kadar yanıt oluşturur.
Akıllı yanıtlar oluşturmak için Makine Öğrenimi Kiti'ni kronolojik olarak sıralanmış bir List ile göndermeniz gerekir
En eski zaman damgası başta olmak üzere, FirebaseTextMessage nesne.
Kullanıcı bir mesaj gönderdiğinde mesajı ve zaman damgasını
sohbet geçmişi:
Java
conversation.add(FirebaseTextMessage.createForLocalUser("heading out now",System.currentTimeMillis()));
Kotlin
conversation.add(FirebaseTextMessage.createForLocalUser("heading out now",System.currentTimeMillis()))
Kullanıcı bir mesaj aldığında mesajı, zaman damgasını ve
ileti dizisi geçmişi içine aktarmanızı sağlar. Kullanıcı kimliği,
ileti dizisindeki göndereni benzersiz şekilde tanımlar. Kullanıcı kimliği için
tutarlı olması gerekmez ve kullanıcı kimliğinin
250'den fazla yayınlanamıyor.
Java
conversation.add(FirebaseTextMessage.createForRemoteUser("Are you coming back soon?",System.currentTimeMillis(),userId));
Kotlin
conversation.add(FirebaseTextMessage.createForRemoteUser("Are you coming back soon?",System.currentTimeMillis(),userId))
Bir ileti dizisi geçmişi nesnesi aşağıdaki örneğe benzer:
Zaman damgası
User-ID
Yerel Kullanıcı mısınız?
Mesaj
21 Şubat Perşembe 13:13:39 PST 2019
true
yolda mısınız?
21 Şubat Perşembe 13:15:03 PST 2019
ARKADAŞ0
false
Üzgünüz, geciktiğiniz için yazıyorum.
Yukarıdaki örnekte yer alan en son mesajın yerel olmayan bir kullanıcıya ait olduğunu unutmayın.
belirtir. Makine Öğrenimi Kiti, gönderilecek yanıtlar önerdiği için bu önemlidir.
Yerel kullanıcı tarafından belirlenir. Projeyi tamamlamak için
Makine Öğrenimi Kiti, kullanıcınızın gönderebileceği bir mesajla biten
yanıt vermek istiyorsunuz.
2. Mesaj yanıtları alma
Bir mesaja akıllı yanıtlar oluşturmak için FirebaseSmartReply öğesinin bir örneğini alın
ve sohbet geçmişini suggestReplies() yöntemine geçirin:
Java
FirebaseSmartReplysmartReply=FirebaseNaturalLanguage.getInstance().getSmartReply();smartReply.suggestReplies(conversation).addOnSuccessListener(newOnSuccessListener<SmartReplySuggestionResult>(){@OverridepublicvoidonSuccess(SmartReplySuggestionResultresult){if(result.getStatus()==SmartReplySuggestionResult.STATUS_NOT_SUPPORTED_LANGUAGE){// The conversation's language isn't supported, so the// the result doesn't contain any suggestions.}elseif(result.getStatus()==SmartReplySuggestionResult.STATUS_SUCCESS){// Task completed successfully// ...}}}).addOnFailureListener(newOnFailureListener(){@OverridepublicvoidonFailure(@NonNullExceptione){// Task failed with an exception// ...}});
Kotlin
valsmartReply=FirebaseNaturalLanguage.getInstance().smartReplysmartReply.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.}elseif(result.getStatus()==SmartReplySuggestionResult.STATUS_SUCCESS){// Task completed successfully// ...}}.addOnFailureListener{// Task failed with an exception// ...}
İşlem başarılı olursa şuraya bir SmartReplySuggestionResult nesnesi iletilir:
yardımcı olur. Bu nesnede en fazla 3 önerilen yanıtın olduğu bir liste bulunur.
Bunları kullanıcılarınıza gösterebilirsiniz:
Model, bilgiye güvenmiyorsa ML Kit'in sonuç döndürmeyebileceğini unutmayın.
önerilen yanıtların alaka düzeyi açısından
İngilizce veya model hassas bir konu tespit ederse.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-09-06 UTC."],[],[],null,["You can use ML Kit to generate message replies using an on-device\nmodel.\n\nTo generate smart replies, you pass ML Kit a log of recent messages in a\nconversation. If ML Kit determines the conversation is in English, and that\nthe conversation doesn't have potentially sensitive subject matter, ML Kit\ngenerates up to three replies, which you can suggest to your user.\n\n\u003cbr /\u003e\n\nBefore you begin\n\n1. If you haven't already, [add Firebase to your Android project](/docs/android/setup).\n2. Add the dependencies for the ML Kit Android libraries to your module (app-level) Gradle file (usually `app/build.gradle`): \n\n ```carbon\n apply plugin: 'com.android.application'\n apply plugin: 'com.google.gms.google-services'\n\n dependencies {\n // ...\n implementation 'com.google.firebase:firebase-ml-natural-language:22.0.0'\n implementation 'com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7'\n }\n ```\n3. Also in your app-level `build.gradle` file, disable compression of `tflite` files: \n\n ```text\n android {\n // ...\n aaptOptions {\n noCompress \"tflite\"\n }\n }\n ```\n\n1. Create a conversation history object\n\nTo generate smart replies, you pass ML Kit a chronologically-ordered `List`\nof `FirebaseTextMessage` objects, with the earliest timestamp first.\n\nWhenever the user sends a message, add the message and its timestamp to the\nconversation history: \n\nJava \n\n conversation.add(FirebaseTextMessage.createForLocalUser(\n \"heading out now\", System.currentTimeMillis()));\n\nKotlin \n\n conversation.add(FirebaseTextMessage.createForLocalUser(\n \"heading out now\", System.currentTimeMillis()))\n\nWhenever the user receives a message, add the message, its timestamp, and the\nsender's user ID to the conversation history. The user ID can be any string that\nuniquely identifies the sender within the conversation. The user ID doesn't need\nto correspond to any user data, and the user ID doesn't need to be consistent\nbetween conversation or invocations of the smart reply generator. \n\nJava \n\n conversation.add(FirebaseTextMessage.createForRemoteUser(\n \"Are you coming back soon?\", System.currentTimeMillis(), userId));\n\nKotlin \n\n conversation.add(FirebaseTextMessage.createForRemoteUser(\n \"Are you coming back soon?\", System.currentTimeMillis(), userId))\n\nA conversation history object looks like the following example:\n\n| Timestamp | User ID | Local User? | Message |\n|------------------------------|---------|-------------|----------------------|\n| Thu Feb 21 13:13:39 PST 2019 | | true | are you on your way? |\n| Thu Feb 21 13:15:03 PST 2019 | FRIEND0 | false | Running late, sorry! |\n\nNote that the most recent message in the example above is from a non-local\nuser. This is important because ML Kit suggests replies intended to be sent\nby the user of your app: the local user. You should be sure you're passing\nML Kit a conversation log that ends with a message to which your user might\nwant to reply.\n\n2. Get message replies\n\nTo generate smart replies to a message, get an instance of `FirebaseSmartReply`\nand pass the conversation history to its `suggestReplies()` method: \n\nJava \n\n FirebaseSmartReply smartReply = FirebaseNaturalLanguage.getInstance().getSmartReply();\n smartReply.suggestReplies(conversation)\n .addOnSuccessListener(new OnSuccessListener\u003cSmartReplySuggestionResult\u003e() {\n @Override\n public void onSuccess(SmartReplySuggestionResult result) {\n if (result.getStatus() == SmartReplySuggestionResult.STATUS_NOT_SUPPORTED_LANGUAGE) {\n // The conversation's language isn't supported, so the\n // the result doesn't contain any suggestions.\n } else if (result.getStatus() == SmartReplySuggestionResult.STATUS_SUCCESS) {\n // Task completed successfully\n // ...\n }\n }\n })\n .addOnFailureListener(new OnFailureListener() {\n @Override\n public void onFailure(@NonNull Exception e) {\n // Task failed with an exception\n // ...\n }\n });\n\nKotlin \n\n val smartReply = FirebaseNaturalLanguage.getInstance().smartReply\n smartReply.suggestReplies(conversation)\n .addOnSuccessListener { result -\u003e\n if (result.getStatus() == SmartReplySuggestionResult.STATUS_NOT_SUPPORTED_LANGUAGE) {\n // The conversation's language isn't supported, so the\n // the result doesn't contain any suggestions.\n } else if (result.getStatus() == SmartReplySuggestionResult.STATUS_SUCCESS) {\n // Task completed successfully\n // ...\n }\n }\n .addOnFailureListener {\n // Task failed with an exception\n // ...\n }\n\nIf the operation succeeds, a `SmartReplySuggestionResult` object is passed to\nthe success handler. This object contains a list of up to 3 suggested replies,\nwhich you can present to your user: \n\nJava \n\n for (SmartReplySuggestion suggestion : result.getSuggestions()) {\n String replyText = suggestion.getText();\n }\n\nKotlin \n\n for (suggestion in result.suggestions) {\n val replyText = suggestion.text\n }\n\nNote that ML Kit might not return results if the model isn't confident in\nthe relevance of the suggested replies, the input conversation isn't in\nEnglish, or if the model detects sensitive subject matter."]]