ML Kit, cihaz üzerinde bir model kullanarak mesajlara kısa yanıtlar oluşturabilir.
Akıllı yanıtlar oluşturmak için ML Kit'e bir görüşmedeki son mesajların günlüğünü gönderirsiniz. ML Kit, görüşmenin İngilizce olduğunu ve konuşmanın hassas olabilecek bir konu barındırmadığını belirlerse kullanıcıya önerebileceğiniz en fazla üç yanıt oluşturabilir.
Deneyin
- Bu API'nin örnek kullanımını görmek için örnek uygulamayla denemeler yapın.
Başlamadan önce
- Aşağıdaki ML Kit kapsüllerini Podfile dosyanıza ekleyin:
pod 'GoogleMLKit/SmartReply', '3.2.0'
- Projenizin Kapsüllerini yükledikten veya güncelledikten sonra,
.xcworkspace
kodunu kullanarak Xcode projenizi açın. ML Kit, Xcode'un 12.4 veya sonraki sürümlerinde desteklenir.
1. Görüşme geçmişi nesnesi oluşturma
Akıllı yanıtlar oluşturmak için ML Kit'i en erken zaman damgasına sahip olacak şekilde kronolojik sıralamada TextMessage
nesne dizisinden geçersiniz. Kullanıcı her mesaj gönderdiğinde veya aldığında mesajı, zaman damgasını ve mesajı gönderenin kullanıcı kimliğini görüşme geçmişine ekleyin.
User-ID, görüşmedeki göndereni benzersiz şekilde tanımlayan herhangi bir dize olabilir. User-ID'nin herhangi bir kullanıcı verisine karşılık gelmesi gerekmez. Ayrıca User-ID, akıllı yanıt oluşturma aracının görüşmeleri veya çağrıları arasında tutarlı olmak zorunda değildir.
Mesaj, yanıt önermek istediğiniz kullanıcı tarafından gönderildiyse isLocalUser
değerini true olarak ayarlayın.
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];
Bir görüşme geçmişi nesnesi aşağıdaki örneğe benzer:
Zaman damgası | UserID | YerelYerelKullanıcı | Mesaj |
---|---|---|---|
21 Şubat 13:13:39 PST 2019 | true | yolda mısınız? | |
21 Şubat 13:15:03 PST 2019 | ARKADAŞ0 | yanlış | Geç kaldık! |
ML Kit, görüşme geçmişindeki son mesaja yanıt vermenizi öneriyor. Son mesaj, yerel olmayan bir kullanıcıdan gelmelidir. Yukarıdaki örnekte, görüşmedeki son mesaj yerel olmayan Friend0 kullanıcısındandır. Bu günlüğü ML Kit'i geçerken kullandığınızda, FriendO'nun şu mesajına yanıt verilebilir: "Üzgünüz, çok geç!"
2. Mesaj yanıtları alın
Bir mesaja akıllı yanıtlar oluşturmak için SmartReply
örneğini alın ve görüşme geçmişini suggestReplies(for:completion:)
yöntemine geçirin:
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. // ... } }];
İşlem başarılı olursa tamamlama işleyicisine bir SmartReplySuggestionResult
nesnesi iletilir. Bu nesne, kullanıcıya sunabileceğiniz en fazla üç yanıt önerisinden oluşan bir liste içerir:
Swift
for suggestion in result.suggestions { print("Suggested reply: \(suggestion.text)") }
Objective-C
for (MLKSmartReplySuggestion *suggestion in result.suggestions) { NSLog(@"Suggested reply: %@", suggestion.text); }
Model, önerilen yanıtların alaka düzeyinden emin değilse, giriş konuşması İngilizce değilse veya model hassas konular tespit ederse ML Kit'in sonuç döndürmeyebileceğini unutmayın.