קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
בעזרת ML Kit אפשר ליצור תשובות קצרות להודעות באמצעות מודל שנמצא במכשיר.
כדי ליצור תשובות מהירות, צריך להעביר ל-ML Kit יומן של ההודעות האחרונות
שיחה. אם ערכת ML Kit מזהה שהשיחה היא באנגלית,
השיחה לא מכילה נושא שעשוי להיות רגיש, למידת מכונה
ייווצרו עד שלוש תשובות. אתם יכולים להציע אותן למשתמש.
אחרי שמתקינים או מעדכנים את קבוצות ה-Pod של הפרויקט, פותחים את פרויקט Xcode באמצעות
.xcworkspace יש תמיכה ב-ML Kit ב-Xcode מגרסה 12.4 ואילך.
1. יצירת אובייקט של היסטוריית שיחות
כדי ליצור תשובות מהירות, צריך להעביר ל-ML Kit מערך כרונולוגי של
TextMessage אובייקטים, עם חותמת הזמן המוקדמת ביותר. בכל פעם שהמשתמש
שולח או מקבל הודעה, מוסיפים את ההודעה, את חותמת הזמן שלה ואת ההודעה
מזהה המשתמש של השולח בהיסטוריית השיחות.
מזהה המשתמש יכול להיות כל מחרוזת שמזהה באופן ייחודי את השולח בתוך
שיחה. מזהה המשתמש לא צריך להיות תואם לנתוני משתמש כלשהם,
ומזהה המשתמש לא צריך להיות עקבי בין שיחות
הפעלות של מחולל התשובות המהירות.
אם ההודעה נשלחה מהמשתמש שרוצים להציע לו תשובות, מגדירים
isLocalUser עד 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];
אובייקט של היסטוריית שיחות נראה כמו בדוגמה הבאה:
חותמת זמן
userID
isLocalUser
הודעה
יום ה' 21 בפברואר 13:13:39 (שעון החוף המערבי) 2019
true
בדרך?
יום ה' 21 בפברואר 13:15:03 (שעון החוף המערבי) 2019
FRIEND0
false
איחור, מצטערים!
ML Kit מציע תשובות להודעה האחרונה בהיסטוריית השיחות. ההודעה האחרונה
צריך להיות ממשתמש לא מקומי. בדוגמה שלמעלה, ההודעה האחרונה בשיחה
הוא ממשתמש שאינו מקומי LEFT0. כשמשתמשים ביומן הזה להעברת ML Kit, הוא מציע
תשובות להודעה של ENDO: "איחור, סליחה!"
2. קבלת תשובות להודעות
כדי ליצור תשובות מהירות להודעה, צריך לקבל מופע של SmartReply ולהעביר אותה
את היסטוריית השיחות לשיטה 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.// ...}}];
אם הפעולה מצליחה, אובייקט SmartReplySuggestionResult מועבר אל
את ה-handler של ההשלמה. האובייקט הזה מכיל רשימה של עד שלוש הצעות
תגובות, שאותן אפשר להציג למשתמש:
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 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."]]