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

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

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

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

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

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

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

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

สถาปัตยกรรม

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

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

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

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

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

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

    เปิดใช้ API

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

  3. ตรวจสอบว่าคุณเปิดใช้ API ที่ถูกต้อง แล้วคลิกเปิดใช้

สร้างตัวแทน Dialogflow CX

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

สร้างแอป Chat และเชื่อมต่อกับ Agent ของ Dialogflow

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

  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 ให้เลือก Dialogflow CX
    7. ในชื่อทรัพยากรของตัวแทนหรือสภาพแวดล้อม ให้วางชื่อตัวแทน Dialogflow CX ที่คัดลอกไว้ที่ท้ายสร้างตัวแทน Dialogflow CX
    8. ทำให้แอป Chat นี้พร้อมใช้งานสำหรับบุคคลและกลุ่มที่เฉพาะเจาะจงในโดเมน แล้วป้อนอีเมลของคุณ
    9. ในส่วนบันทึก ให้เลือกบันทึกข้อผิดพลาดไปยังการบันทึก
  3. คลิกบันทึก

แอป Chat พร้อมรับและตอบกลับข้อความใน Chat แล้ว

ทดสอบแอป Chat

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

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

    ไปที่ Google Chat

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

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

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

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

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

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

Dialog คำอธิบาย
ผู้ใช้ปลายทาง: สวัสดี
ตัวแทน: สวัสดี ฉันเป็นตัวแทนรถเช่าเสมือน เราช่วยคุณเริ่มการจองรถเช่าใหม่ได้ วันนี้จะให้ฉันช่วยอะไรคุณบ้าง
  1. ระบบจะเรียกใช้เส้นทางIntent ต้อนรับเริ่มต้นในขั้นตอนการเริ่มต้นเริ่มต้น
  2. การตอบสนองสำหรับตัวแฮนเดิลสถานะนี้ ("สวัสดี ฉัน...") เพิ่มลงในคิวการตอบกลับ
  3. ตัวแทนจะส่งคิวคำตอบไปยังผู้ใช้ปลายทาง
ผู้ใช้ปลายทาง: ฉันต้องการเช่ารถ
ตัวแทน: คุณต้องการไปรับรถจากที่ใด
  1. เส้นทาง Intent car_rental.reservation_create ในหน้าเริ่มต้นจะตรงกัน
  2. เซสชันจะเปลี่ยนไปที่หน้าจุดรับ
  3. แบบฟอร์มหน้าสถานที่รับสินค้ายังไม่สมบูรณ์ ตัวแทนจึงใช้พารามิเตอร์ pickup_location เพื่อแจ้งผู้ใช้ ("คุณต้องการรับสินค้าที่ไหน...") ซึ่งจะเพิ่มลงในคิวการตอบกลับ
  4. ตัวแทนจะส่งคิวคำตอบไปยังผู้ใช้ปลายทาง
ผู้ใช้ปลายทาง: ลาสเวกัส
ตัวแทน: โอเค การรับสินค้าจะอยู่ที่ลาสเวกัส
ตัวแทน: สถานที่ส่งสินค้าของคุณแตกต่างจากสถานที่รับสินค้าไหม
  1. อินพุตของผู้ใช้ปลายทางจะเติมพารามิเตอร์ pickup_location ที่ตัวแทนขอในรอบการสนทนาก่อนหน้า
  2. เส้นทาง Intent car_rental.return_different_location ในขั้นตอนการเริ่มต้นเริ่มต้นจะจับคู่
  3. ระบบจะประเมินและเรียกใช้เส้นทางการกรอกแบบฟอร์มในหน้าจุดรับสินค้า การดำเนินการนี้มีการดำเนินการตามคำขอ ("ตกลง การรับส่งของคุณ...") ซึ่งเพิ่มลงในคิวการตอบกลับโดยมีการแก้ไขการอ้างอิงพารามิเตอร์เป็นค่าจริงที่ผู้ใช้ปลายทางระบุ
  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 มีนาคม เวลาเที่ยง
ตัวแทน: ขอตรวจสอบความถูกต้อง

คุณจะไปรับรถที่ Las Vegas 2024-03-05 12:00:00 และส่งคืนที่ Los Angeles 2024-03-15 12:00:00

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

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

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