ML Kit dapat menghasilkan balasan singkat untuk pesan menggunakan model di perangkat.
Untuk menghasilkan smart reply, Anda harus meneruskan log pesan terbaru ke ML Kit dalam percakapan. Jika ML Kit menentukan percakapan dalam bahasa Inggris, dan bahwa percakapan ini tidak berpotensi sensitif, ML Kit, menghasilkan hingga tiga balasan, yang dapat Anda sarankan kepada pengguna.
Cobalah
- Cobalah aplikasi contoh untuk melihat contoh penggunaan API ini.
Sebelum memulai
- Sertakan pod ML Kit berikut di Podfile Anda:
pod 'GoogleMLKit/SmartReply', '3.2.0'
- Setelah Anda menginstal atau mengupdate Pod project, buka project Xcode menggunakan
.xcworkspace
. ML Kit didukung di Xcode versi 12.4 atau yang lebih baru.
1. Membuat objek histori percakapan
Untuk menghasilkan smart reply, Anda harus meneruskan array rangkaian data yang diurutkan secara kronologis ke ML Kit
Objek TextMessage
, dengan stempel waktu paling awal terlebih dahulu. Kapan pun pengguna
mengirim atau menerima pesan, menambahkan pesan, stempel waktunya, dan pesan
ID pengguna pengirim ke histori percakapan.
ID pengguna dapat berupa string apa pun yang secara unik mengidentifikasi pengirim dalam percakapan. ID pengguna tidak perlu berhubungan dengan data pengguna apa pun, dan ID pengguna tidak harus konsisten di antara percakapan atau pemanggilan generator smart reply.
Jika pesan dikirim oleh pengguna yang ingin Anda beri saran balasan, tetapkan
isLocalUser
ke benar (true).
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];
Objek histori percakapan terlihat seperti contoh berikut:
Stempel waktu | userID | isLocalUser | Pesan |
---|---|---|---|
Kamis 21 Februari 13.13.39 PST 2019 | true | apakah Anda dalam perjalanan? | |
Kamis 21 Februari 13.15.03 PST 2019 | FRIEND0 | salah | Terlambat, maaf! |
ML Kit menyarankan balasan untuk pesan terakhir dalam histori percakapan. Pesan terakhir harus berasal dari pengguna non-lokal. Pada contoh di atas, pesan terakhir dalam percakapan berasal dari pengguna non-lokal Fri0. Jika Anda menggunakan ML Kit, log ini akan menyarankan membalas pesan friendO: "Terlambat, maaf!"
2. Mendapatkan balasan pesan
Untuk menghasilkan smart reply pada suatu pesan, dapatkan instance SmartReply
dan teruskan
histori percakapan ke metode 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. // ... } }];
Jika operasi berhasil, objek SmartReplySuggestionResult
akan diteruskan ke
pengendali penyelesaian. Objek ini berisi daftar maksimum tiga yang disarankan
balasan, yang dapat Anda tampilkan kepada pengguna:
Swift
for suggestion in result.suggestions { print("Suggested reply: \(suggestion.text)") }
Objective-C
for (MLKSmartReplySuggestion *suggestion in result.suggestions) { NSLog(@"Suggested reply: %@", suggestion.text); }
Perhatikan bahwa ML Kit mungkin tidak menampilkan hasil jika model tidak yakin dengan relevansi balasan yang disarankan, percakapan input tidak Inggris, atau jika model mendeteksi materi pokok yang sensitif.