ML Kit สามารถสร้างคำตอบสั้นๆ สำหรับข้อความโดยใช้โมเดลในอุปกรณ์
หากต้องการสร้างฟีเจอร์ช่วยตอบ ให้ส่งบันทึกข้อความล่าสุดในการสนทนาไปยัง ML Kit หาก ML Kit ระบุว่าการสนทนาเป็นภาษาอังกฤษและไม่มีหัวข้อที่อาจมีความละเอียดอ่อน ML Kit จะสร้างคำตอบได้สูงสุด 3 รายการ ซึ่งคุณสามารถแนะนำให้ผู้ใช้ได้
| รวมกลุ่ม | แบบแยก | |
|---|---|---|
| ชื่อห้องสมุด | com.google.mlkit:smart-reply | com.google.android.gms:play-services-mlkit-smart-reply | 
| การใช้งาน | โมเดลจะลิงก์กับแอปแบบคงที่ในเวลาที่สร้าง | ระบบจะดาวน์โหลดโมเดลแบบไดนามิกผ่านบริการ Google Play | 
| ผลกระทบของขนาดแอป | ขนาดเพิ่มขึ้นประมาณ 5.7 MB | ขนาดเพิ่มขึ้นประมาณ 200 KB | 
| เวลาเริ่มต้น | โมเดลพร้อมใช้งานทันที | คุณอาจต้องรอให้ระบบดาวน์โหลดโมเดลก่อนจึงจะใช้งานได้เป็นครั้งแรก | 
ลองเลย
- ลองใช้แอปตัวอย่างเพื่อดูตัวอย่างการใช้งาน API นี้
ก่อนเริ่มต้น
- ในไฟล์ - build.gradleระดับโปรเจ็กต์ ให้ตรวจสอบว่าได้รวมที่เก็บ Maven ของ Google ไว้ทั้งในส่วน- buildscriptและ- allprojects
- เพิ่มทรัพยากร Dependency สำหรับคลัง Android ของ ML Kit ลงในไฟล์ Gradle ระดับแอปของโมดูล ซึ่งโดยปกติคือ - app/build.gradleเลือกการขึ้นต่อกันรายการใดรายการหนึ่งต่อไปนี้ตามความต้องการของคุณ- วิธีรวมโมเดลกับแอป
 - dependencies { // ... // Use this dependency to bundle the model with your app implementation 'com.google.mlkit:smart-reply:17.0.4' }- วิธีใช้โมเดลในบริการ Google Play
 - dependencies { // ... // Use this dependency to use the dynamically downloaded model in Google Play Services implementation 'com.google.android.gms:play-services-mlkit-smart-reply:16.0.0-beta1' }- หากเลือกใช้โมเดลในบริการ Google Play คุณสามารถกำหนดค่า แอปให้ดาวน์โหลดโมเดลไปยังอุปกรณ์โดยอัตโนมัติหลังจากติดตั้งแอปจาก Play Store แล้ว โดยเพิ่มการประกาศต่อไปนี้ลงในไฟล์ - AndroidManifest.xmlของแอป- <application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="smart_reply" > <!-- To use multiple models: android:value="smart_reply,model2,model3" --> </application>- นอกจากนี้ คุณยังตรวจสอบความพร้อมใช้งานของโมเดลและขอให้ดาวน์โหลดผ่าน ModuleInstallClient API ของบริการ Google Play ได้ด้วย - หากคุณไม่ได้เปิดใช้การดาวน์โหลดโมเดลขณะติดตั้งหรือขอให้ดาวน์โหลดอย่างชัดเจน ระบบจะดาวน์โหลดโมเดลในครั้งแรกที่คุณเรียกใช้เครื่องมือสร้างการตอบกลับอัจฉริยะ คำขอที่คุณส่งก่อนการดาวน์โหลดเสร็จสมบูรณ์จะไม่แสดงผลลัพธ์ - 1. สร้างออบเจ็กต์ประวัติการสนทนา- หากต้องการสร้างฟีเจอร์ช่วยตอบ ให้ส่ง - Listของออบเจ็กต์- TextMessageที่จัดเรียงตามลำดับเวลาไปยัง ML Kit โดยให้มีแสตมป์เวลาที่เก่าที่สุดก่อน- เมื่อใดก็ตามที่ผู้ใช้ส่งข้อความ ให้เพิ่มข้อความและการประทับเวลาของข้อความนั้นลงใน ประวัติการสนทนา - Kotlin- conversation.add(TextMessage.createForLocalUser( "heading out now", System.currentTimeMillis())) - Java- conversation.add(TextMessage.createForLocalUser( "heading out now", System.currentTimeMillis())); - เมื่อใดก็ตามที่ผู้ใช้ได้รับข้อความ ให้เพิ่มข้อความ การประทับเวลาของข้อความ และรหัสผู้ใช้ของผู้ส่งลงในประวัติการสนทนา รหัสผู้ใช้เป็นสตริงใดก็ได้ที่ ระบุผู้ส่งในการสนทนาได้อย่างไม่ซ้ำกัน User ID ไม่จำเป็นต้อง สอดคล้องกับข้อมูลผู้ใช้ใดๆ และไม่จำเป็นต้องสอดคล้องกัน ระหว่างการสนทนาหรือการเรียกใช้เครื่องมือสร้างการตอบกลับอัจฉริยะ - Kotlin- conversation.add(TextMessage.createForRemoteUser( "Are you coming back soon?", System.currentTimeMillis(), userId)) - Java- conversation.add(TextMessage.createForRemoteUser( "Are you coming back soon?", System.currentTimeMillis(), userId)); - ออบเจ็กต์ประวัติการสนทนามีลักษณะดังตัวอย่างต่อไปนี้ - การประทับเวลา - userID - isLocalUser - ข้อความ - พฤ. 21 ก.พ. 13:13:39 PST 2019 - จริง - คุณกำลังเดินทางใช่ไหม - Thu Feb 21 13:15:03 PST 2019 - FRIEND0 - เท็จ - ขอโทษนะ ฉันไปสาย - ML Kit จะแนะนำคำตอบสำหรับข้อความสุดท้ายในประวัติการสนทนา ข้อความสุดท้าย ควรมาจากผู้ใช้ที่ไม่ได้อยู่ในเครือข่ายเดียวกัน ในตัวอย่างข้างต้น ข้อความสุดท้ายในการสนทนา มาจากผู้ใช้ FRIEND0 ที่ไม่ได้อยู่ในเครือข่ายท้องถิ่น เมื่อคุณใช้ ML Kit ในการส่งต่อบันทึกนี้ ระบบจะแนะนำ คำตอบสำหรับข้อความของ FRIENDO ว่า "ขอโทษนะ ฉันไปสาย" - 2. รับการตอบกลับข้อความ- หากต้องการสร้างฟีเจอร์ช่วยตอบสำหรับข้อความ ให้รับอินสแตนซ์ของ - SmartReplyGeneratorและส่งประวัติการสนทนาไปยังเมธอด- suggestReplies()- Kotlin- val smartReplyGenerator = SmartReply.getClient() smartReply.suggestReplies(conversation) .addOnSuccessListener { result -> if (result.getStatus() == SmartReplySuggestionResult.STATUS_NOT_SUPPORTED_LANGUAGE) { // The conversation's language isn't supported, so // the result doesn't contain any suggestions. } else if (result.getStatus() == SmartReplySuggestionResult.STATUS_SUCCESS) { // Task completed successfully // ... } } .addOnFailureListener { // Task failed with an exception // ... } - Java- SmartReplyGenerator smartReply = SmartReply.getClient(); smartReply.suggestReplies(conversation) .addOnSuccessListener(new OnSuccessListener - () { @Override public void onSuccess(SmartReplySuggestionResult result) { if (result.getStatus() == SmartReplySuggestionResult.STATUS_NOT_SUPPORTED_LANGUAGE) { // The conversation's language isn't supported, so // the result doesn't contain any suggestions. } else if (result.getStatus() == SmartReplySuggestionResult.STATUS_SUCCESS) { // Task completed successfully // ... } } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { // Task failed with an exception // ... } }); - หากการดำเนินการสำเร็จ ระบบจะส่งออบเจ็กต์ - SmartReplySuggestionResultไปยัง ตัวแฮนเดิลที่สำเร็จ ออบเจ็กต์นี้มีรายการคำตอบที่แนะนำสูงสุด 3 รายการ ซึ่งคุณสามารถแสดงต่อผู้ใช้ได้- Kotlin- for (suggestion in result.suggestions) { val replyText = suggestion.text } - Java- for (SmartReplySuggestion suggestion : result.getSuggestions()) { String replyText = suggestion.getText(); } - โปรดทราบว่า ML Kit อาจไม่แสดงผลลัพธ์หากโมเดลไม่มั่นใจใน ความเกี่ยวข้องของคำตอบที่แนะนำ การสนทนาที่ป้อนไม่ได้เป็นภาษาอังกฤษ หรือหากโมเดลตรวจพบหัวข้อที่ละเอียดอ่อน 
