ความตั้งใจ

Intent เป็นตัวแทนของงานที่ Assistant ต้องการการดำเนินการของคุณ เช่น ข้อมูลจากผู้ใช้บางส่วนที่จำเป็นต้องประมวลผลหรือเหตุการณ์ของระบบที่คุณต้องจัดการ คุณใช้ Intent เพื่อช่วยสร้างโมเดลการเรียกใช้และการสนทนาได้ เมื่อเกิดเหตุการณ์เหล่านี้ขึ้น รันไทม์ของ Assistant จะจับคู่เวลากับ Intent ที่ตรงกันและส่ง Intent ให้การดำเนินการของคุณประมวลผล Intent มี 2 ประเภทหลักๆ ตามที่อธิบายไว้ในรายการต่อไปนี้

  • ความตั้งใจของผู้ใช้ช่วยให้คุณเพิ่มความสามารถของ Assistant ในการทำความเข้าใจคำขอของผู้ใช้ที่เฉพาะเจาะจงสำหรับแบรนด์และบริการของคุณ คุณกำหนดวลีการฝึกที่กำหนดเองภายในความตั้งใจ ซึ่งจะเป็นการสร้างรูปแบบภาษาของความตั้งใจ โมเดลภาษานี้จะช่วยเสริม NLU ให้ Assistant เข้าใจได้มากยิ่งขึ้น

  • Intent ของระบบมีข้อมูลการฝึกหรือสัญญาณอินพุตอื่นๆ ที่ไม่ใช่การสนทนาที่กำหนดโดย Assistant ซึ่งหมายความว่าคุณไม่จำเป็นต้องกำหนดวลีการฝึกสำหรับ Intent เหล่านี้ Assistant จะจับคู่ Intent เหล่านี้ด้วยวิธีมาตรฐานในระหว่างเหตุการณ์ของระบบที่รู้จักกันดี เช่น การเรียกใช้หลัก หรือเมื่อผู้ใช้ไม่ได้ให้ข้อมูลใดๆ

รูปที่ 1 สถานการณ์การจับคู่ Intent ที่พบบ่อย ผู้ใช้พูดบางสิ่งที่ตรงกับความตั้งใจทั่วโลก โหมดที่เกี่ยวข้องจะเปิดขึ้นมาและต้องใช้ข้อมูลจากผู้ใช้มากขึ้นในที่สุด ระบบจะจับคู่ Intent อีกรายการ ซึ่งจะสลับไปยังฉากอื่นและเปิดใช้งานฉากอื่น

ความตั้งใจของผู้ใช้

เมื่อสร้างการดำเนินการ คุณจะต้องสร้าง Intent ของผู้ใช้ที่มีวลีการฝึก ซึ่งจะช่วยเพิ่มความสามารถของ Assistant ในการทำความเข้าใจ Assistant ใช้วลีการฝึกเพื่อเพิ่ม NLU เมื่อมีการมอบสิทธิ์คำขอของผู้ใช้ไปยังการดำเนินการของคุณ

เมื่อเกิดกรณีนี้ขึ้น Assistant จะทำการสื่อสารระหว่างผู้ใช้และการดําเนินการของคุณ โดยจับคู่ข้อมูลจากผู้ใช้กับ Intent ที่มีรูปแบบภาษาตรงกัน จากนั้น Assistant จะแจ้งการดำเนินการเกี่ยวกับความตั้งใจที่ตรงกัน เพื่อให้คุณประมวลผลภายในฉากได้

เมื่อสร้าง Intent ของผู้ใช้ คุณจะต้องระบุองค์ประกอบต่อไปนี้

  • การระบุ Intent แบบส่วนกลางจะกำหนดว่ารันไทม์ของ Assistant จะตรงกับ Intent ของผู้ใช้ที่ระบุ ณ เวลาเรียกใช้และในระหว่างการสนทนาได้หรือไม่ โดยค่าเริ่มต้น Assistant จะจับคู่ความตั้งใจของผู้ใช้ได้ในระหว่างการสนทนาเท่านั้น มีเพียง Intent ที่คุณทำเครื่องหมายว่าเป็นส่วนกลางเท่านั้นที่จะมีสิทธิ์เรียกใช้ Deep Link

  • วลีการฝึกคือตัวอย่างของสิ่งที่ผู้ใช้อาจพูดเพื่อให้ตรงกับความตั้งใจ เครื่องมือ Assistant NLU (การทำความเข้าใจภาษาธรรมชาติ) จะขยายวลีการฝึกเหล่านี้ให้รวมวลีอื่นๆ ที่คล้ายกัน การให้ชุดตัวอย่างคุณภาพสูงจำนวนมากจะเพิ่มคุณภาพของ Intent และความแม่นยำในการจับคู่

  • พารามิเตอร์คือข้อมูลที่พิมพ์ซึ่งคุณต้องการดึงจากข้อมูลที่ผู้ใช้ป้อน หากต้องการสร้างพารามิเตอร์ ให้เขียนคำอธิบายประกอบวลีการฝึกด้วยประเภทเพื่อแจ้งไปยังเครื่องมือ NLU ว่าต้องการดึงข้อมูลบางส่วนของผู้ใช้ออกไป คุณสามารถใช้ประเภทระบบหรือสร้างประเภทที่กำหนดเองสำหรับพารามิเตอร์ก็ได้

เมื่อเครื่องมือ NLU ตรวจพบการจับคู่พารามิเตอร์ในอินพุตของผู้ใช้ เครื่องมือจะแยกค่าออกมาเป็นพารามิเตอร์แบบพิมพ์เพื่อให้คุณใช้ตรรกะกับค่าในฉากได้ หากพารามิเตอร์ Intent มีชื่อเหมือนกับช่องสำเร็จรูป รันไทม์ของ Assistant จะเติมค่าจากพารามิเตอร์ Intent ลงในช่องโหมดโดยอัตโนมัติ โปรดดูข้อมูลเพิ่มเติมในเอกสารประกอบการแมปค่าของช่อง

พารามิเตอร์ Intent รองรับการจับคู่แบบ "บางส่วน" ด้วย เช่น หากคุณระบุประเภท DateTime และผู้ใช้ระบุเฉพาะวันที่ NLU จะยังคงดึงข้อมูลบางส่วนเป็นพารามิเตอร์

คุณอาจต้องใช้ NLU ของคุณเองเพื่อจัดการข้อมูลที่ได้จากผู้ใช้ทั้งหมดสำหรับการดำเนินการ ตัวอย่างเช่น คุณอาจต้องการให้การดำเนินการตอบสนองต่อสถานการณ์ที่ไม่ตรงกันทั้งหมดในระหว่างการสนทนา สร้าง Intent ด้วยประเภทข้อความรูปแบบอิสระเพื่อให้แน่ใจว่าคุณจะบันทึกอินพุตทั้งหมดจากผู้ใช้ อย่างไรก็ตาม คุณควรหลีกเลี่ยงการใช้ Intent ที่กำหนดเองเพื่อลบล้างลักษณะการทํางานเริ่มต้นที่ไม่ตรงกันของ Assistant ทั่วโลก เนื่องจากอาจส่งผลเสียต่อความสามารถของผู้ใช้ในการสลับไปยังการดําเนินการต่างๆ

เมื่อคุณสร้าง Intent ที่กำหนดเองในคอนโซล Actions เครื่องมือสร้างการดำเนินการจะแนะนำ Intent ของระบบที่อาจเติมเต็มบทบาทเดียวกับความตั้งใจของผู้ใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับ Intent ของระบบได้ที่ส่วนต่อไปนี้

Intent ของระบบ

Assistant จะจับคู่ Intent ของระบบตามเหตุการณ์มาตรฐานของระบบ เหตุการณ์เหล่านี้อาจมีโมเดลภาษาที่ระบบกำหนด เช่น ผู้ใช้พูดว่า "หยุดชั่วคราว" เพื่อหยุดโปรแกรมเล่นสื่อชั่วคราว หรืออาจไม่มีโมเดลภาษา เช่น ผู้ใช้ไม่ได้ให้อินพุตใดๆ เลย เนื่องจาก Intent เหล่านี้ให้บริการโดย Assistant คุณจึงไม่ต้องกังวลว่าจะมีการจับคู่อย่างไร มีเพียงแค่เรื่องวิธีจัดการ Intent เมื่อระบบจับคู่เท่านั้น

นอกจากนี้ Intent ของระบบยังเข้ามาแทนที่ความจำเป็นในการสร้าง Intent ของผู้ใช้สำหรับการดำเนินการที่มักต้องใช้บ่อย เช่น YES และ NO อีกด้วย Intent ของระบบจะได้รับการฝึกในทุกภาษา ซึ่งช่วยให้คุณมอบประสบการณ์การใช้งานที่สอดคล้องกันสำหรับผู้ใช้ในหลายภาษาได้ง่ายขึ้น คุณยังตั้งค่า Intent ของระบบเป็น Intent ส่วนกลางได้ด้วย

Intent ของระบบเป็นเวอร์ชันแล้ว คุณจะใช้ Intent ของระบบเวอร์ชันใดเวอร์ชันหนึ่งได้ตราบใดที่ Assistant รองรับเวอร์ชันนั้น หากการดำเนินการใช้ Intent ของระบบเวอร์ชันที่ไม่รองรับ ระบบจะอัปเดต Intent ดังกล่าวเป็นเวอร์ชันที่รองรับโดยอัตโนมัติ

รายการ Intent

ความตั้งใจ คำอธิบาย
actions.intent.MAIN ทุกโปรเจ็กต์ Actions ต้องมีการเรียกใช้หลักเริ่มต้นนี้ ซึ่งเชื่อมโยงกับชื่อที่แสดงของคุณ ผู้ใช้พูดวลีอย่างเช่น "Ok Google พูดกับ <ชื่อการแสดงผล>" เพื่อเรียกใช้การดำเนินการ

actions.intent.NO_MATCH_1

actions.intent.NO_MATCH_2

actions.intent.NO_MATCH_FINAL

ระบบจะจับคู่ Intent เหล่านี้เมื่อผู้ใช้พูดสิ่งที่ตรงกับ Intent ในการดำเนินการของคุณไม่ได้ คุณกำหนดข้อความแจ้งแต่ละรายการและข้อความออกใน Intent ขั้นสุดท้ายได้

actions.intent.NO_INPUT_1

actions.intent.NO_INPUT_2

actions.intent.NO_INPUT_FINAL

ระบบจะจับคู่ Intent เหล่านี้เมื่อไม่มีอินพุตจากผู้ใช้หลังจากผ่านไป 8 วินาที คุณตั้งค่าการเตือนแต่ละรายการสำหรับ Intent แต่ละรายการและ "ข้อความออก" ใน Intent สุดท้ายได้

actions.intent.CANCEL ระบบจะจับคู่ความตั้งใจนี้เมื่อผู้ใช้ต้องการออกจากการดำเนินการในระหว่างการสนทนา เช่น ผู้ใช้พูดว่า "ฉันอยากออก"
actions.intent.MEDIA_STATUS_FINISHED ระบบจะจับคู่และส่งไปยังการดำเนินการของคุณเมื่อผู้ใช้เล่นสื่อเสร็จหรือข้ามไปยังสื่อถัดไป
actions.intent.MEDIA_STATUS_PAUSED ระบบจะจับคู่และส่งไปยังการดำเนินการของคุณเมื่อผู้ใช้หยุดการเล่นสื่อชั่วคราวในการตอบกลับจากสื่อ
actions.intent.MEDIA_STATUS_STOPPED ระบบจะจับคู่ Intent นี้และส่งไปยังการดำเนินการของคุณเมื่อผู้ใช้หยุดหรือออกจากการเล่นสื่อจากการตอบสนองของสื่อ
actions.intent.MEDIA_STATUS_FAILED ระบบจะจับคู่ Intent นี้และส่งไปยังการดำเนินการของคุณเมื่อโปรแกรมเล่นของการตอบกลับสื่อเล่นไม่ได้
actions.intent.YES

ระบบจะจับคู่ Intent นี้เมื่อผู้ใช้ให้คำตอบยืนยันต่อการดำเนินการของคุณ

actions.intent.NO

ระบบจะจับคู่ Intent นี้เมื่อผู้ใช้ให้คำตอบในเชิงลบต่อการดำเนินการของคุณ

actions.intent.REPEAT

ระบบจะจับคู่ Intent นี้เมื่อผู้ใช้ขอให้การดำเนินการตอบกลับล่าสุดซ้ำ Assistant จะจัดการคำขอเล่นซ้ำโดยอัตโนมัติหากไม่เปิดใช้ Intent ใน Agent การเปิดใช้ Intent ของระบบนี้จะช่วยให้คุณแก้ไขวิธีจัดการคำขอซ้ำและการตอบกลับได้

actions.intent.PLAY_GAME ระบบจะจับคู่ความตั้งใจนี้เมื่อผู้ใช้ขอให้เล่นเกม Intent นี้ช่วยให้คุณเลือกใช้การเรียกใช้โดยนัย (การเรียกใช้โดยไม่ต้องใช้ชื่อที่แสดง) ที่ให้บริการโดย Actions on Google ได้

เพิ่มการรองรับภาษาอื่นๆ

Intent ของระบบบางอย่าง เช่น YES, NO และ NO_MATCH รองรับภาษาอังกฤษเท่านั้นหากต้องการเพิ่มการรองรับภาษาอื่นๆ คุณต้องสร้าง Intent ของผู้ใช้ที่ตรงกับ Intent ของระบบเหล่านั้น คุณต้องจัดการ Intent ใหม่ในโค้ดด้วยวิธีเดียวกันกับ Intent ของระบบที่คุณใช้

ตัวอย่างเช่น สมมติว่าคุณกำลังสร้างการดำเนินการใหม่และได้ใช้ Intent ของระบบ YES แล้ว Intent ของระบบ YES รองรับเฉพาะภาษาอังกฤษ แต่คุณต้องการให้แอปรองรับการโต้ตอบในภาษาเยอรมันและญี่ปุ่นด้วย หากต้องการรองรับภาษาอื่นๆ ให้สร้าง Intent ที่มีวลีการฝึกสำหรับภาษาเยอรมันและญี่ปุ่น แล้วจึงใช้การจัดการที่คุณใช้สำหรับ Intent ของระบบ YES

ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้าง Intent ของผู้ใช้

ดูข้อมูลเพิ่มเติมเกี่ยวกับการแปลความตั้งใจของผู้ใช้

ผลตอบแทนที่ไม่ตรงกัน

เมื่อคำตอบของผู้ใช้ไม่ตรงกับ Intent ข้อใดข้อหนึ่ง Assistant จะพยายามจัดการอินพุต วิธีนี้จะช่วยให้ผู้ใช้เปลี่ยนการดำเนินการในระหว่างการสนทนาได้ ตัวอย่างเช่น ผู้ใช้ถามว่า "สัปดาห์นี้มีหนังเรื่องอะไรฉายบ้าง" แล้วเปลี่ยนบริบทในระหว่างการสนทนาว่า "พรุ่งนี้อากาศเป็นยังไงบ้าง" ในตัวอย่างนี้ เพราะ "พรุ่งนี้อากาศเป็นยังไงบ้าง" เป็นคำตอบที่ไม่ถูกต้องสำหรับการสนทนาที่เริ่มโดยข้อความแจ้งเริ่มต้น Assistant จะพยายามจัดการการจับคู่นั้นโดยอัตโนมัติและนำผู้ใช้ไปไว้ในการสนทนาที่เหมาะสม

หาก Assistant ไม่พบการดำเนินการที่เหมาะสมซึ่งตรงกับข้อมูลของผู้ใช้ ผู้ใช้จะดำเนินการต่อภายในบริบทของการดำเนินการของคุณ

โปรดอย่าใช้ Intent ของระบบ NO_MATCH เพื่อตอบคำถามของผู้ใช้ เนื่องจาก Assistant อาจขัดจังหวะการดำเนินการของคุณเพื่อตอบสนองต่อสถานการณ์ที่ไม่มีการจับคู่อย่างถูกต้อง คุณควรใช้ความตั้งใจ NO_MATCH เพื่อเตือนผู้ใช้ซ้ำเท่านั้น