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 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.
Deneyin
- Örnek uygulamayı kullanarak bu API'nin örnek kullanımını inceleyin.
Başlamadan önce
- Aşağıdaki ML Kit kapsüllerini Podfile'ınıza ekleyin:
pod 'GoogleMLKit/SmartReply', '3.2.0'
- Projenizin kapsüllerini yükledikten veya güncelledikten sonra
.xcworkspace
ML Kit, Xcode 12.4 veya sonraki sürümlerde desteklenir.
1. Sohbet geçmişi nesnesi oluşturma
Akıllı yanıtlar oluşturmak için ML Kit'i kronolojik olarak sıralanmış bir dizi
En eski zaman damgası başta olmak üzere TextMessage
nesne. Kullanıcı
mesaj gönderip alma, mesajı, zaman damgasını ve e-postayı
ileti dizisi geçmişi içine aktarmanızı sağlar.
Kullanıcı kimliği, yardımcı olur. Kullanıcı kimliğinin herhangi bir kullanıcı verisine karşılık gelmesi gerekmez. ve kullanıcı kimliğinin görüşmeler arasında tutarlı olması çağrılarına karşılık gelir.
İleti, yanıtlar önermek istediğiniz kullanıcı tarafından gönderildiyse
Doğru değerine isLocalUser
.
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 ileti dizisi geçmişi nesnesi aşağıdaki örneğe benzer:
Zaman damgası | userID | isLocalUser | 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. |
Makine Öğrenimi Kiti, bir sohbet geçmişindeki son mesaja yanıtlar önerir. Son mesaj yerel olmayan bir kullanıcıya ait olmalıdır. Yukarıdaki örnekte, görüşmedeki son mesaj FRIEND0 yerel olmayan kullanıcıdan geliyor. Pass ML Kit'i kullandığınızda size şu önerilerde bulunur: FRIENDO'nun mesajına yanıt: "Gecikeceğim, kusura bakmayın!"
2. Mesaj yanıtları alma
Bir mesaja akıllı yanıtlar oluşturmak için SmartReply
örneği alın ve geçin
sohbet geçmişini suggestReplies(for:completion:)
yöntemiyle değiştirme:
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 şuraya bir SmartReplySuggestionResult
nesnesi iletilir:
tamamlama işleyicisi olabilir. Bu nesnede en fazla üç önerilen liste bulunuyor
kullanıcınıza sunabileceğiniz yanıtlar:
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, 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.