ML Kit จะสร้างข้อความตอบสั้นๆ โดยใช้โมเดลในอุปกรณ์ได้
หากต้องการสร้างการตอบกลับอัจฉริยะ คุณจะต้องส่งบันทึกข้อความล่าสุดในการสนทนา ML Kit ในการสนทนา หาก ML Kit ระบุว่าการสนทนาเป็นภาษาอังกฤษและการสนทนาไม่มีหัวเรื่องที่ละเอียดอ่อน ML Kit จะสร้างการตอบกลับสูงสุด 3 รายการซึ่งคุณสามารถแนะนําให้แก่ผู้ใช้ได้
ลองใช้งาน
- ลองใช้แอปตัวอย่างเพื่อดูตัวอย่างการใช้งาน API นี้
ข้อควรทราบก่อนที่จะเริ่มต้น
- รวมพ็อด ML Kit ต่อไปนี้ใน Podfile
pod 'GoogleMLKit/SmartReply', '3.2.0'
- หลังจากติดตั้งหรืออัปเดตพ็อดของโปรเจ็กต์ ให้เปิดโปรเจ็กต์ Xcode โดยใช้
.xcworkspace
XKit เวอร์ชัน 12.4 ขึ้นไปรองรับ ML Kit
1. สร้างออบเจ็กต์ประวัติการสนทนา
หากต้องการสร้างการตอบกลับอัจฉริยะ คุณจะต้องส่งอาร์เรย์ของออบเจ็กต์ TextMessage
ที่เรียงตามลําดับเวลาซึ่งมีลําดับเวลาเรียงตามลําดับเวลา โดยเริ่มจากการประทับเวลาแรกสุดก่อน เมื่อใดก็ตามที่ผู้ใช้ส่งหรือรับข้อความ ให้เพิ่มข้อความ การประทับเวลา และรหัสผู้ใช้ของผู้ส่งข้อความลงในประวัติการสนทนา
User-ID อาจเป็นสตริงที่ระบุผู้ส่งที่ไม่ซ้ํากันภายในการสนทนา User-ID ไม่จําเป็นต้องสอดคล้องกับข้อมูลผู้ใช้ใดๆ และ User-ID ไม่จําเป็นต้องสอดคล้องกันระหว่างการสนทนาหรือคําขอของโปรแกรมสร้างสมาร์ทรีพลาย
หากผู้ส่งเป็นผู้แนะนําให้ส่งข้อความตอบกลับ ให้ตั้งค่า isLocalUser
เป็น "จริง"
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];
ออบเจ็กต์ประวัติการสนทนามีลักษณะดังนี้
การประทับเวลา | รหัสผู้ใช้ | isLocalผู้ใช้ | ข้อความ |
---|---|---|---|
พฤ. 21 ก.พ. 13:13:39 น. PST 2019 | จริง | คุณกําลังเดินทางอยู่ใช่ไหม | |
พฤ. 21 ก.พ. 13:15:03 น. PST 2019 | เพื่อน 0 | เท็จ | ไปสายหน่อยนะ |
ML Kit จะแนะนําการตอบกลับข้อความล่าสุดในประวัติการสนทนา ข้อความล่าสุดควรมาจากผู้ใช้ที่ไม่ได้อยู่ในเครื่อง ในตัวอย่างข้างต้น ข้อความสุดท้ายในการสนทนามาจากผู้ใช้ **0 ที่ไม่ใช่ผู้ใช้ในพื้นที่ เมื่อใช้ ML Kit บันทึกนี้ ระบบจะแนะนําการตอบกลับข้อความของ FriendsO ว่า "ชําระล่าช้า ขออภัย"
2. รับข้อความตอบกลับ
หากต้องการสร้างการตอบกลับที่ชาญฉลาดสําหรับข้อความ ให้รับอินสแตนซ์ SmartReply
และส่งประวัติการสนทนาไปยังเมธอด 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. // ... } }];
หากดําเนินการสําเร็จ ระบบจะส่งออบเจ็กต์ SmartReplySuggestionResult
ไปยังเครื่องจัดการกระบวนการ ออบเจ็กต์นี้มีรายการที่แนะนําที่แนะนําสูงสุด 3 รายการ ซึ่งคุณจะนําเสนอให้ผู้ใช้ได้
Swift
for suggestion in result.suggestions { print("Suggested reply: \(suggestion.text)") }
Objective-C
for (MLKSmartReplySuggestion *suggestion in result.suggestions) { NSLog(@"Suggested reply: %@", suggestion.text); }
โปรดทราบว่า ML Kit อาจไม่แสดงผลการค้นหาหากโมเดลไม่มั่นใจในความเกี่ยวข้องของการตอบกลับที่แนะนํา การสนทนาที่ป้อนไม่ได้เป็นภาษาอังกฤษ หรือหากโมเดลตรวจพบเรื่องที่มีความละเอียดอ่อน