Anda dapat menggunakan ML Kit untuk menghasilkan balasan pesan menggunakan model di perangkat.
Untuk menghasilkan smart reply, Anda harus meneruskan log pesan terbaru dalam percakapan ke ML Kit. Jika ML Kit menentukan percakapan dalam bahasa Inggris, dan percakapan tersebut tidak berpotensi berisi hal yang sensitif, ML Kit akan menghasilkan hingga tiga balasan, yang dapat digunakan sebagai saran untuk pengguna Anda.
Sebelum memulai
- Jika Anda belum menambahkan Firebase ke aplikasi, lakukan dengan mengikuti langkah-langkahnya di panduan memulai.
- Sertakan library ML Kit di Podfile Anda:
pod 'Firebase/MLCommon', '6.25.0' pod 'Firebase/MLNLSmartReply', '6.25.0'
Setelah menginstal atau mengupdate Pod project, pastikan untuk membuka project Xcode menggunakan.xcworkspace
-nya. - Di aplikasi Anda, impor Firebase:
Swift
import Firebase
Objective-C
@import Firebase;
1. Membuat objek histori percakapan
Untuk menghasilkan smart reply, Anda harus meneruskan array objek TextMessage
yang diurutkan secara kronologis
ke ML Kit, dengan stempel waktu paling awal terlebih dahulu. Setiap kali pengguna
mengirim atau menerima pesan, tambahkan pesan tersebut, stempel waktunya, dan ID pengguna
pengirim pesan ke histori percakapan.
ID pengguna dapat berupa string apa pun yang secara unik mengidentifikasi pengirim pesan dalam percakapan. ID pengguna tidak perlu terkait dengan data pengguna apa pun, dan ID pengguna tidak perlu konsisten antara percakapan atau pemanggilan pada generator smart reply.
Jika pesan dikirim oleh pengguna yang ingin Anda berikan
saran terkait balasan, tetapkan isLocalUser
ke benar.
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:
FIRTextMessage *message = [[FIRTextMessage alloc]
initWithText:@"How are you?"
timestamp:[NSDate date].timeIntervalSince1970
userID:userId
isLocalUser:NO];
[conversation addObject:message];
Objek histori percakapan akan terlihat seperti contoh berikut:
Stempel Waktu | ID Pengguna | Pengguna Lokal? | Pesan |
---|---|---|---|
Kamis 21 Februari 13.13.39 PST 2019 | true | are you on your way? | |
Kamis 21 Februari 13.15.03 PST 2019 | FRIEND0 | false | Running late, sorry! |
Perlu diperhatikan bahwa pesan terbaru dalam contoh di atas berasal dari pengguna non-lokal. Hal ini menjadi penting karena ML Kit menyarankan balasan yang ditujukan untuk dikirim oleh pengguna aplikasi Anda, yaitu pengguna lokal. Pastikan Anda meneruskan log percakapan, yang diakhiri dengan pesan yang ingin dibalas pengguna, ke ML Kit.
2. Mendapatkan balasan pesan
Untuk menghasilkan smart reply pada suatu pesan, dapatkan instance SmartReply
dan teruskan histori percakapan ke metode suggestReplies(for:completion:)
:
Swift
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.
// ...
}
}
Objective-C
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.
// ...
}
}];
]
Jika operasi berhasil, objek SmartReplySuggestionResult
akan diteruskan ke pengendali penyelesaian. Objek ini berisi daftar hingga 3 balasan yang disarankan,
yang dapat Anda presentasikan kepada pengguna:
Swift
for suggestion in result.suggestions {
print("Suggested reply: \(suggestion.text)")
}
Objective-C
for (FIRSmartReplySuggestion *suggestion in result.suggestions) {
NSLog(@"Suggested reply: %@", suggestion.text);
}
Perlu diperhatikan bahwa ML Kit mungkin tidak akan menampilkan hasil jika model tidak yakin pada relevansi balasan yang disarankan, percakapan input tidak ditulis dalam bahasa Inggris, atau jika model mendeteksi adanya hal yang sensitif.