Générer des réponses suggérées avec ML Kit sur iOS
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
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', '8.0.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
varconversation:[TextMessage]=[]// Then, for each message sent and received:letmessage=TextMessage(text:"How are you?",timestamp:Date().timeIntervalSince1970,userID:"userId",isLocalUser:false)conversation.append(message)
Objective-C
NSMutableArray*conversation=[NSMutableArrayarray];// Then, for each message sent and received:MLKTextMessage*message=[[MLKTextMessagealloc]initWithText:@"How are you?"timestamp:[NSDatedate].timeIntervalSince1970userID:userIdisLocalUser:NO];[conversationaddObject: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,erroringuarderror==nil,letresult=resultelse{return}if(result.status==.notSupportedLanguage){// The conversation's language isn't supported, so// the result doesn't contain any suggestions.}elseif(result.status==.success){// Successfully suggested smart replies.// ...}}
Objective-C
MLKSmartReply*smartReply=[MLKSmartReplysmartReply];[smartReplysuggestRepliesForMessages:inputTextcompletion:^(MLKSmartReplySuggestionResult*_Nullableresult,NSError*_Nullableerror){if(error||!result){return;}if(result.status==MLKSmartReplyResultStatusNotSupportedLanguage){// The conversation's language isn't supported, so// the result doesn't contain any suggestions.}elseif(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:
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.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[[["\u003cp\u003eML Kit provides an on-device model to generate smart replies for messages in English conversations, enhancing user experience and engagement.\u003c/p\u003e\n"],["\u003cp\u003eBy passing a conversation history to ML Kit, developers can receive up to three suggested replies for the latest message, which can then be displayed to the user.\u003c/p\u003e\n"],["\u003cp\u003eBefore utilizing the API, ensure the device is 64-bit and include the necessary ML Kit pods in your project.\u003c/p\u003e\n"],["\u003cp\u003eThe smart reply feature is optimized for non-sensitive conversations, and may not generate results if the language is unsupported or sensitive topics are detected.\u003c/p\u003e\n"]]],[],null,["ML Kit can generate short replies to messages using an on-device model.\n\nTo generate smart replies, you pass ML Kit a log of recent messages in a\nconversation. If ML Kit determines the conversation is in English, and that\nthe conversation doesn't have potentially sensitive subject matter, ML Kit\ngenerates up to three replies, which you can suggest to your user.\n\n\u003cbr /\u003e\n\n| **Note:** ML Kit iOS APIs only run on 64-bit devices. If you build your app with 32-bit support, check the device's architecture before using this API.\n\nTry it out\n\n- Play around with [the sample app](https://github.com/googlesamples/mlkit/tree/master/ios/quickstarts/smartreply) to see an example usage of this API.\n\nBefore you begin\n\n1. Include the following ML Kit pods in your Podfile: \n\n ```\n pod 'GoogleMLKit/SmartReply', '8.0.0'\n ```\n2. After you install or update your project's Pods, open your Xcode project using its `.xcworkspace`. ML Kit is supported in Xcode version 12.4 or greater.\n\n1. Create a conversation history object\n\nTo generate smart replies, you pass ML Kit a chronologically-ordered array of\n`TextMessage` objects, with the earliest timestamp first. Whenever the user\nsends or receives a message, add the message, its timestamp, and the message\nsender's user ID to the conversation history.\n\nThe user ID can be any string that uniquely identifies the sender within the\nconversation. The user ID doesn't need to correspond to any user data,\nand the user ID doesn't need to be consistent between conversations or\ninvocations of the smart reply generator.\n\nIf the message was sent by the user you want to suggest replies to, set\n`isLocalUser` to true. \n\nSwift \n\n```swift\nvar conversation: [TextMessage] = []\n\n// Then, for each message sent and received:\nlet message = TextMessage(\n text: \"How are you?\",\n timestamp: Date().timeIntervalSince1970,\n userID: \"userId\",\n isLocalUser: false)\nconversation.append(message)\n```\n\nObjective-C \n\n```objective-c\nNSMutableArray *conversation = [NSMutableArray array];\n\n// Then, for each message sent and received:\nMLKTextMessage *message = [[MLKTextMessage alloc]\n initWithText:@\"How are you?\"\n timestamp:[NSDate date].timeIntervalSince1970\n userID:userId\n isLocalUser:NO];\n[conversation addObject:message];\n```\n\nA conversation history object looks like the following example:\n\n| Timestamp | userID | isLocalUser | Message |\n|------------------------------|---------|-------------|----------------------|\n| Thu Feb 21 13:13:39 PST 2019 | | true | are you on your way? |\n| Thu Feb 21 13:15:03 PST 2019 | FRIEND0 | false | Running late, sorry! |\n\nML Kit suggests replies to the last message in a conversation history. The last message\nshould be from a non-local user. In the example above, the last message in the conversation\nis from the non-local user FRIEND0. When you use pass ML Kit this log, it suggests\nreplies to FRIENDO's message: \"Running late, sorry!\"\n\n2. Get message replies\n\nTo generate smart replies to a message, get an instance of `SmartReply` and pass\nthe conversation history to its `suggestReplies(for:completion:)` method: \n\nSwift \n\n```swift\nSmartReply.smartReply().suggestReplies(for: conversation) { result, error in\n guard error == nil, let result = result else {\n return\n }\n if (result.status == .notSupportedLanguage) {\n // The conversation's language isn't supported, so\n // the result doesn't contain any suggestions.\n } else if (result.status == .success) {\n // Successfully suggested smart replies.\n // ...\n }\n}\n```\n\nObjective-C \n\n```objective-c\nMLKSmartReply *smartReply = [MLKSmartReply smartReply];\n[smartReply suggestRepliesForMessages:inputText\n completion:^(MLKSmartReplySuggestionResult * _Nullable result,\n NSError * _Nullable error) {\n if (error || !result) {\n return;\n }\n if (result.status == MLKSmartReplyResultStatusNotSupportedLanguage) {\n // The conversation's language isn't supported, so\n // the result doesn't contain any suggestions.\n } else if (result.status == MLKSmartReplyResultStatusSuccess) {\n // Successfully suggested smart replies.\n // ...\n }\n}];\n```\n\nIf the operation succeeds, a `SmartReplySuggestionResult` object is passed to\nthe completion handler. This object contains a list of up to three suggested\nreplies, which you can present to your user: \n\nSwift \n\n```swift\nfor suggestion in result.suggestions {\n print(\"Suggested reply: \\(suggestion.text)\")\n}\n```\n\nObjective-C \n\n```objective-c\nfor (MLKSmartReplySuggestion *suggestion in result.suggestions) {\n NSLog(@\"Suggested reply: %@\", suggestion.text);\n}\n```\n\nNote that ML Kit might not return results if the model isn't confident in\nthe relevance of the suggested replies, the input conversation isn't in\nEnglish, or if the model detects sensitive subject matter."]]