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

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

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

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

สถาปัตยกรรม

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

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

ในแผนภาพก่อนหน้า ผู้ใช้ที่โต้ตอบกับแอป Dialogflow Chat จะมีโฟลว์ข้อมูลต่อไปนี้

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

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

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

    เปิดใช้ API

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

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

สร้าง Agent ของ Dialogflow CX

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

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

วิธีสร้าง Agent ของ Dialogflow CX

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ทดสอบแอป Chat

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

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

    ไปที่ Google Chat

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

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

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

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

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

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

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

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

ถูกต้องไหม
  1. อินพุตของผู้ใช้ปลายทางจะเติมพารามิเตอร์ drop_off_date_time ที่ Agent ขอใน ตาการสนทนาก่อนหน้า
  2. เซสชันจะเปลี่ยนไปยังหน้ายืนยันระยะเวลาการเช่า
  3. หน้ายืนยันระยะเวลาการเช่ามี Fulfillment ของตั๋วที่เข้าบริการ ("เพื่อให้คุณยืนยัน..."), ซึ่งเพิ่มไปยังคิวการตอบกลับ
  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. หน้าตัวเลือกแบบประหยัดมี Fulfillment การเข้าร่วม ("คุณต้องการ...") ซึ่งเพิ่มไปยังคิวการตอบกลับ
  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
ตัวแทน: โปรดป้อนหมายเลขบัตร
ผู้ใช้ปลายทาง: 1234 1234 1234 1234
ตัวแทน: ชื่อบนบัตรคืออะไร
ผู้ใช้ปลายทาง: ชาลี
ตัวแทน: ที่อยู่สำหรับการเรียกเก็บเงินคืออะไร
ผู้ใช้ปลายทาง: 1800 Amphibious Blvd. Mountain View, CA
Agent: รหัสไปรษณีย์สำหรับการเรียกเก็บเงินคืออะไร
ผู้ใช้ปลายทาง: 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 ต่อไปนี้แสดงวิธีส่งข้อความการ์ดเป็นเพย์โหลดที่กำหนดเองใน Fulfillment

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

แก้ปัญหา

เมื่อแอป 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
    • หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างและการกำหนดค่า Agent โปรดดูAgent ของ Dialogflow CX
    • ดูคำแนะนำโดยละเอียดเกี่ยวกับวิธีสร้างและกำหนดค่า Agent โดยละเอียดได้ที่ สร้าง Agent ของ Dialogflow
  • Dialogflow ES เป็นอีกวิธีในการใช้ Dialogflow กับแอปแชท