โมเดลการสนทนาจะกำหนดว่าผู้ใช้จะพูดอะไรกับการดำเนินการของคุณได้บ้าง และการดําเนินการของคุณตอบสนองต่อผู้ใช้อย่างไร องค์ประกอบพื้นฐานหลักของโมเดลการสนทนาคือความตั้งใจ ประเภท ฉาก และข้อความแจ้ง หลังจากเรียกใช้การดำเนินการรายการใดรายการหนึ่งแล้ว Google Assistant จะส่งต่อผู้ใช้ไปยังการดำเนินการนั้น จากนั้นการดำเนินการจะเริ่มต้นการสนทนากับผู้ใช้โดยอิงตามโมเดลการสนทนาของคุณซึ่งประกอบด้วย
คำขอของผู้ใช้ที่ถูกต้อง - หากต้องการกำหนดสิ่งที่ผู้ใช้พูดกับการดำเนินการของคุณ คุณจะสร้างคอลเล็กชัน Intent ที่ช่วยเสริม NLU ของ Assistant เพื่อให้เข้าใจคำขอที่เจาะจงสำหรับการดำเนินการของคุณได้ ซึ่งแต่ละวัตถุประสงค์จะกำหนดวลีการฝึกอบรมที่อธิบายสิ่งที่ผู้ใช้พูดได้เพื่อให้ตรงตามความตั้งใจนั้น NLU ของ Assistant จะขยายวลีการฝึกเหล่านี้ให้รวมวลีที่คล้ายกันเข้าไปด้วย และการรวมวลีเหล่านั้นจะส่งผลให้เกิดโมเดลภาษาของความตั้งใจ
ตรรกะการดำเนินการและการตอบกลับ - ฉากประมวลผล Intent, ใช้ตรรกะที่จำเป็น และสร้างข้อความแจ้งเพื่อกลับไปส่งให้ผู้ใช้
ระบุคำขอของผู้ใช้ที่ถูกต้อง
หากต้องการกำหนดว่าผู้ใช้จะพูดอะไรกับการดำเนินการได้บ้าง คุณต้องรวม Intent และประเภท ความตั้งใจและประเภทของผู้ใช้ช่วยให้คุณเสริม NLU ของ Assistant ด้วยโมเดลภาษาของคุณเอง ประเภทและ Intent ของระบบช่วยให้คุณใช้ประโยชน์จากโมเดลภาษาและการตรวจจับเหตุการณ์ในตัวได้ เช่น ผู้ใช้ต้องการออกจากการดำเนินการของคุณหรือ Assistant โดยตรวจไม่พบการป้อนข้อมูลเลย
สร้างความตั้งใจในการใช้
ความตั้งใจของผู้ใช้ช่วยให้คุณกำหนดวลีการฝึกของตัวเองเพื่อกำหนดสิ่งที่ผู้ใช้อาจพูดกับการดำเนินการของคุณได้ NLU ของ Assistant ใช้วลีเหล่านี้เพื่อฝึกตัวเอง ให้เข้าใจสิ่งที่ผู้ใช้พูด เมื่อผู้ใช้พูดอะไรก็ตามที่ตรงกับรูปแบบภาษาของผู้ใช้ Assistant จะจับคู่ความตั้งใจนั้นและแจ้งการดำเนินการของคุณเพื่อให้คุณใช้ตรรกะและตอบกลับผู้ใช้ได้
![](https://developers.google.cn/static/assistant/console/images/builder/new-intent.png?authuser=5&hl=th)
วิธีสร้างความตั้งใจของผู้ใช้
- ในแท็บพัฒนา ให้คลิกความตั้งใจของผู้ใช้ > ⊕ (ความตั้งใจใหม่) ระบุชื่อ แล้วกด Enter เพื่อสร้าง Intent
- คลิก Intent ที่สร้างขึ้นใหม่ในเมนูด้านซ้าย เครื่องมือแก้ไข Intent จะปรากฏขึ้น
- เพิ่มวลีการฝึกไปยัง Intent คุณควรเพิ่มวลีการฝึกให้มากที่สุด เพื่อฝึก NLU ของ Assistant
- ไม่บังคับ: ใส่คำอธิบายประกอบในวลีการฝึกเพื่อสั่งให้ Assistant NLU แยกวิเคราะห์และแยกพารามิเตอร์ที่พิมพ์จากข้อมูลที่ผู้ใช้ป้อนเข้าซึ่งตรงกับประเภทที่ระบุ ดังนี้
- ป้อนชื่อพารามิเตอร์ในช่องเพิ่มพารามิเตอร์ใหม่
- เลือกประเภทระบบจากเมนูแบบเลื่อนลงหรือสร้างประเภทที่กำหนดเอง
- ระบุว่าพารามิเตอร์เป็นรายการหรือไม่ ซึ่งจะทำให้พารามิเตอร์รวบรวมค่า ประเภทเดียวกันได้หลายๆ ค่า
- ในส่วนเพิ่มวลีการฝึก ให้ไฮไลต์ข้อความที่ต้องการใช้ประเภท ซึ่งจะเป็นการบอกให้ Assistant NLU ถือว่าข้อความที่ไฮไลต์เป็นพารามิเตอร์ หากผู้ใช้พูดบางอย่างที่ตรงกับประเภทดังกล่าว NLU จะดึงค่านั้นเป็นพารามิเตอร์
สร้าง Intent ของระบบ
Intent ของระบบช่วยให้คุณใช้ประโยชน์จาก Intent ด้วยโมเดลภาษาที่กำหนดไว้ล่วงหน้าสำหรับเหตุการณ์ทั่วไป เช่น ผู้ใช้ต้องการออกจากการดำเนินการหรือเมื่อผู้ใช้ป้อนข้อมูลหมดเวลา วิธีสร้าง Intent ของระบบ
- ในแท็บ Develop ให้คลิก System Intent ชุด Intent ของระบบพร้อมใช้งานแล้ว เช่น NO_MATCH, NO_INPUT และ CANCEL
- Intent แต่ละระบบมีตัวแฮนเดิลของตัวเอง ซึ่งคุณปรับแต่งสำหรับ Intent ของระบบแต่ละประเภทได้ ตัวอย่างเช่น Intent ของระบบให้คุณทริกเกอร์เหตุการณ์เว็บฮุค แล้วส่งข้อความแจ้งแบบคงที่เมื่อเกิดเหตุการณ์ขึ้น
สร้างประเภทที่กำหนดเอง
ประเภทที่กำหนดเองช่วยให้คุณสร้างข้อกำหนดประเภทของคุณเองเพื่อฝึก NLU ให้เข้าใจชุดของค่าที่ควรแมปกับคีย์เดียว
![](https://developers.google.cn/static/assistant/console/images/builder/type-options.png?authuser=5&hl=th)
วิธีสร้างประเภทที่กำหนดเอง
- ในแท็บพัฒนา ให้คลิก Types > ⊕ (New)
เลือกวิธีระบุค่าประเภทในส่วนค่าประเภทใดที่มีการรองรับประเภทนี้ ดังนี้
- คำและคำพ้องความหมายช่วยให้คุณจับคู่ค่าหลายค่ากับคีย์เดียวได้ ซึ่งเรียกว่า "รายการ" ประเภทของคุณอาจมีรายการเดียวหรือหลายรายการ หากเลือกตัวเลือกนี้ คุณจะเปิดใช้การตั้งค่า NLU ต่อไปนี้ได้
- เปิดใช้การจับคู่แบบคลุมเครือ - ตัวเลือกนี้ช่วยให้รายการที่มีมากกว่า 1 คำ สามารถจับคู่ได้ แม้ว่าจะพูดตามลำดับที่ไม่เหมือนกันก็ตาม
- ยอมรับค่าที่ไม่รู้จัก - เมื่อคุณระบุค่าที่เป็นไปได้ทั้งหมดไม่ได้ อุปกรณ์จะยอมรับคำหรือวลีที่ไม่รู้จักตามข้อมูลอินพุตและการฝึกความตั้งใจที่อยู่โดยรอบ เช่น สินค้าที่อาจเพิ่มลงในรายการของชำ
- นิพจน์ทั่วไปช่วยให้ประเภทตรงกับรูปแบบนิพจน์ทั่วไปตามมาตรฐาน RE2 ของ Google
- ข้อความรูปแบบอิสระช่วยให้ประเภทตรงกับข้อความที่ผู้ใช้พูด
- คำและคำพ้องความหมายช่วยให้คุณจับคู่ค่าหลายค่ากับคีย์เดียวได้ ซึ่งเรียกว่า "รายการ" ประเภทของคุณอาจมีรายการเดียวหรือหลายรายการ หากเลือกตัวเลือกนี้ คุณจะเปิดใช้การตั้งค่า NLU ต่อไปนี้ได้
ระบุค่าประเภทในส่วนเพิ่มรายการ หากเลือกข้อความรูปแบบอิสระ ประเภทจะตรงกับข้อความทั่วไป คุณจึงไม่ต้องป้อนข้อมูลใดๆ
สร้างตรรกะและการตอบสนองการดำเนินการ
Assistant NLU จะจับคู่คำขอของผู้ใช้กับ Intent เพื่อให้การดำเนินการของคุณประมวลผลคำขอเหล่านี้เป็นฉากได้ ฉากเป็นตัวดำเนินการทางตรรกะที่มีประสิทธิภาพซึ่งจะช่วยให้คุณประมวลผลเหตุการณ์ระหว่างการสนทนาได้
![](https://developers.google.cn/static/assistant/conversational/images/scene.png?authuser=5&hl=th)
สร้างฉาก
ส่วนต่อไปนี้จะอธิบายวิธีสร้างฉากและกำหนดฟังก์ชันการทำงานสำหรับระยะในวงจรของแต่ละฉาก
วิธีสร้างฉาก
- ในแท็บพัฒนา ให้คลิกฉาก > ⊕ (ฉากใหม่) ระบุชื่อ แล้วกด Enter เพื่อสร้างฉาก
- คลิกฉากที่สร้างขึ้นใหม่ในเมนูด้านซ้าย เครื่องมือแก้ไขฉากจะปรากฏขึ้น
กําหนดการตั้งค่าแบบครั้งเดียว
เมื่อฉากเริ่มทำงานเป็นครั้งแรก คุณจะทำงานแบบครั้งเดียวได้ในขั้นตอนเมื่อ Enter ขั้นตอน On Enter จะทำงานเพียงครั้งเดียว และเป็นขั้นตอนเดียวที่ไม่ได้ทำงานภายในลูปการดำเนินการของฉาก
คลิกขั้นตอนเมื่อป้อนภายในฉากเพื่อระบุฟังก์ชันการทำงานของฉาก คุณสามารถระบุฟังก์ชันการทำงานต่อไปนี้ในขั้นตอนนี้
- เรียกใช้เว็บฮุค - ทริกเกอร์เว็บฮุค ดูข้อมูลเพิ่มเติมเกี่ยวกับเว็บฮุคได้ในเอกสารประกอบเว็บฮุค
- ส่งพรอมต์ - ระบุข้อความแจ้งแบบคงที่ให้กับผู้ใช้เพื่อให้ทราบถึงวิธีดำเนินการสนทนาต่อ ดูข้อมูลเพิ่มเติมเกี่ยวกับการระบุพรอมต์ได้ในเอกสารประกอบเกี่ยวกับข้อความแจ้ง
รูปที่ 4 ตัวอย่างฉากบนพื้นที่งาน
ตรวจสอบเงื่อนไข
เงื่อนไขต่างๆ จะช่วยให้คุณตรวจสอบการเติมสล็อต พื้นที่เก็บข้อมูลเซสชัน พื้นที่เก็บข้อมูลของผู้ใช้ และพารามิเตอร์พื้นที่เก็บข้อมูลภายในบ้านเพื่อควบคุมโฟลว์การดำเนินการของฉาก
ในฉาก ให้คลิกไอคอน + ของพื้นที่งานเงื่อนไข เครื่องมือแก้ไขเงื่อนไขจะปรากฏทางด้านขวา คุณสามารถระบุฟังก์ชันการทำงานต่อไปนี้ในขั้นตอนนี้
- เงื่อนไข - ระบุคำสั่งแบบมีเงื่อนไขตามจริงเพื่อปิดใช้ตรรกะ ดูข้อมูลไวยากรณ์ในเอกสารconditions
- เรียกใช้เว็บฮุค - ทริกเกอร์เว็บฮุค ดูข้อมูลเพิ่มเติมเกี่ยวกับเว็บฮุคได้ในเอกสารประกอบเว็บฮุค
- ส่งพรอมต์ - ระบุข้อความแจ้งแบบคงที่เพื่อส่งให้ผู้ใช้เพื่อให้ทราบวิธีสนทนาต่อ ดูข้อมูลเพิ่มเติมเกี่ยวกับการระบุพรอมต์ได้ในเอกสารประกอบข้อความแจ้ง
- การเปลี่ยน - ระบุฉากที่ต้องการเปลี่ยนเมื่อคำสั่งแบบมีเงื่อนไขเป็นจริง
![](https://developers.google.cn/static/assistant/conversational/images/scene-condition.png?authuser=5&hl=th)
กำหนดการเติมช่อง
ช่องโฆษณาช่วยให้คุณแยกพารามิเตอร์ที่พิมพ์จากข้อมูลที่ผู้ใช้ป้อนเข้าได้
ในตัวแก้ไขฉาก ให้คลิกไอคอน + สำหรับขั้นตอนการเติมช่อง ตัวแก้ไขสำหรับช่องจะปรากฏทางด้านขวา คุณสามารถระบุคุณสมบัติ ต่อไปนี้ของช่องได้
- ชื่อช่อง: ระบุชื่อของช่อง หากต้องการใช้ประโยชน์จากการแมปค่าช่อง ให้ใช้ชื่อเดียวกันกับพารามิเตอร์ Intent ที่ตรงกัน
- ประเภทช่องโฆษณา: ระบุประเภทของช่องด้วยประเภทระบบหรือประเภทที่กำหนดเอง
- ต้องระบุช่องโฆษณานี้: ทำเครื่องหมายช่องนี้เป็นต้องระบุ หากเปิดใช้ การเติมช่องโฆษณาจะไม่เสร็จสมบูรณ์จนกว่าช่องโฆษณานี้จะเต็ม
- กำหนดค่าเริ่มต้นให้กับช่องโฆษณานี้: ระบุค่าเริ่มต้นสำหรับช่องที่อ่านจากพารามิเตอร์เซสชันที่ระบุ
- ปรับแต่งการเขียนกลับค่าช่องโฆษณา: ระบุพารามิเตอร์เซสชันเพื่อคงค่าของช่องไว้หลังจากที่เติมช่องโฆษณาเสร็จสมบูรณ์แล้ว
- การตรวจสอบช่องโฆษณา: ทริกเกอร์เว็บฮุคเมื่อมีการเติมช่องโฆษณา การตั้งค่านี้มีผลกับสล็อตทั้งหมด
- เรียกใช้เว็บฮุค (เปิดใช้เมื่อต้องมีช่องโฆษณา): ทริกเกอร์เว็บฮุค ดูข้อมูลเพิ่มเติมเกี่ยวกับเว็บฮุคได้ในเอกสารประกอบเกี่ยวกับเว็บฮุค
- ส่งพรอมต์ (เปิดใช้เมื่อต้องมีช่อง): ระบุข้อความแจ้งแบบคงที่ ซึ่งจะส่งให้ผู้ใช้ เพื่อให้ทราบว่าจะสนทนาต่ออย่างไร ดูข้อมูลเพิ่มเติมเกี่ยวกับการระบุข้อความแจ้งได้ในเอกสารข้อความแจ้ง
สำหรับช่องโฆษณาบางประเภท (เช่น ประเภทที่เกี่ยวข้องกับธุรกรรมหรือการมีส่วนร่วมของผู้ใช้) ส่วนเพิ่มเติมจะปรากฏขึ้นซึ่งคุณสามารถกำหนดค่าช่องโฆษณาได้ การกำหนดค่าช่องโฆษณาอาจเปลี่ยนแปลงประสบการณ์การสนทนาของผู้ใช้ตามพร็อพเพอร์ตี้ที่คุณให้ไว้
หากต้องการกำหนดค่าสล็อต ให้ระบุพร็อพเพอร์ตี้ในออบเจ็กต์ JSON ใน Fulfillment (อ้างอิงเป็นพารามิเตอร์เซสชัน) หรือในเครื่องมือแก้ไข JSON ในบรรทัด
คุณดูพร็อพเพอร์ตี้ที่พร้อมใช้งานสำหรับช่องแต่ละประเภทได้ในการอ้างอิง JSON ของ Actions Builder เช่น ประเภทช่อง actions.type.DeliveryAddressValue
สอดคล้องกับเนื้อหาอ้างอิงสำหรับช่อง DeliveryAddressValue
![](https://developers.google.cn/static/assistant/conversational/images/scene-slot.png?authuser=5&hl=th)
การแมปค่าช่องโฆษณา
ในหลายกรณี การจับคู่ Intent ก่อนหน้านี้อาจมีพารามิเตอร์ที่เติมค่าสล็อตของฉากที่เกี่ยวข้องบางส่วนหรือทั้งหมด ในกรณีเหล่านี้ ช่องโฆษณาทั้งหมดที่มาจากพารามิเตอร์ Intent จะแมปกับสล็อตของโหมดที่มีการเติมช่องหากชื่อช่องตรงกับชื่อพารามิเตอร์ Intent
เช่น หากผู้ใช้ตั้งใจที่จะสั่งเครื่องดื่มโดยพูดว่า "ฉันอยากสั่งกาแฟวานิลลาแก้วใหญ่" ระบบจะถือว่ามีช่องที่ใส่ขนาด รสชาติ และเครื่องดื่มอยู่แล้วในฉากที่เกี่ยวข้องหากฉากนั้นกำหนดช่องเดียวกัน
ป้อนข้อมูลกระบวนการ
ในขั้นตอนนี้ คุณสามารถให้ Assistant NLU จับคู่ข้อมูลที่ผู้ใช้ป้อนกับ Intent ได้ คุณกำหนดขอบเขตการจับคู่ Intent กับฉากที่ต้องการได้โดยการเพิ่ม Intent ที่ต้องการลงในโหมด วิธีนี้ช่วยให้คุณควบคุมขั้นตอนการสนทนาโดยบอกให้ Assistant จับคู่ Intent แบบเจาะจงได้เมื่อเปิดใช้ฉากนั้นๆ
ภายในโหมด ให้คลิกไอคอน + สำหรับขั้นตอนการจัดการความตั้งใจของผู้ใช้หรือการจัดการความตั้งใจของระบบ ตัวแก้ไขสำหรับเครื่องจัดการ Intent จะปรากฏทางด้านขวา คุณระบุฟังก์ชันการทำงานต่อไปนี้ของเครื่องจัดการ Intent
- Intent - ระบุ Intent ที่คุณต้องการจับคู่ภายในฉากนี้
- เรียกใช้เว็บฮุค - ทริกเกอร์เว็บฮุค ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีจัดการคำขอเว็บฮุคได้ในเอกสารประกอบเว็บฮุค
- ส่งพรอมต์ - ระบุข้อความแจ้งแบบคงที่ให้ผู้ใช้เพื่อให้ทราบถึงวิธีตอบสนอง ดูข้อมูลเพิ่มเติมเกี่ยวกับการระบุข้อความแจ้งได้ในเอกสารประกอบของข้อความแจ้ง
- การเปลี่ยน (หากมี) - ระบุฉากที่ต้องการเปลี่ยนเมื่อ Intent ที่ระบุตรงกัน
![](https://developers.google.cn/static/assistant/conversational/images/scene-customintent.png?authuser=5&hl=th)
![](https://developers.google.cn/static/assistant/conversational/images/scene-systemintent.png?authuser=5&hl=th)