ML Kit może generować krótkie odpowiedzi na wiadomości przy użyciu modelu na urządzeniu.
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.
Wypróbuj
- Wypróbuj przykładową aplikację, aby: zobaczysz przykład użycia tego interfejsu API.
Zanim zaczniesz
- W pliku Podfile umieść te pody ML Kit:
pod 'GoogleMLKit/SmartReply', '3.2.0'
- Po zainstalowaniu lub zaktualizowaniu podów projektu otwórz projekt Xcode za pomocą
.xcworkspace
ML Kit jest obsługiwany w Xcode w wersji 12.4 lub nowszej.
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: MLKTextMessage *message = [[MLKTextMessage 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 | userID | isLocalUser | 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ę. |
ML Kit sugeruje odpowiedzi na ostatnią wiadomość w historii rozmów. Ostatnia wiadomość powinien pochodzić od użytkownika nielokalnego. W powyższym przykładzie ostatnia wiadomość w wątku pochodzi od nielokalnego użytkownika FRIEND0. Gdy użyjesz tego dziennika, system ML Kit podpowie odpowiedzi na wiadomość od użytkownika FRIENDO: „Spóźnię się, przepraszam!”
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
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. // ... } }];
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 (MLKSmartReplySuggestion *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.