Sie können ML Kit verwenden, um Antworten auf Nachrichten über ein Gerät zu generieren modellieren.
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 kein potenziell heikles Thema enthält, generiert ML Kit bis zu drei Antworten, die Sie dem Nutzer vorschlagen können.
Hinweis
- Wenn Sie Ihrer App noch nicht Firebase hinzugefügt haben, folgen Sie der im Startleitfaden.
- Fügen Sie die ML Kit-Bibliotheken in Ihre Podfile ein:
Nachdem Sie die Pods Ihres Projekts installiert oder aktualisiert haben, öffnen Sie unbedingt Ihren Xcode mithilfe derpod 'Firebase/MLCommon', '6.25.0' pod 'Firebase/MLNLSmartReply', '6.25.0'
.xcworkspace
zu erstellen. - Importieren Sie Firebase in Ihre App:
Swift
import Firebase
Objective-C
@import Firebase;
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. Fügen Sie dem Unterhaltungsverlauf immer dann die Nachricht, ihren Zeitstempel und die Nutzer-ID des Absenders hinzu, wenn der Nutzer eine Nachricht sendet oder empfängt.
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:
FIRTextMessage *message = [[FIRTextMessage 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 | Nutzer-ID | Lokaler Nutzer? | Nachricht |
---|---|---|---|
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. |
Beachten Sie, dass die neueste Nachricht im obigen Beispiel von einer nicht-lokalen Quelle stammt. Nutzer. Dies ist wichtig, da ML Kit Antworten vorschlägt, die gesendet werden sollen durch den Nutzer Ihrer App: den lokalen Nutzer. Achten Sie darauf, ML Kit ein Unterhaltungsprotokoll zu übergeben, das mit einer Nachricht endet, auf die Ihr Nutzer antworten könnte.
2. Antworten auf Nachrichten erhalten
Um intelligente Antworten auf eine Nachricht zu generieren, rufen Sie eine Instanz von SmartReply
ab und geben Sie
dem Unterhaltungsverlauf der suggestReplies(for:completion:)
-Methode hinzu:
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.
// ...
}
}];
]
Wenn der Vorgang erfolgreich ist, wird dem Abschluss-Handler ein SmartReplySuggestionResult
-Objekt übergeben. 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 (FIRSmartReplySuggestion *suggestion in result.suggestions) {
NSLog(@"Suggested reply: %@", suggestion.text);
}
Beachten Sie, dass ML Kit möglicherweise keine Ergebnisse zurückgibt, wenn das Modell nicht zuversichtlich ist, ob die vorgeschlagenen Antworten relevant sind, oder wenn das Modell sensible Themen erkennt.