ML Kit peut générer des réponses courtes aux messages en utilisant un modèle sur l'appareil.
Pour générer des réponses suggérées, vous transmettez à ML Kit un journal des messages récents dans une conversationnelle. Si ML Kit détermine que la conversation est en anglais, la conversation n'a pas d'objet potentiellement sensible, ML Kit génère jusqu'à trois réponses, que vous pouvez suggérer à l'utilisateur.
Essayer
- Testez l'application exemple pour : consultez un exemple d'utilisation de cette API.
Avant de commencer
- Incluez les pods ML Kit suivants dans votre Podfile:
pod 'GoogleMLKit/SmartReply', '3.2.0'
- Après avoir installé ou mis à jour les pods de votre projet, ouvrez votre projet Xcode à l'aide de son
.xcworkspace
ML Kit est compatible avec Xcode 12.4 ou version ultérieure.
1. Créer un objet d'historique des conversations
Pour générer des réponses suggérées, vous transmettez à ML Kit un tableau de données classées par ordre chronologique
Objets TextMessage
, avec le code temporel le plus ancien en premier. Chaque fois que l'utilisateur
envoie ou reçoit un message, ajoutez le message, son code temporel et le message
l'ID utilisateur de l'expéditeur dans l'historique de la conversation.
L'ID utilisateur peut être n'importe quelle chaîne identifiant de façon unique l'expéditeur dans les conversationnelle. L'ID utilisateur n'a pas besoin de correspondre à des données utilisateur, et l'ID utilisateur n'a pas besoin d'être cohérent entre les conversations ou du générateur de réponses suggérées.
Si le message a été envoyé par l'utilisateur auquel vous souhaitez suggérer des réponses, définissez
isLocalUser
sur "true".
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];
Voici un exemple d'objet d'historique des conversations:
Horodatage | userID | isLocalUser | Message |
---|---|---|---|
Jeu. 21 févr. 13:13:39 PST 2019 | true | Tu es en route ? | |
Jeu. 21 févr. 13:15:03 PST 2019 | FRIEND0 | faux | Nous sommes en retard, désolé ! |
ML Kit suggère des réponses au dernier message d'un historique de conversation. Le dernier message doit provenir d'un utilisateur non local. Dans l'exemple ci-dessus, le dernier message de la conversation provient de l'utilisateur non local Friends0. Lorsque vous utilisez ML Kit, ce journal suggère répond au message de Friends : "Je suis en retard, désolé !"
2. Recevoir des réponses aux messages
Pour générer des réponses suggérées à un message, obtenez une instance de SmartReply
et transmettez
l'historique de la conversation vers sa méthode 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. // ... } }];
Si l'opération aboutit, un objet SmartReplySuggestionResult
est transmis à
le gestionnaire d'achèvement. Cet objet contient une liste de trois suggestions
que vous pouvez présenter à vos utilisateurs:
Swift
for suggestion in result.suggestions { print("Suggested reply: \(suggestion.text)") }
Objective-C
for (MLKSmartReplySuggestion *suggestion in result.suggestions) { NSLog(@"Suggested reply: %@", suggestion.text); }
Notez que ML Kit risque de ne pas renvoyer de résultats si le modèle n'est pas sûr de la pertinence des réponses suggérées, la conversation d'entrée n'est pas ou si le modèle détecte des sujets sensibles.