สร้างแอป Google Chat ของ Dialogflow CX ที่เข้าใจและโต้ตอบด้วยภาษาธรรมชาติ

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

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

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

  • จองเที่ยวบิน
  • นัดหมายแพทย์
  • สั่งอาหารให้จัดส่งถึงที่
  • ตอบคำถามเกี่ยวกับแคตตาล็อกผลิตภัณฑ์ค้าปลีก เช่น สินค้ามีจำหน่ายในสีอื่นๆ หรือไม่
  • หน้าการเลือก Agent ของ Dialogflow ที่สร้างไว้ล่วงหน้า
    ภาพที่ 1 การเลือก Agent ที่สร้างไว้ล่วงหน้าสำหรับแอป Dialogflow Chat
  • การทดสอบ Agent ใน Dialogflow CX
    รูปที่ 2 ทดสอบ Agent ใน Dialogflow CX เพื่อให้แน่ใจว่าตรรกะและการกำหนดค่าของ Agent ทำงานตามที่ต้องการ แผนภาพนี้แสดงหน้าหัวข้อต่างๆ ตามลำดับซึ่งเกี่ยวข้องกับขั้นตอนที่เฉพาะเจาะจงในการสนทนา เช่น การตั้งค่าสถานที่รับและส่งคืนรถเช่า รวมถึงกำหนดตรรกะที่เชื่อมโยงหน้าเว็บทั้งสองเข้าด้วยกัน ระบบจะทดสอบการสนทนาในเครื่องจำลอง
  • กำหนดค่าแอป Chat ใน Dialogflow
    รูปที่ 3 กำหนดค่าแอปใน Chat เพื่อประมวลผลคำตอบโดยใช้ Agent ของ Dialogflow CX ในหน้าการกำหนดค่า Chat API ในคอนโซล Google Cloud
  • การทดสอบแอป Chat ของ Dialogflow CX
    รูปที่ 4 การสนทนาเกี่ยวกับการจองรถเช่าด้วยแอป Dialogflow Chat ใน Google Chat

วัตถุประสงค์

  • ตั้งค่าสภาพแวดล้อมของคุณ
  • สร้างและทำให้ Agent ของ Dialogflow CX ใช้งานได้
  • สร้างและทำให้แอป Chat ที่ขับเคลื่อนโดย Dialogflow CX Agent ใช้งานได้
  • ทดสอบแอป Chat

สิ่งที่ต้องดำเนินการก่อน

สถาปัตยกรรม

แผนภาพต่อไปนี้แสดงสถาปัตยกรรมของแอป Chat ที่สร้างด้วย Dialogflow

สถาปัตยกรรมของแอป Chat ที่ใช้งานร่วมกับ Dialogflow

ในแผนภาพก่อนหน้านี้ ผู้ใช้ที่โต้ตอบกับแอป Chat ใน Dialogflow มีขั้นตอนดังนี้

  1. ผู้ใช้ส่งข้อความใน Chat ไปยังแอป Chat ไม่ว่าจะเป็นข้อความส่วนตัวหรือในพื้นที่ใน Chat
  2. Agent เสมือน Dialogflow ที่อยู่ใน Google Cloud รับและประมวลผลข้อความเพื่อสร้างการตอบกลับ
  3. หรือการใช้ เว็บฮุคของ Dialogflow ช่วยให้ Agent ของ Dialogflow โต้ตอบกับบริการของบุคคลที่สามได้ เช่น ระบบการจัดการโปรเจ็กต์หรือเครื่องมือจำหน่ายตั๋ว
  4. โดย Agent ของ Dialogflow จะส่งคำตอบกลับไปยัง บริการแอป Chat ใน Chat
  5. ระบบจะส่งคำตอบไปยังพื้นที่ใน Chat

ตั้งค่าสภาพแวดล้อม

ก่อนใช้ Google APIs คุณต้องเปิดใช้ API เหล่านี้ในโปรเจ็กต์ Google Cloud คุณสามารถเปิด API ได้ตั้งแต่ 1 รายการขึ้นไปในโปรเจ็กต์ Google Cloud เดียว
  1. ในคอนโซล Google Cloud ให้เปิดใช้ Google Chat API และ Dialogflow API

    เปิดใช้ API

  2. ยืนยันว่าคุณเปิดใช้ API ในโปรเจ็กต์ Cloud ที่ถูกต้อง แล้วคลิกถัดไป

  3. ยืนยันว่าคุณเปิดใช้ API ที่ถูกต้อง แล้วคลิกเปิดใช้

สร้าง Agent ของ Dialogflow CX

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

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

วิธีสร้าง Agent ของ Dialogflow CX มีดังนี้

  1. ในคอนโซล Dialogflow CX ให้เปิด Dialogflow CX Console คลิก เมนู > Dialogflow CX

    ไปที่คอนโซล Dialogflow CX

  2. เลือกโปรเจ็กต์ Google Cloud หากต้องการค้นหาโปรเจ็กต์ คุณอาจต้องคลิกทั้งหมด แล้วค้นหาโปรเจ็กต์ที่ต้องการ

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

    หากต้องการเลือก Agent ที่สร้างไว้ล่วงหน้า ให้ทำตามขั้นตอนต่อไปนี้

    1. คลิกใช้ Agent ที่สร้างไว้ล่วงหน้า
    2. เลือก Agent ที่สร้างไว้ล่วงหน้า สำหรับคู่มือนี้ ให้เลือก การเดินทาง: บริการรถเช่า

      ตัวแทนจะได้รับการให้คะแนนในระดับเริ่มต้น ระดับกลาง หรือขั้นสูงตามจำนวนฟีเจอร์ที่ตัวแทนใช้และความซับซ้อนของตรรกะการสนทนา การเลือก Agent ระดับกลางหรือขั้นสูงอาจต้องมีการปรับแต่งและการตั้งค่าเฉพาะตัวแทน รวมถึงการเปิดใช้ฟีเจอร์และ API ในคอนโซล Google Cloud

    3. คลิกนำเข้าในฐานะตัวแทน

    หากต้องการสร้างตัวแทนของคุณเอง ให้ทำตามขั้นตอนต่อไปนี้

    1. คลิกสร้างตัวแทน
    2. เลือกสร้างอัตโนมัติเพื่อสร้าง Agent พื้นที่เก็บข้อมูล หรือเลือกสร้างของคุณเองเพื่อสร้าง Agent ประเภทอื่นๆ

    ดูคำแนะนำโดยละเอียดเกี่ยวกับขั้นตอนการสร้าง Agent ได้ที่สร้าง Agent ของ Dialogflow CX

  4. กำหนดการตั้งค่า Agent พื้นฐาน

    1. ป้อนชื่อที่แสดงในชื่อที่แสดง
    2. เลือกสถานที่ตั้งที่ต้องการ หากต้องการเปลี่ยนการตั้งค่าตำแหน่งขั้นสูง ให้คลิกแก้ไข
    3. เลือกเขตเวลาที่ต้องการ
    4. เลือกภาษาเริ่มต้นสำหรับตัวแทนของคุณ หลังจากสร้างตัวแทนแล้ว คุณจะเปลี่ยนภาษาเริ่มต้นสำหรับตัวแทนไม่ได้
  5. คลิกสร้าง Dialogflow CX จะเริ่มสร้าง Agent จากนั้น จะแสดงโฟลว์เริ่มต้นเริ่มต้นของ Agent

  6. คุณสามารถปรับแต่งตัวแทนได้ตามต้องการ ดูคำแนะนำแบบทีละขั้นโดยละเอียดเกี่ยวกับกระบวนการปรับแต่ง Agent ได้ที่สร้าง Agent ของ Dialogflow CX

  7. แนวทางปฏิบัติแนะนำคือทดสอบตัวแทนโดยทำดังนี้

    1. คลิกทดสอบตัวแทน
    2. เลือกทดสอบ Agent ในสภาพแวดล้อม
    3. ในสภาพแวดล้อม ให้เลือกฉบับร่าง
    4. ในโฟลว์ ให้เลือกขั้นตอนการเริ่มต้นเริ่มต้น
    5. ในหน้า ให้เลือกหน้าเริ่มต้น
    6. ในแถบเขียน Talk to Agent ให้พิมพ์ Hello แล้วกด Enter ตัวแทนตอบกลับด้วยการแนะนำตัวเอง
    7. ทําการทดสอบโดยให้มีตัวอย่างการสนทนาทดสอบ
  8. สร้าง Agent ของ Dialogflow CX แล้ว กลับไปที่คอนโซล Dialogflow CX คลิกเมนู > Dialogflow CX

    ไปที่คอนโซล Dialogflow CX

  9. ในส่วน Agent ให้คลิก > คัดลอกชื่อ บันทึกชื่อนี้ไว้ เพื่อให้คุณใช้เมื่อกำหนดค่าแอป Chat

สร้างแอปใน Chat และเชื่อมต่อกับตัวแทน Dialogflow

หลังจากสร้าง Agent ของ Dialogflow CX แล้ว ให้ทำตามขั้นตอนต่อไปนี้เพื่อเปลี่ยนให้เป็นแอป Chat

  1. ไปที่ Google Chat API ในคอนโซล Google Cloud ค้นหา "Google Chat API" แล้วคลิก Google Chat API จากนั้นคลิกจัดการ

    ไปที่ Chat API

  2. คลิกการกำหนดค่า แล้วตั้งค่าแอป Chat ดังนี้

    1. ป้อน Dialogflow App ในชื่อแอป
    2. ใน URL รูปโปรไฟล์ ให้ป้อน https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png
    3. ในคำอธิบาย ให้ป้อน Responds to real human conversation
    4. ในส่วนฟังก์ชัน ให้เลือกรับข้อความแบบ 1:1 และเข้าร่วมพื้นที่ทำงานและการสนทนากลุ่ม
    5. ในส่วนการตั้งค่าการเชื่อมต่อ ให้เลือก Dialogflow
    6. เลือก Dialogflow CX ในส่วนการตั้งค่า Dialogflow
    7. ในชื่อทรัพยากร Agent หรือสภาพแวดล้อม ให้วางชื่อ Agent ของ Dialogflow CX ที่คัดลอกที่ท้ายหัวข้อสร้าง Agent ของ Dialogflow CX
    8. ทำให้แอป Chat นี้พร้อมใช้งานสำหรับบางคนและบางกลุ่มในโดเมนแล้วป้อนอีเมลของคุณ
    9. เลือกบันทึกข้อผิดพลาดในการบันทึกในส่วนบันทึก
  3. คลิกบันทึก

แอป Chat พร้อมที่จะรับและตอบกลับข้อความบน Chat แล้ว

ทดสอบแอป Chat

ทดสอบแอป Chat ของ Dialogflow CX โดยการรับส่งข้อความใน Google Chat

  1. เปิด Google Chat โดยใช้บัญชี Google Workspace ที่คุณให้ไว้เมื่อเพิ่มตัวคุณเองเป็นผู้ทดสอบที่เชื่อถือได้

    ไปที่ Google Chat

  2. คลิก แชทใหม่
  3. ในช่องเพิ่มผู้คนอย่างน้อย 1 คน ให้พิมพ์ชื่อแอป ของคุณ
  4. เลือกแอปใน Chat จากผลการค้นหา ข้อความส่วนตัวจะเปิดขึ้น

  5. ในข้อความส่วนตัวใหม่ที่มีแอป ให้พิมพ์ Hello แล้วกด enter

    แอป Dialogflow Chat ตอบสนอง ด้วยการแนะนำตัวเอง

  6. ดำเนินการทดสอบให้เสร็จสิ้นโดยให้มี ตัวอย่างการสนทนาทดสอบ

ตัวอย่างบทสนทนาทดสอบ

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

Dialog คำอธิบาย
ผู้ใช้ปลายทาง: สวัสดี
ตัวแทน: สวัสดี ฉันเป็นตัวแทนรถเช่าเสมือนจริง เราช่วยคุณเริ่มจองรถเช่าใหม่ได้ วันนี้คุณต้องการความช่วยเหลือในด้านใด
  1. ระบบจะเรียกใช้เส้นทางความตั้งใจเริ่มต้นเริ่มต้นในขั้นตอนการเริ่มต้นเริ่มต้น
  2. การดำเนินการให้สมบูรณ์สำหรับเครื่องจัดการสถานะนี้ ("สวัสดี ฉัน...") ลงในคิวการตอบกลับ
  3. ตัวแทนจะส่งคิวการตอบกลับไปยังผู้ใช้ปลายทาง
ผู้ใช้ปลายทาง: ฉันต้องการเช่ารถ
ตัวแทน: คุณต้องการไปรับยานพาหนะที่ไหน
  1. เส้นทาง Intent car_rental.reservation_create ในหน้าเริ่มต้นตรงกัน
  2. เซสชันจะเปลี่ยนไปยังหน้าสถานที่รับสินค้า
  3. แบบฟอร์มในหน้าสถานที่รับสินค้าไม่สมบูรณ์ ดังนั้น ตัวแทนจึงใช้พารามิเตอร์ pickup_location เพื่อแจ้งให้ผู้ใช้ ("คุณจะไปรับที่ไหน...") ซึ่งจะเพิ่มลงในคิวการตอบกลับ
  4. ตัวแทนจะส่งคิวการตอบกลับไปยังผู้ใช้ปลายทาง
ผู้ใช้ปลายทาง: ลาสเวกัส
ตัวแทน: ตกลง คุณจะไปรับที่ลาสเวกัส
ตัวแทน: สถานที่ส่งคืนแตกต่างจากสถานที่รับของไหม
  1. อินพุตของผู้ใช้ปลายทางจะเติมพารามิเตอร์ pickup_location ที่ตัวแทนขอใน การเปลี่ยนการสนทนาครั้งก่อน
  2. เส้นทาง Intent car_rental.return_different_location ในเส้นทางเริ่มต้นเริ่มต้นนั้นตรงกัน
  3. จะมีการประเมินและเรียกใช้เส้นทางที่กรอกแบบฟอร์มในหน้าสถานที่รับสินค้า ไฟล์มี Fulfillment ("Ok, yourpickup...") ซึ่งจะเพิ่มลงในคิวการตอบกลับโดยที่มีการแก้ไขการอ้างอิงพารามิเตอร์เป็นค่าจริงที่ผู้ใช้ปลายทางระบุไว้
  4. เซสชันจะเปลี่ยนไปยังหน้ายืนยันตำแหน่ง
  5. หน้ายืนยันสถานที่มีการดำเนินการตามคำสั่งซื้อ ("สถานที่ส่งคืนของคุณแตกต่างไปหรือเปล่า...") ซึ่งจะเพิ่มลงในคิวการตอบกลับ
  6. ตัวแทนจะส่งคิวการตอบกลับไปยังผู้ใช้ปลายทาง
ผู้ใช้ปลายทาง: ใช่ จะเอารถไปส่งที่ลอสแอนเจลิส
ตัวแทน: โอเค คุณจะส่งคืนที่ลอสแอนเจลิส
ตัวแทน: คุณต้องการมารับยานพาหนะเมื่อใด
  1. เส้นทาง Intent car_rental.return_different_location ในเส้นทางเริ่มต้นเริ่มต้นนั้นตรงกัน
  2. เซสชันจะเปลี่ยนไปยังหน้าสถานที่ส่งคืน
  3. อินพุตของผู้ใช้ปลายทางจะเติมเต็มพารามิเตอร์ drop_off_location ที่ตัวแทนขอใน การเปลี่ยนการสนทนาก่อนหน้านี้
  4. จะมีการประเมินและเรียกใช้เส้นทางที่กรอกแบบฟอร์มในหน้าสถานที่ส่งคืน ซึ่งมีการดำเนินการตามคำสั่งซื้อ ("ตกลง ส่งคืน...") ซึ่งเพิ่มลงในคิวการตอบกลับ
  5. เซสชันจะเปลี่ยนไปยังหน้าระยะเวลาการเช่า
  6. หน้าระยะเวลาการเช่ามีค่าในแบบฟอร์มที่ไม่สมบูรณ์ ระบบจึงแจ้งให้ผู้ใช้ระบุพารามิเตอร์ pickup_date_time ("คุณต้องการรับสินค้าในวันที่และเวลาใด...") ซึ่งจะเพิ่มลงในคิวการตอบกลับ
  7. ตัวแทนจะส่งคิวการตอบกลับไปยังผู้ใช้ปลายทาง
ผู้ใช้ปลายทาง: ฉันต้องการรับรถวันที่ 5 มีนาคมตอนเที่ยง
ตัวแทน: คุณต้องการนำยานพาหนะมาลงวันที่และเวลาใด
  1. อินพุตของผู้ใช้ปลายทางจะเติมพารามิเตอร์ pickup_date_time ที่ตัวแทนขอใน การสนทนาครั้งก่อน
  2. หน้าระยะเวลาการเช่ามีค่าแบบฟอร์มอีกรายการหนึ่งที่ขาดหายไป ดังนั้นจึงบอกให้ผู้ใช้ระบุพารามิเตอร์ drop_off_date_time ("คุณต้องการยกเลิกวันที่และเวลาใด...") ซึ่งจะเพิ่มลงในคิวการตอบกลับ
  3. ตัวแทนจะส่งคิวการตอบกลับไปยังผู้ใช้ปลายทาง
ผู้ใช้ปลายทาง: วันที่ 15 มีนาคม ตอนเที่ยง
ตัวแทน: ขอยืนยันข้อมูลต่อไปนี้

คุณจะมารับรถใน ลาสเวกัส 2024-03-05 12:00:00 น. และไปส่งที่ลอสแอนเจลิส 15-03-2024 12:00:00

ถูกต้องไหม
  1. อินพุตของผู้ใช้ปลายทางจะเติมพารามิเตอร์ drop_off_date_time ที่ตัวแทนขอในการ เปลี่ยนการสนทนาก่อนหน้านี้
  2. เซสชันจะเปลี่ยนไปยังหน้ายืนยันระยะเวลาการเช่า
  3. หน้ายืนยันระยะเวลาการเช่ามีการดำเนินการสำหรับการเข้าร่วม ("เพื่อยืนยัน...") ซึ่งจะเพิ่มลงในคิวการตอบกลับ
  4. ตัวแทนจะส่งคิวการตอบกลับไปยังผู้ใช้ปลายทาง
ผู้ใช้ปลายทาง: ใช่ ขอบคุณ
ตัวแทน: เยี่ยมเลย ต่อไปให้เลือกพาหนะ
ตัวแทน: คุณต้องการใช้รถประหยัดหรือหรู
  1. เส้นทาง Intent small_talk.confirmation.yes ในหน้าsmall_talk.confirmation.yesตรงกัน
  2. ตัวแทนยืนยันตัวเลือกของผู้ใช้ด้วยข้อความ ("เยี่ยมมาก ตอนนี้เรามาเลือก...") ซึ่งจะเพิ่มลงในคิวการตอบกลับ
  3. เซสชันจะเปลี่ยนไปยังหน้าการชี้แจงยานพาหนะ
  4. แบบฟอร์มหน้าการชี้แจงยานพาหนะยังไม่สมบูรณ์ ดังนั้น ตัวแทนจึงใช้พารามิเตอร์ vehicle_type เพื่อแจ้งเตือนผู้ใช้ ("คุณต้องการแบบประหยัดหรือหรูหรา...") ซึ่งจะเพิ่มลงในคิวการตอบกลับ
  5. ตัวแทนจะส่งคิวการตอบกลับไปยังผู้ใช้ปลายทาง
ผู้ใช้ปลายทาง: โปรดใช้แบบประหยัด
ตัวแทน: จะใช้รถ Cymbal หรือรถกระบะ Cymbal ก็ได้
  1. เส้นทาง Intent $session.params.vehicle_type="economy_vehicle" ตรงกัน
  2. เซสชันจะเปลี่ยนเป็นหน้าตัวเลือกแบบประหยัด
  3. หน้า Economy Options จะมีการดำเนินการตามคำสั่งซื้อ ("คุณต้องการบริการ...") ซึ่งจะเพิ่มลงในคิวการตอบกลับ
  4. ตัวแทนจะส่งคิวการตอบกลับไปยังผู้ใช้ปลายทาง
ผู้ใช้ปลายทาง: รถกระบะ Cymbal
ตัวแทน: รถบรรทุก Cymbal มีราคา $50.33 ต่อวัน เข้าพักได้ 4 คน มาพร้อมวิทยุ AM/FM ต้องการดำเนินการชำระเงินต่อไหม
ผู้ใช้ปลายทาง: ใช่
  1. ระบบจับคู่เส้นทาง Intent $session.params.vehicle_type="Cymbal Truck" และแสดงพารามิเตอร์ vehicle_model แล้ว
  2. เซสชันจะเปลี่ยนไปยังหน้ายืนยันรถบรรทุก Cymbal
  3. หน้ายืนยันรถบรรทุก Cymbal ดำเนินการตามคำสั่งซื้อ ("รถ Cymbal Truck มีราคา $50.33 ต่อวัน...") ซึ่งจะเพิ่มลงในคิวการตอบกลับ
  4. ตัวแทนจะส่งคิวการตอบกลับไปยังผู้ใช้ปลายทาง
  5. การตอบกลับของผู้ใช้ตรงกับเส้นทาง small_talk.confirmation.yes
ตัวแทน: คุณจะใช้บัตรประเภทใด
ผู้ใช้ปลายทาง: Altostrat
Agent: โปรดป้อนหมายเลขบัตร
ผู้ใช้ปลายทาง: 1234 1234 1234 1234
ตัวแทน: บัตรชื่ออะไร
ผู้ใช้ปลายทาง: Charlie
ตัวแทน: ที่อยู่สำหรับการเรียกเก็บเงินคืออะไร
ผู้ใช้ปลายทาง: 1800 Amphibious Blvd. Mountain View, CA
ตัวแทน: รหัสไปรษณีย์สำหรับการเรียกเก็บเงินคืออะไร
ผู้ใช้ปลายทาง: 94045
ตัวแทน: คุณจะไปรับรถ Cymbal Car ในลาสเวกัส วันที่ 05-03-2024 เวลา 12:00:00 น. แล้วส่งคืนคือวันที่ 15-03-2024 12:00:00 ราคารวมของการเดินทางนี้จะเท่ากับ $175.38
ตัวแทน: ขอขอบคุณที่เช่ากับเรา และขอให้โชคดี
  1. เซสชันจะเปลี่ยนเป็นหน้าการชำระเงิน
  2. แบบฟอร์มการชำระเงินยังไม่สมบูรณ์ ตัวแทนจะแจ้งให้ผู้ใช้ ระบุพารามิเตอร์ card_type, card_number, billing_name, billing_street_address, และ billing_zip_code ("ประเภทบัตรจะ...") ซึ่งจะเพิ่มอยู่ในคิวการตอบกลับตามลำดับ และส่งเมื่อผู้ใช้ตอบกลับ คำตอบของผู้ใช้จะกำหนดค่าพารามิเตอร์แต่ละค่า
  3. เซสชันจะเปลี่ยนไปยังหน้ายืนยันการเช่า
  4. หน้ายืนยันการเช่ามีรายการดำเนินการตามคำสั่งซื้อ ("ตกลง บริการรับสินค้าจะ...") ซึ่งจะเพิ่มลงในคิวการตอบกลับ
  5. ตัวแทนจะส่งคิวการตอบกลับไปยังผู้ใช้ปลายทาง
  6. เซสชันจะเปลี่ยนเป็นหน้าสิ้นสุดเซสชัน

ส่งข้อความการ์ดจาก Dialogflow

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

JSON ต่อไปนี้แสดงวิธีส่งข้อความการ์ดเป็นเพย์โหลดที่กำหนดเองในการดำเนินการตามคำสั่งซื้อ

json

{
  'cardsV2': [{
    'cardId': 'createCardMessage',
    'card': {
      'header': {
        'title': 'A card message!',
        'subtitle': 'Sent from Dialogflow',
        'imageUrl': 'https://developers.google.com/chat/images/chat-product-icon.png',
        'imageType': 'CIRCLE'
      },
      'sections': [
        {
          'widgets': [
            {
              'buttonList': {
                'buttons': [
                  {
                    'text': 'Read the docs!',
                    'onClick': {
                      'openLink': {
                        'url': 'https://developers.google.com/workspace/chat'
                      }
                    }
                  }
                ]
              }
            }
          ]
        }
      ]
    }
  }]
}

ข้อจำกัดและข้อควรพิจารณา

  • กิจกรรมการโต้ตอบทางแชท มีการสนับสนุนที่จำกัดและต้องพิจารณาบางอย่างดังนี้
    • ระบบรองรับประเภทเหตุการณ์การโต้ตอบต่อไปนี้
      • MESSAGE
      • ADDED_TO_SPACE
      • CARD_CLICKED
    • สำหรับเหตุการณ์ MESSAGE หรือ ADDED_TO_SPACE อินพุตการค้นหาที่ส่งไปยัง Agent ของ Dialogflow จะตรงกับค่าของช่อง argumentText ในข้อความ Chat หากข้อความมีคำสั่งเครื่องหมายทับ ระบบจะใช้ค่าของช่อง text แทน
    • สำหรับเหตุการณ์ CARD_CLICKED อินพุตการค้นหาที่ส่งไปยัง Agent ของ Dialogflow จะมีรูปแบบ CARD_CLICKED.functionName โดยที่ functionName ตรงกับค่าของช่อง function ของออบเจ็กต์ Action ที่แนบมากับองค์ประกอบการ์ดแบบอินเทอร์แอกทีฟ (เช่น ปุ่ม)
    • ระบบจะส่งเพย์โหลด JSON แบบเต็มของเหตุการณ์การโต้ตอบกับ Chat แต่ละเหตุการณ์ไปยัง Dialogflow เป็นเพย์โหลดที่กำหนดเองในพารามิเตอร์การค้นหา และจะเข้าถึงได้ด้วยเว็บฮุคของ Dialogflow จากการค้นหาค่าของช่อง WebhookRequest.payload
  • ข้อควรพิจารณาในการตอบสนองต่อคําสั่งเครื่องหมายทับและการรับข้อมูลจากการ์ดหรือกล่องโต้ตอบมีดังนี้
    • เมื่อแอปใน Chat ของ Dialogflow ได้รับข้อความที่มีคำสั่งเครื่องหมายทับ อินพุตของคำค้นหาจะมีเฉพาะค่าของช่อง text เท่านั้น ช่อง text เริ่มต้นด้วยชื่อของคำสั่งเครื่องหมายทับ (เช่น /command) ซึ่งใช้เพื่อกำหนดค่า Intent ของ Agent ของ Dialogflow เพื่อตรวจหาคำสั่งเครื่องหมายทับได้
    • หาก Agent ของ Dialogflow ต้องประมวลผล เพย์โหลด JSON ของเหตุการณ์การโต้ตอบใน Chat ก็ทำได้โดยใช้ เว็บฮุคของ Dialogflow เพื่อตรวจสอบเพย์โหลดที่กำหนดเองในพารามิเตอร์การค้นหา
    • หากต้องการแสดงกล่องโต้ตอบจาก Agent ของ Dialogflow ให้ตอบกลับด้วยเพย์โหลด JSON ที่กำหนดเองรายการเดียว ซึ่งรวมถึงข้อความที่มีDIALOG การตอบกลับการดำเนินการ
    • Agent ของ Dialogflow จะประมวลผลข้อมูลที่ป้อนจากการ์ดเพื่อตรวจจับความตั้งใจที่ขึ้นต้นด้วยข้อความ CARD_CLICKED และตอบกลับด้วยเพย์โหลด JSON ที่กำหนดเองรายการเดียวที่มีการดำเนินการที่เหมาะสม
  • ไม่รองรับตัวอย่างลิงก์
  • หาก Agent ของ Dialogflow ตอบกลับด้วยข้อความเดียว ระบบจะส่งข้อความไปยัง Google Chat พร้อมกัน หาก Agent ของ Dialogflow ตอบกลับหลายข้อความ ระบบจะส่งข้อความทั้งหมดไปยัง Chat พร้อมกันโดยเรียกใช้เมธอด create ในทรัพยากร spaces.messages ใน Chat API 1 ครั้งสำหรับแต่ละข้อความ
  • เมื่อใช้การผสานรวม Dialogflow CX กับ Chat ต้องตั้งค่า Agent ของ Dialogflow และแอป Chat ในโปรเจ็กต์ Google Cloud เดียวกัน หากต้องตั้งค่า Dialogflow และ Chat ในโปรเจ็กต์ Cloud อื่น คุณสามารถตั้งค่าเซิร์ฟเวอร์ตัวกลางเพื่ออำนวยความสะดวกในการเชื่อมต่อ ดูวิธีการได้ที่ตัวอย่างการผสานรวม Chat สำหรับ Dialogflow CX ใน GitHub

แก้ปัญหา

เมื่อแอปหรือการ์ด Google Chat แสดงข้อผิดพลาด อินเทอร์เฟซ Chat จะแสดงข้อความว่า "เกิดข้อผิดพลาด" หรือ "ไม่สามารถดำเนินการตามคำขอของคุณ" บางครั้ง UI ของ Chat ไม่แสดงข้อความแสดงข้อผิดพลาด แต่แอปหรือการ์ด Chat ให้ผลลัพธ์ที่ไม่คาดคิด เช่น ข้อความในการ์ดอาจไม่ปรากฏขึ้น

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

ล้างข้อมูล

เราขอแนะนำให้คุณลบโปรเจ็กต์ Cloud เพื่อหลีกเลี่ยงการเรียกเก็บเงินกับบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในบทแนะนำนี้

  1. ในคอนโซล Google Cloud ให้ไปที่หน้าจัดการทรัพยากร คลิก เมนู > IAM และผู้ดูแลระบบ > จัดการทรัพยากร

    ไปที่เครื่องมือจัดการทรัพยากร

  2. ในรายการโปรเจ็กต์ ให้เลือกโปรเจ็กต์ที่ต้องการลบ แล้วคลิกลบ
  3. ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์แล้วคลิกปิดเครื่องเพื่อลบโปรเจ็กต์
  • Dialogflow CX ใช้คอมพิวเตอร์พื้นฐานในการออกแบบ Agent ของ Dialogflow ซึ่งให้คุณควบคุมการสนทนาได้อย่างชัดเจนและชัดเจน มอบประสบการณ์ของผู้ใช้ปลายทางที่ดีขึ้น และเวิร์กโฟลว์การพัฒนาที่ดีขึ้น เมื่อสร้างแอป Chat ของ Dialogflow เราขอแนะนำให้ใช้ Dialogflow CX
  • Dialogflow ES เป็นอีกวิธีในการใช้ Dialogflow กับแอป Chat