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

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

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

สถาปัตยกรรม

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

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

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

  1. ผู้ใช้ส่งข้อความใน 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 ใน โปรเจ็กต์ที่อยู่ในระบบคลาวด์ จากนั้นคลิกถัดไป

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

สร้าง Agent ของ Dialogflow CX

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    1. ป้อนชื่อที่แสดงในชื่อที่แสดง
    2. เลือกสถานที่ที่คุณต้องการ location ถ้าต้องการเปลี่ยนการตั้งค่าขั้นสูง การตั้งค่าตำแหน่ง คลิกแก้ไข
    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 แล้ว ให้ทำตามขั้นตอนต่อไปนี้เพื่อเปลี่ยนให้เป็น Agent แอปแชท:

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

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

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

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

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

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

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

คุณจะต้องมารับยานพาหนะภายใน ลาสเวกัส 2024-03-05 12:00:00 และเลิกใช้ ในลอสแอนเจลิส 15-03-2024 12:00:00

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

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 อินพุตการค้นหาที่ส่งไปยัง Agent ของ Dialogflow สอดคล้องกับค่าของช่อง argumentText ใน ข้อความแชท หากข้อความมี คำสั่ง slash ซึ่งเป็นค่าของ จะใช้ฟิลด์ text แทน
    • สำหรับเหตุการณ์ CARD_CLICKED ระบบจะอินพุตการค้นหาที่ส่งไปยัง Agent ของ Dialogflow มีรูปแบบเป็น CARD_CLICKED.functionName โดยที่ functionName ตรงกับค่าในฟิลด์ function ของฟิลด์ ออบเจ็กต์การดำเนินการ แนบอยู่กับองค์ประกอบของการ์ดแบบอินเทอร์แอกทีฟ (เช่น ปุ่ม)
    • เพย์โหลด JSON แบบเต็มของเหตุการณ์การโต้ตอบใน Chat แต่ละรายการ จะส่งไปยัง Dialogflow เป็นเพย์โหลดที่กำหนดเองในพารามิเตอร์การค้นหา และ สามารถเข้าถึงได้ด้วย เว็บฮุคของ Dialogflow ด้วยการค้นหาค่าในช่อง WebhookRequest.payload
  • ข้อควรพิจารณาในการตอบสนองต่อ คำสั่งเครื่องหมายทับและ การรับข้อมูลจากการ์ดหรือกล่องโต้ตอบ:
    • เมื่อแอปใน Dialogflow ของ Chat ได้รับข้อความที่มีเครื่องหมายทับ อินพุตของคำค้นหาจะมีเฉพาะค่าของช่อง text เท่านั้น ช่อง text จะเริ่มต้นด้วยชื่อของคําสั่งเครื่องหมายทับ (เช่น /command) ซึ่งใช้เพื่อกำหนดค่า Intent ของ Agent ของ Dialogflow ได้ เพื่อตรวจหาคำสั่งเครื่องหมายทับ
    • หาก Agent ของ Dialogflow ต้องประมวลผล เพย์โหลด JSON ของเหตุการณ์การโต้ตอบ Chat สามารถทำได้โดยใช้ เว็บฮุคของ Dialogflow เพื่อตรวจสอบเพย์โหลดที่กำหนดเองในพารามิเตอร์การค้นหา
    • หากต้องการแสดงกล่องโต้ตอบจาก Dialogflow Agent ให้ตอบกลับด้วยเพย์โหลด JSON ที่กำหนดเองรายการเดียวที่ มีข้อความที่มี DIALOG การตอบกลับการดำเนินการ
    • Agent ของ Dialogflow จะตรวจจับข้อมูลที่ป้อนจากการ์ดเพื่อประมวลผลข้อมูลที่ป้อนจากการ์ด Intent ที่ขึ้นต้นด้วยข้อความ CARD_CLICKED และตอบกลับด้วย เพย์โหลด JSON ที่กำหนดเองรายการเดียวที่มี action
  • ไม่รองรับตัวอย่างลิงก์
  • หาก 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 หรือ card จะแสดงผลข้อผิดพลาด อินเทอร์เฟซ Chat แสดงข้อความว่า "เกิดข้อผิดพลาด" หรือ "ไม่สามารถดำเนินการตามคำขอของคุณ" บางครั้ง UI ของ Chat ไม่แสดงข้อความแสดงข้อผิดพลาดใดๆ แต่แอป Chat หรือ ทำให้เกิดผลลัพธ์ที่ไม่คาดคิด เช่น ข้อความในการ์ดอาจ ปรากฏขึ้น

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

ล้างข้อมูล

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

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

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

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