การดำเนินการแบบการสนทนา (Dialogflow)

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

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

ในการสนทนาโต้ตอบไปมากับ Google Assistant ผู้ใช้ถามและรับคำตอบเมื่อมีเซสชันการประชุมเกิดขึ้น
รูปที่ 1 ตัวอย่างการดําเนินการแบบการสนทนา

Use Case

การดำเนินการแบบการสนทนาทำงานได้ดีที่สุดกับ Use Case ง่ายๆ ที่ช่วยเสริมประสบการณ์การใช้งานอีกแบบหนึ่ง การสนทนาที่ดีมักจัดอยู่ในหมวดหมู่ทั่วไปต่อไปนี้

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

วิธีการทำงานของการดำเนินการแบบการสนทนา

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

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

Fulfillment การสนทนาจะแยกวิเคราะห์คำค้นหาของผู้ใช้เป็น Structured Data ประมวลผลข้อมูลดังกล่าวและแสดงผลการตอบสนอง JSON ของเว็บฮุคไปยัง Assistant จากนั้น Assistant จะประมวลผลและแสดงคำตอบของคุณแก่ผู้ใช้

Fulfillment การสนทนาอาจแสดงด้วยอินพุตคำขอ JSON และเอาต์พุตการตอบสนอง JSON ของเว็บฮุคได้
รูปที่ 2 Fulfillment การสนทนาคือระบบ JSON แบบ in-JSON

การสร้างบริการประมวลผลภาษาธรรมชาติของคุณเองอาจเป็นเรื่องยาก ดังนั้นเราจึง มี Dialogflow ไว้สำหรับจัดการให้คุณ สำหรับนักพัฒนาซอฟต์แวร์ที่ใช้ Dialogflow ไม่ได้ เรายังมี Actions SDK เป็นตัวเลือกสำรองที่มีเส้นทางการพัฒนาซอฟต์แวร์ที่แยกต่างหากแต่เกี่ยวข้องกัน

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

Actions on Google จะแยกวิเคราะห์คำพูดของผู้ใช้และส่งคำขอไปยัง Dialogflow Dialogflow จับคู่ Intent แล้วแยกพารามิเตอร์เพื่อส่งไปยัง Fulfillment ของ Dialogflow ที่เกี่ยวข้อง จากนั้น Fulfillment จะส่งการตอบกลับกลับไปยัง Actions on Google ซึ่งจะแสดงผลการตอบกลับในแพลตฟอร์ม Assistant
รูปที่ 3 Fulfillment ของการสนทนาเมื่อใช้ Dialogflow

การสร้างการกระทำที่เป็นการสนทนา

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

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

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

การดำเนินการตามคำสั่งซื้อโดยใช้ Dialogflow

เมื่อผสานรวมกับ Agent ของ Dialogflow ตัวแทนจะจัดการ NLU สำหรับการค้นหาของผู้ใช้ในการดําเนินการแบบการสนทนา ตัวแทน Dialogflow จะดำเนินการต่อไปนี้ให้คุณระหว่างขั้นตอนนี้

  1. แยกวิเคราะห์คําขอเข้ามาจาก Assistant แต่ละรายการตามวลีการฝึกที่คุณระบุและบริบทของการสนทนา
  2. จับคู่แต่ละคำขอกับ Intent ของ Dialogflow (หรือที่เรียกว่ากิจกรรม)
  3. ดึงข้อมูลพารามิเตอร์ลงในเอนทิตี Dialogflow

จากนั้น Agent ของ Dialogflow จะเรียกใช้ Fulfillment ของตัวเอง (ใช้งานเป็นเว็บฮุคได้) เพื่อทำตรรกะบางอย่าง เช่น การเรียกใช้ REST API หรือบริการแบ็กเอนด์อื่นๆ ที่สร้างคำตอบเพื่อกลับไปที่ Assistant เว็บฮุคนี้เรียกอีกอย่างว่า Fulfillment ของ Dialogflow และใช้รูปแบบเว็บฮุคของ Dialogflow

Dialogflow ยอมรับการเปล่งเสียงของผู้ใช้สำหรับการจับคู่ Intent และมอบพารามิเตอร์ที่ดึงข้อมูลไปยัง Fulfillment ของ Dialogflow Fulfillment แสดงผลการตอบกลับให้ผู้ใช้
รูปที่ 4 Agent ของ Dialogflow แยกวิเคราะห์การค้นหาของผู้ใช้เป็น Structured Data สำหรับ Fulfillment ของ Dialogflow

การสร้าง Fulfillment การสนทนาเมื่อใช้ Dialogflow นั้นหลักๆ แล้วเกิดจากการพัฒนาเว็บฮุค Fulfillment ของ Dialogflow เป็นหลัก ในเอกสารสำหรับ Actions on Google จะมีแหล่งข้อมูลต่างๆ ที่จะช่วยในการออกแบบ สร้าง และทดสอบเว็บฮุค Fulfillment ของ Dialogflow สิ่งที่เห็นได้ชัดที่สุดคือทรัพยากรเหล่านั้นรวมถึงไลบรารีของไคลเอ็นต์ Node.js และไลบรารีของไคลเอ็นต์ Java

ขณะสร้างด้วย Dialogflow คุณจะใช้ Dialogflow Console เพื่อสร้างความตั้งใจ เอนทิตี และวลีการฝึกของ Dialogflow

ดูข้อมูลทั่วไปเพิ่มเติมเกี่ยวกับ Dialogflow ได้เกี่ยวกับการผสานรวม Actions on Google ในเอกสารประกอบของ Dialogflow

การดำเนินการตามคำสั่งซื้อโดยใช้ Actions SDK

การสร้าง Fulfillment การสนทนาด้วย Actions SDK นั้นหลักๆ แล้วประกอบด้วยการสร้างและการทำให้แพ็กเกจ Action ใช้งานได้ ระบบจะสร้างแพ็กเกจการดำเนินการในรูปแบบ ActionPackage และใช้รูปแบบเว็บฮุคสำหรับการสนทนา แพ็กเกจ Action ประกอบด้วยการดำเนินการทั้งหมดสำหรับโปรเจ็กต์ Actions หนึ่งๆ

Assistant จะแสดงคำถามของผู้ใช้เกี่ยวกับ Fulfillment การสนทนาของคุณโดยใช้ Intent ของ Actions on Google สำหรับ Intent แต่ละรายการ เว็บฮุค Fulfillment ต้องแยกวิเคราะห์ Intent ประมวลผล แล้วส่งการตอบกลับ JSON กลับไปยัง Assistant สำหรับผู้ใช้

การตอบกลับ

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

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

ขั้นตอนถัดไป

ทำตาม Codelab เกี่ยวกับ Build Actions สำหรับ Google Assistant (ระดับ 1) เพื่อดูวิธีการทีละขั้นตอนโดยละเอียดเพื่อเริ่มสร้างการดำเนินการแบบการสนทนาครั้งแรก

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