Możesz używać ML Kit do generowania odpowiedzi na wiadomości przy użyciu model atrybucji.
Aby generować inteligentne odpowiedzi, musisz przekazać ML Kit dziennik ostatnich wiadomości w rozmowy. Jeśli ML Kit ustali, że rozmowa jest po angielsku, rozmowa nie ma potencjalnie poufnej sprawy, ML Kit generuje maksymalnie 3 odpowiedzi, które możesz zasugerować użytkownikowi.
Zanim zaczniesz
- Jeśli nie masz jeszcze w aplikacji dodanej Firebase, wykonaj czynności podane w przewodniku dla początkujących.
- Umieść biblioteki ML Kit w pliku Podfile:
pod 'Firebase/MLCommon', '6.25.0' pod 'Firebase/MLNLSmartReply', '6.25.0'
Po zainstalowaniu lub zaktualizowaniu podów projektu otwórz Xcode projektu za pomocą jego.xcworkspace
. - W aplikacji zaimportuj Firebase:
Swift
import Firebase
Objective-C
@import Firebase;
1. Tworzenie obiektu historii rozmowy
Aby generować inteligentne odpowiedzi, musisz przekazać ML Kit uporządkowany chronologicznie tablicę
TextMessage
obiektów, z najwcześniejszą sygnaturą czasową. Gdy użytkownik
wysłanie lub odebranie wiadomości, dodanie wiadomości, jej sygnatury czasowej i wiadomości
identyfikator użytkownika nadawcy.
Identyfikatorem użytkownika może być dowolny ciąg, który jednoznacznie identyfikuje nadawcę w rozmowy. nie musi odpowiadać żadnym danym użytkownika, a identyfikator użytkownika nie musi być spójny w wątkach lub generatora inteligentnych odpowiedzi.
Jeśli wiadomość została wysłana przez użytkownika, któremu chcesz zasugerować odpowiedzi, ustaw
isLocalUser
na prawda.
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:
FIRTextMessage *message = [[FIRTextMessage alloc]
initWithText:@"How are you?"
timestamp:[NSDate date].timeIntervalSince1970
userID:userId
isLocalUser:NO];
[conversation addObject:message];
Obiekt historii rozmowy wygląda jak w tym przykładzie:
Sygnatura czasowa | Identyfikator użytkownika | Korzystasz z lokalnego profilu? | Wiadomość |
---|---|---|---|
Czw. Lut 2019, 13:13:39 PST 2019 | prawda | jesteś w drodze? | |
Cz 21 lutego 13:15:03 PST 2019 | ZNAJOMI0 | fałsz | Spóźnię się. |
Najnowsza wiadomość w powyższym przykładzie pochodzi od użytkownika spoza regionu użytkownika. To ważne, ponieważ ML Kit sugeruje odpowiedzi, które mają zostać wysłane przez użytkownika aplikacji, czyli użytkownika lokalnego. Musisz się upewnić, że zdajesz ML Kit dziennik rozmowy kończący się wiadomością, do której użytkownik może chcesz odpowiedzieć.
2. Otrzymuj odpowiedzi na wiadomości
Aby generować inteligentne odpowiedzi na wiadomość, pobierz wystąpienie SmartReply
i prześlij
historię rozmowy do metody suggestReplies(for:completion:)
:
Swift
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.
// ...
}
}];
]
Jeśli operacja się powiedzie, obiekt SmartReplySuggestionResult
zostanie przekazany do
z modułem do obsługi uzupełniania. Ten obiekt zawiera listę maksymalnie 3 sugerowanych
które możesz zaprezentować użytkownikowi:
Swift
for suggestion in result.suggestions {
print("Suggested reply: \(suggestion.text)")
}
Objective-C
for (FIRSmartReplySuggestion *suggestion in result.suggestions) {
NSLog(@"Suggested reply: %@", suggestion.text);
}
Pamiętaj, że ML Kit może nie zwracać wyników, jeśli model nie ma pewności trafność sugerowanych odpowiedzi, rozmówca nie jest angielskim lub jeśli model wykryje wrażliwy obiekt.