Cihazdaki bir modeli kullanarak mesaj yanıtları oluşturmak için ML Kit'i kullanabilirsiniz.
Akıllı yanıtlar oluşturmak için ML Kit'e bir görüşmedeki son mesajların günlüğünü iletirsiniz. ML Kit, görüşmenin İngilizce olduğunu ve görüşmenin potansiyel olarak hassas bir konu içermediğini belirlerse, ML Kit, kullanıcılarınıza önerebileceğiniz en fazla üç yanıt oluşturur.
Sen başlamadan önce
- Firebase'i uygulamanıza henüz eklemediyseniz başlangıç kılavuzundaki adımları izleyerek bunu yapın.
- ML Kit kitaplıklarını Pod dosyanıza ekleyin:
pod 'Firebase/MLCommon', '6.25.0' pod 'Firebase/MLNLSmartReply', '6.25.0'
Projenizin Pod'larını yükledikten veya güncelledikten sonra, Xcode projenizi.xcworkspace
kullanarak açtığınızdan emin olun. - Uygulamanızda Firebase'i içe aktarın:
Süratli
import Firebase
Amaç-C
@import Firebase;
1. Bir konuşma geçmişi nesnesi oluşturun
Akıllı yanıtlar oluşturmak için ML Kit'e, en eski zaman damgası ilk sırada olacak şekilde kronolojik olarak sıralanmış bir TextMessage
nesneleri dizisi iletirsiniz. Kullanıcı bir mesaj gönderdiğinde veya aldığında, mesajı, zaman damgasını ve mesajı gönderenin kullanıcı kimliğini konuşma geçmişine ekleyin.
Kullanıcı kimliği, görüşmedeki göndereni benzersiz şekilde tanımlayan herhangi bir dize olabilir. Kullanıcı kimliğinin herhangi bir kullanıcı verisine karşılık gelmesi gerekmez ve kullanıcı kimliğinin akıllı yanıt oluşturucunun konuşmaları veya çağrıları arasında tutarlı olması gerekmez.
Mesaj, yanıt önermek istediğiniz kullanıcı tarafından gönderildiyse isLocalUser
true olarak ayarlayın.
Süratli
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)
Amaç-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];
Bir konuşma geçmişi nesnesi aşağıdaki örneğe benzer:
Zaman damgası | Kullanıcı kimliği | Yerel Kullanıcı? | İleti |
---|---|---|---|
21 Şubat Per 13:13:39 PST 2019 | doğru | Yolunda mısın? | |
21 Şubat Per 13:15:03 PST 2019 | ARKADAŞ0 | YANLIŞ | Geç kalıyorum, üzgünüm! |
Yukarıdaki örnekteki en son mesajın yerel olmayan bir kullanıcıdan geldiğini unutmayın. Bu önemlidir çünkü ML Kit, uygulamanızın kullanıcısı olan yerel kullanıcı tarafından gönderilmesi amaçlanan yanıtları önerir. ML Kit'e, kullanıcınızın yanıtlamak isteyebileceği bir mesajla biten bir konuşma günlüğü ilettiğinizden emin olmalısınız.
2. Mesaj yanıtlarını alın
Bir mesaja akıllı yanıtlar oluşturmak için SmartReply
bir örneğini alın ve konuşma geçmişini onun suggestReplies(for:completion:)
yöntemine aktarın:
Süratli
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.
// ...
}
}
Amaç-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.
// ...
}
}];
]
İşlem başarılı olursa tamamlama işleyicisine bir SmartReplySuggestionResult
nesnesi iletilir. Bu nesne, kullanıcılarınıza sunabileceğiniz en fazla 3 önerilen yanıttan oluşan bir liste içerir:
Süratli
for suggestion in result.suggestions {
print("Suggested reply: \(suggestion.text)")
}
Amaç-C
for (FIRSmartReplySuggestion *suggestion in result.suggestions) {
NSLog(@"Suggested reply: %@", suggestion.text);
}
Modelin önerilen yanıtların alaka düzeyi konusunda güvensiz olması, giriş konuşmasının İngilizce olmaması veya modelin hassas bir konu algılaması durumunda ML Kit'in sonuçları döndürmeyebileceğini unutmayın.