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