ML Kit kann mit einem On-Device-Modell kurze Antworten auf Nachrichten generieren.
Um intelligente Antworten zu generieren, übergeben Sie ML Kit ein Protokoll der letzten Nachrichten in einem Gespräch. Wenn ML Kit feststellt, dass die Unterhaltung auf Englisch ist und dass keine potenziell sensiblen Themen, ML Kit generiert bis zu drei Antworten, die Sie dem Nutzer vorschlagen können.
Jetzt ausprobieren
- Probieren Sie die Beispiel-App aus, um sehen Sie sich ein Anwendungsbeispiel für diese API an.
Hinweis
- Fügen Sie die folgenden ML Kit-Pods in Ihre Podfile-Datei ein:
pod 'GoogleMLKit/SmartReply', '3.2.0'
- Nachdem Sie die Pods Ihres Projekts installiert oder aktualisiert haben, öffnen Sie Ihr Xcode-Projekt mit dem
.xcworkspace
ML Kit wird ab Xcode-Version 12.4 unterstützt.
1. Objekt für Unterhaltungsverlauf erstellen
Um intelligente Antworten zu generieren, übergeben Sie ML Kit ein chronologisch geordnetes Array
TextMessage
-Objekte, mit dem frühesten Zeitstempel zuerst. Wenn Nutzende
eine Nachricht sendet oder empfängt, die Nachricht, ihren Zeitstempel und die Nachricht
Nutzer-ID des Absenders dem Unterhaltungsverlauf hinzufügen.
Bei der Nutzer-ID kann es sich um eine beliebige Zeichenfolge handeln, die den Absender innerhalb der Gespräch. Die User-ID muss keinen Nutzerdaten entsprechen, und die User-ID muss zwischen Unterhaltungen und -Aufrufe des Generators für intelligente Antworten.
Wenn die Nachricht von dem Nutzer gesendet wurde, dem Sie Antworten vorschlagen möchten, legen Sie
isLocalUser
auf "true" gesetzt.
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];
Ein Objekt für den Unterhaltungsverlauf sieht wie das folgende Beispiel aus:
Zeitstempel | userID | isLocalUser | Meldung |
---|---|---|---|
Do., 21. Feb., 13:13:39 PST 2019 | wahr | Bist du auf dem Weg? | |
Do., 21. Feb., 13:15:03 PST 2019 | FRIEND0 | falsch | Ich bin leider spät dran. |
ML Kit schlägt Antworten auf die letzte Nachricht in einem Unterhaltungsverlauf vor. Die letzte Nachricht sollte von einem nicht-lokalen Nutzer stammen. Im obigen Beispiel ist die letzte Nachricht der Konversation ist vom nicht-lokalen Nutzer FREUND0. Wenn Sie dieses Log im ML Kit verwenden, wird vorgeschlagen, antwortet auf die Nachricht von friendO: „Ich verspäte mich leider!“
2. Antworten auf Nachrichten erhalten
Um intelligente Antworten auf eine Nachricht zu generieren, rufen Sie eine Instanz von SmartReply
ab und übergeben Sie
dem Unterhaltungsverlauf der suggestReplies(for:completion:)
-Methode hinzu:
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. // ... } }];
Wenn der Vorgang erfolgreich ist, wird ein SmartReplySuggestionResult
-Objekt an
den Abschluss-Handler. Dieses Objekt enthält eine Liste mit bis zu drei vorgeschlagenen
die Sie Ihren Nutzern präsentieren können:
Swift
for suggestion in result.suggestions { print("Suggested reply: \(suggestion.text)") }
Objective-C
for (MLKSmartReplySuggestion *suggestion in result.suggestions) { NSLog(@"Suggested reply: %@", suggestion.text); }
Beachten Sie, dass ML Kit möglicherweise keine Ergebnisse zurückgibt, wenn das Modell nicht sicher ist, ob die vorgeschlagenen Antworten relevant sind, oder wenn das Modell sensible Themen erkennt.