ทำความเข้าใจเอนทิตีใน Dialogflow

1. ก่อนเริ่มต้น

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

รายการต่อไปนี้อธิบายเอนทิตี 3 ประเภท

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

ข้อกำหนดเบื้องต้น

ก่อนดำเนินการต่อ คุณต้องทำ Codelab ต่อไปนี้ให้เสร็จ

  1. สร้างกำหนดเวลาการนัดหมายด้วย Dialogflow
  2. ผสานรวมแชทบอท Dialogflow กับ Actions on Google

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

สิ่งที่คุณจะได้เรียนรู้

  • วิธีสร้างและใช้เอนทิตีของระบบใน Dialogflow
  • วิธีสร้างและใช้เอนทิตีนักพัฒนาแอปใน Dialogflow
  • วิธีทดสอบเอเจนต์

สิ่งที่คุณจะสร้าง

  • Agent Dialogflow ที่สร้างไว้แล้วในเวอร์ชันที่ปรับปรุงแล้ว
  • เอนทิตีของนักพัฒนาแอปใน Dialogflow
  • เอนทิตีระบบใน Dialogflow

สิ่งที่คุณต้องมี

  • เว็บเบราว์เซอร์และอีเมลสำหรับเข้าสู่ระบบคอนโซล Dialogflow

2. วิธีเปิดใช้และใช้เอนทิตีของระบบใน Dialogflow

  1. ไปที่คอนโซลของ Dialogflow
  2. เลือกเอเจนต์เครื่องมือจัดตารางนัดหมายที่คุณสร้างไว้ก่อนหน้านี้

ecedc445a9578e3b.png

  1. คลิกเจตนา

37ee739b69fa1ae7.png

  1. คลิกกำหนดเวลานัดหมายเพื่อเปิดการตั้งค่าเจตนา

คุณจะเห็นวลีการฝึก เช่น "นัดหมายเวลา 16:00 น.ของพรุ่งนี้" ซึ่งระบบจะดึงข้อมูลวันที่และเวลาออกมาเป็น @sys.date และ @sys.time โดยอัตโนมัติ คุณสามารถเพิ่มวลีการฝึกเพิ่มเติมเพื่อดูว่า Dialogflow แยกเอนทิตีของระบบโดยอัตโนมัติอย่างไร

7dcdad1372191f90.png

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

3. วิธีเปิดใช้และใช้เอนทิตีนักพัฒนาซอฟต์แวร์ใน Dialogflow

สร้างเอนทิตีนักพัฒนาแอป

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

  1. คลิกเอนทิตี

4d8924f1d4edc0d1.png

  1. คลิกสร้างเอนทิตี

b77e94e5e47adbc7.png

  1. ป้อน "AppointmentType" เป็นชื่อเอนทิตี จากนั้นเพิ่ม "การจดทะเบียนยานพาหนะ" และ "ใบขับขี่" เป็นค่าอ้างอิง 2 ค่าพร้อมคำพ้องความหมาย 2-3 คำตามที่เห็นในรูปภาพต่อไปนี้ คลิกบันทึก

51562b4327dbaf1.png

คุณเพิ่มแถวที่มีบริการเพิ่มเติมเป็นประเภทเอนทิตีได้

  1. คลิกบันทึก

แก้ไขเจตนาเพื่อให้สอดคล้องกับเอนทิตีนักพัฒนาแอปที่สร้างขึ้นใหม่

  1. คลิกเจตนา
  2. ป้อน "นัดหมายทำใบขับขี่เวลา 15:00 น. พรุ่งนี้" ใน Intent การนัดหมาย

คุณจะเห็นการจดจำใบขับขี่ เวลา 15:00 น. และพรุ่งนี้โดยอัตโนมัติเป็นเอนทิตีของนักพัฒนาแอปและระบบ

5fb91b31806f06f.png

  1. ป้อนวลีการฝึกต่อไปนี้
  2. การนัดหมายต่ออายุใบอนุญาตในวันจันทร์
  3. นัดหมายเวลา 14:00 น. วันจันทร์เพื่อขอใบอนุญาต
  4. การนัดหมายจดทะเบียนยานพาหนะสำหรับวันจันทร์

5addff06908c61f8.png

  1. คุณต้องทำให้ AppointmentType เป็นฟิลด์ที่ต้องระบุ เช่นเดียวกับเวลาและวันที่ โดยไปที่การกระทำและพารามิเตอร์ แล้วเลือกช่องทําเครื่องหมายในแถว AppointmentType

c43e72c5c1a43f5c.png

  1. เพิ่มพรอมต์ เช่น "คุณต้องการรับบริการใด DMV มีบริการออกใบขับขี่และจดทะเบียนยานพาหนะ" หากผู้ใช้ไม่ได้ระบุประเภทการนัดหมาย ระบบจะใช้พรอมต์
  2. คลิกบันทึก

4. ทดสอบแชทบ็อต

คุณสามารถทดสอบแชทบอทในเครื่องจำลอง Actions หรือใช้การผสานรวมเว็บหรือ Google Home ที่คุณได้เรียนรู้ไปก่อนหน้านี้

กรณีทดสอบ 1

ในกรณีนี้ ผู้ใช้ขอเพียงแค่ตั้งเวลานัดหมายโดยไม่มีข้อมูลทั้ง 3 อย่าง Dialogflow จึงขอวันที่ เวลา และประเภทการนัดหมายโดยใช้ข้อความแจ้งการป้อนข้อมูลช่องที่คุณตั้งค่าไว้

  1. ผู้ใช้: "นัดหมาย"
  2. แชทบ็อต: "วันที่เท่าไหร่"
  3. ผู้ใช้: "23 พฤษภาคม"
  4. แชทบอท: "คุณสะดวกเข้ามาเวลาไหน"
  5. ผู้ใช้: "10 โมงเช้า"
  6. แชทบอท: "คุณต้องการรับบริการใด DMV มีบริการออกใบขับขี่และจดทะเบียนยานพาหนะ"
  7. ผู้ใช้: "ใบอนุญาต"
  8. แชทบอท: "คุณพร้อมสำหรับการนัดหมายจดทะเบียนรถในวันที่ 2019-05-23 เวลา 10:00:00 น. แล้วพบกัน"

กรณีทดสอบ 2

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

  1. ผู้ใช้: "ต้องการนัดหมายเวลา 16:00 น. ของวันพรุ่งนี้"
  2. แชทบอท: "คุณต้องการรับบริการใด DMV มีบริการออกใบขับขี่และจดทะเบียนยานพาหนะ"
  3. ผู้ใช้: "ใบอนุญาต"
  4. แชทบอท: "คุณพร้อมสำหรับการนัดหมายทำใบขับขี่ในวันที่ 24-04-2019 เวลา 16:00:00 น. แล้วพบกัน"

กรณีทดสอบ 3

ในกรณีนี้ ผู้ใช้จะให้ข้อมูลทั้งหมด Dialogflow จะประมวลผลข้อมูลและให้คำตอบพร้อมการยืนยันการนัดหมาย

  1. ผู้ใช้: "นัดหมายการจดทะเบียนยานพาหนะเวลา 14:00 น. พรุ่งนี้"
  2. แชทบอท: "คุณพร้อมแล้วสำหรับการนัดหมายจดทะเบียนรถในวันที่ 24-04-2019 เวลา 14:00:00 น. แล้วพบกัน"

5. ล้างข้อมูล

หากคุณวางแผนที่จะทำ Codelab อื่นๆ ของ Dialogflow ให้เสร็จสมบูรณ์ ให้ข้ามส่วนนี้ไปก่อนและกลับมาทำในภายหลัง

ลบเอเจนต์ Dialogflow

  • คลิก fe9c61cc27fb9f2e.png ข้างเอเจนต์ที่มีอยู่

520c1c6bb9f46ea6.png

  • ในแท็บทั่วไป ให้เลื่อนไปที่ด้านล่างแล้วคลิกลบเอเจนต์นี้
  • พิมพ์ลบในกล่องโต้ตอบ แล้วคลิกลบ

6. ขอแสดงความยินดี

คุณสร้างแชทบอทที่จัดการอินพุตที่กำหนดเองด้วยเอนทิตีของนักพัฒนาซอฟต์แวร์ ตอนนี้คุณเป็นนักพัฒนาแชทบ็อตแล้ว

ดูข้อมูลเพิ่มเติม

ดูข้อมูลเพิ่มเติมได้จากแหล่งข้อมูลต่อไปนี้