สร้างแอป 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 ที่กําหนดค่าไว้ล่วงหน้าสําหรับแอป Chat ของ Dialogflow
  • ทดสอบ 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

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

  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 ที่ถูกต้อง แล้วคลิกเปิดใช้

สร้าง Agent ของ Dialogflow CX

ตัวแทน CX ของ Dialogflow เป็นตัวแทนเสมือนจริงที่จัดการการสนทนาพร้อมกันกับผู้ใช้ปลายทาง เป็นโมดูลความเข้าใจภาษาธรรมชาติ ที่จะเข้าใจความแตกต่างเล็กๆ น้อยๆ ของภาษามนุษย์ 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. เลือกตัวแทนที่สร้างไว้ล่วงหน้า สำหรับคู่มือนี้ ให้เลือกการเดินทาง: รถเช่า

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

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

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

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

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

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

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

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

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

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

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

ทดสอบแอป Chat

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

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

    ไปที่ Google Chat

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

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

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

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