Anda dapat menggunakan ML Kit untuk membuat balasan pesan menggunakan model di perangkat.
Untuk menghasilkan balasan cerdas, Anda memberikan ML Kit log pesan terbaru dalam percakapan. Jika ML Kit menentukan bahwa percakapan tersebut dalam bahasa Inggris, dan bahwa percakapan tersebut tidak memiliki topik yang berpotensi sensitif, ML Kit akan menghasilkan hingga tiga balasan, yang dapat Anda sarankan kepada pengguna Anda.
Sebelum kamu memulai
- Jika Anda belum menambahkan Firebase ke aplikasi Anda, lakukan dengan mengikuti langkah-langkah di panduan memulai .
- Sertakan library ML Kit di Podfile Anda: l10n
pod 'Firebase/MLCommon', '6.25.0' pod 'Firebase/MLNLSmartReply', '6.25.0'
Setelah Anda menginstal atau memperbarui Pod proyek Anda, pastikan untuk membuka proyek Xcode Anda menggunakan.xcworkspace
-nya. - Di aplikasi Anda, impor Firebase:
Cepat
import Firebase
Objective-C
@import Firebase;
1. Buat objek riwayat percakapan
Untuk menghasilkan balasan cerdas, Anda meneruskan ML Kit array objek TextMessage
yang diurutkan secara kronologis, dengan stempel waktu paling awal terlebih dahulu. Setiap kali pengguna mengirim atau menerima pesan, tambahkan pesan, stempel waktunya, dan ID pengguna pengirim pesan ke riwayat percakapan.
ID pengguna dapat berupa string apa pun yang secara unik mengidentifikasi pengirim dalam percakapan. ID pengguna tidak perlu sesuai dengan data pengguna apa pun, dan ID pengguna tidak perlu konsisten antara percakapan atau permintaan generator balasan cerdas.
Jika pesan dikirim oleh pengguna yang ingin Anda beri saran balasan, setel isLocalUser
ke true.
Cepat
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 riwayat percakapan terlihat seperti contoh berikut:
stempel waktu | identitas pengguna | Pengguna Lokal? | Pesan |
---|---|---|---|
Kamis 21 Februari 13:13:39 PST 2019 | BENAR | apakah kamu sedang dalam perjalanan? | |
Kamis 21 Februari 13:15:03 PST 2019 | TEMAN0 | Salah | Terlambat, maaf! |
Perhatikan bahwa pesan terbaru dalam contoh di atas berasal dari pengguna non-lokal. Ini penting karena ML Kit menyarankan balasan yang dimaksudkan untuk dikirim oleh pengguna aplikasi Anda: pengguna lokal. Anda harus memastikan bahwa Anda meneruskan ML Kit log percakapan yang diakhiri dengan pesan yang mungkin ingin dibalas oleh pengguna Anda.
2. Dapatkan balasan pesan
Untuk menghasilkan balasan cerdas ke sebuah pesan, dapatkan instance SmartReply
dan teruskan riwayat percakapan ke suggestReplies(for:completion:)
:
Cepat
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
diteruskan ke penangan penyelesaian. Objek ini berisi daftar hingga 3 balasan yang disarankan, yang dapat Anda berikan kepada pengguna Anda:
Cepat
for suggestion in result.suggestions {
print("Suggested reply: \(suggestion.text)")
}
Objective-C
for (FIRSmartReplySuggestion *suggestion in result.suggestions) {
NSLog(@"Suggested reply: %@", suggestion.text);
}
Perhatikan bahwa ML Kit mungkin tidak memberikan hasil jika model tidak yakin dengan relevansi balasan yang disarankan, percakapan input tidak dalam bahasa Inggris, atau jika model mendeteksi materi pelajaran yang sensitif.