สร้าง Actions สําหรับ Google Assistant โดยใช้ Actions Builder (ระดับ 2)

1. ภาพรวม

แพลตฟอร์มนักพัฒนาซอฟต์แวร์ Google Assistant ให้คุณสร้างซอฟต์แวร์เพื่อขยายฟังก์ชันการทํางานของ Google Assistant ซึ่งเป็นผู้ช่วยส่วนตัวในอุปกรณ์กว่า 1 พันล้านเครื่อง รวมถึงลําโพงอัจฉริยะ โทรศัพท์ รถยนต์ ทีวี หูฟัง และอื่นๆ ผู้ใช้มีส่วนร่วมกับ Assistant ในการสนทนาเพื่อทําสิ่งต่างๆ เช่น ซื้อของชําหรือจองรถโดยสาร ในฐานะนักพัฒนาซอฟต์แวร์ คุณจะใช้แพลตฟอร์มสําหรับนักพัฒนาแอป Assistant เพื่อสร้างและจัดการประสบการณ์การสนทนาที่น่าพอใจและมีประสิทธิภาพระหว่างผู้ใช้และบริการดําเนินการตามคําสั่งซื้อของบุคคลที่สามของคุณเองได้

Codelab นี้ครอบคลุมแนวคิดระดับกลางเพื่อการพัฒนาด้วย Google Assistant และต่อยอดจากการดําเนินการที่สร้างใน Codelab ระดับ 1 เราขอแนะนําอย่างยิ่งให้คุณเรียน Codelab ระดับ 1 ให้เสร็จสมบูรณ์ก่อนเริ่มหลักสูตรนี้

แอ็กชันที่คุณสร้างใน Codelab นี้จะแจ้งให้ผู้ใช้ทราบเกี่ยวกับภารกิจของตนเองในพื้นนรกตํานาน Gryffinberg โดยขึ้นอยู่กับความช่วยเหลือที่ผู้ใช้เลือก

สิ่งที่คุณจะสร้าง

ใน Codelab นี้ คุณสร้างการดําเนินการสนทนาที่ซับซ้อนด้วยฟังก์ชันต่อไปนี้

  • รวบรวมข้อมูลจากผู้ใช้และแก้ไขข้อความแจ้งการสนทนา ทั้งนี้ขึ้นอยู่กับค่า
  • ตอบกลับด้วยคําถามติดตามผลเพื่อสนทนาต่อ
  • สร้าง Game Loop เพื่อให้ผู้ใช้โต้ตอบกับ Action ได้อีกครั้งหลังจากได้รับแต้ม

ก่อนที่จะเริ่มสร้าง คุณสามารถโต้ตอบกับการดําเนินการแบบสดในอุปกรณ์ที่พร้อมใช้งาน Google Assistant ด้วยการพูดว่า "Hey Google คุยกับ Fate และ Fortune" เส้นทางเริ่มต้นผ่านการกระทํานี้สําหรับผู้ใช้ที่กลับมามีลักษณะดังต่อไปนี้

dd6f5c61296b8b50.png

eba043f546aa8c51.png

สิ่งที่คุณจะได้เรียนรู้

  • วิธีใช้ slots เพื่อรวบรวมข้อมูลจากผู้ใช้
  • วิธีใช้เงื่อนไขเพื่อเพิ่มตรรกะลงในฉาก
  • วิธีเพิ่ม Game Loop
  • วิธีเพิ่มเส้นทางสนับสนุน

สิ่งที่ต้องมี

ข้อกําหนดเบื้องต้นสําหรับ Codelab มีดังนี้

เราขอแนะนําเป็นอย่างยิ่งให้ทําความคุ้นเคยกับ JavaScript (ES6) เพื่อทําความเข้าใจรหัสการดําเนินการสําหรับ Codelab นี้

2. สร้างอินเทอร์เฟซการสนทนาต่อไป

ใน Codelab แรก คุณสร้างการดําเนินการสนทนาแบบง่ายๆ ด้วยโหมดเดียว ซึ่งก็คือ Start

ใน Codelab นี้ คุณขยายการสนทนาของ Action&#39 ได้ คุณจะกําหนดค่าการดําเนินการของคุณเพื่อดําเนินการต่อไปนี้ในส่วนต่อไปนี้

  • การเปลี่ยนไปใช้โหมด Fortune ใหม่เมื่อผู้ใช้ต้องการทราบ
  • ถามผู้ใช้ว่าต้องการเลือกเส้นทางใด
  • ทํานายโชคชะตาที่กําหนดเองโดยอิงตามตัวเลือกของผู้ใช้

สร้างโหมดFortune

ในส่วนนี้ คุณจะสร้างฉาก Fortune และกําหนดวิธีที่ผู้ใช้เปลี่ยนฉากในระหว่างการสนทนา

ในการสร้างฉากใหม่ที่ชื่อ Fortune ให้ทําตามขั้นตอนต่อไปนี้

  1. เปิดโปรเจ็กต์การดําเนินการของ Codelab ระดับ 1
  2. คลิกพัฒนาในแถบนําทาง
  3. ในส่วนฉาก ให้คลิกฉากเริ่มต้น
  4. คลิกความตั้งใจ ใช่ (ช่องเมื่อจับคู่ถูกต้อง) เพื่อเปิดตัวเลือก
  5. ล้างส่งข้อความแจ้งเพื่อนําข้อความแจ้งออก
  6. ในส่วนการเปลี่ยน ให้คลิกเมนูแบบเลื่อนลง จากนั้นคลิกในช่องข้อความ แล้วพิมพ์ Fortune
  7. คลิกเพิ่ม การดําเนินการนี้จะสร้างฉากใหม่ที่ชื่อ Fortune และยังเพิ่มการเปลี่ยนฉากจากฉาก Start เป็นฉาก Fortune ตอนที่ผู้ใช้ต้องการฟังไพ่

56682a0c7459b98c.png

กําหนดตรรกะการสนทนาสําหรับฉาก Fortune

ใน Codelab นี้ คุณกําหนดค่าฉาก Fortune เพื่อถามผู้ใช้ &"คุณเลือกที่จะให้ความช่วยเหลือภารกิจ มังกร นักแปลภาษา หรือเข็มทิศได้อย่างไร คุณใช้ความสามารถที่เรียกว่าการเติมช่องโฆษณาเพื่อรวบรวมข้อมูลที่จําเป็นจากผู้ใช้ก่อนดําเนินการต่อได้

แอ็กชันของคุณจะช่วยแนะนําเครื่องช่วย 3 อย่าง ทั้งมังกร นักแปล และเข็มทิศ หากต้องการกําหนดค่าการดําเนินการเพื่อระบุตัวเลือก 3 รายการนี้ในอินพุตของผู้ใช้ คุณจะต้องสร้างประเภทใหม่

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

สร้างประเภท available_options

ในส่วนนี้ คุณสร้างประเภทใหม่ชื่อ available_options ซึ่งระบุ 3 ตัวเลือกที่ผู้ใช้เลือกได้ (มังกร นักแปล และเข็มทิศ) เพื่อตอบสนองต่อข้อความแจ้ง นอกจากนี้ คุณยังกําหนดคําพ้องความหมายให้กับตัวเลือกเหล่านี้ได้ในกรณีที่ผู้ใช้กล่าวถึงสิ่งที่คล้ายกัน ในหัวข้อถัดไป คุณเพิ่มประเภท available_options ในช่องเพื่อระบุว่าต้องการตัวเลือกจากผู้ใช้หรือไม่

หากต้องการสร้างประเภท available_options ให้ทําตามขั้นตอนต่อไปนี้

  1. คลิกประเภทในแถบนําทาง
  2. คลิก + (เครื่องหมายบวก) พิมพ์ available_options แล้วกด Enter
  3. คลิก available_options เพื่อเปิดตัวเลือก

ประเภทจะได้รับการกําหนดค่าเป็นคู่คีย์-ค่า โดยที่ key คือชื่อของประเภท และ value เป็นคําพ้องความหมายของคีย์นั้น เมื่อกําหนดคีย์ ระบบจะเพิ่มคีย์ดังกล่าวเป็นค่าโดยอัตโนมัติ

ในการเพิ่มตัวเลือก 3 อย่างที่ผู้ใช้สามารถเลือกได้ ให้ทําตามขั้นตอนต่อไปนี้

  1. เลื่อนไปที่ส่วนเพิ่มรายการ
  2. ในช่องรายการใหม่ ให้พิมพ์ dragon แล้วกด Enter การดําเนินการนี้จะสร้างคีย์ dragon
  3. พิมพ์ hydra ในช่อง Add value แล้วกด Enter เพื่อเพิ่มเป็นค่า (คําพ้องความหมาย) จากนั้น ทําขั้นตอนนี้ซ้ําสําหรับค่า lizard
  4. เพิ่มส่วนที่เหลือของคีย์และค่าที่เกี่ยวข้องดังนี้
  • translator | translator, communicator, machine, decoder, translate
  • compass | compass, direction, guide

8333b1b67445f21.png

  1. คลิกบันทึก

ตอนนี้การดําเนินการของคุณจะเข้าใจว่า available_options เป็นมังกร นักแปล และเข็มทิศ และจะจดจําคําพ้องความหมายที่เกี่ยวข้องได้ด้วย

กําหนดค่าการเติมช่องโฆษณา

ถัดไป คุณต้องกําหนดค่าการส่งโฆษณาในช่อง Fortune หากต้องการกําหนดค่าตรรกะแบบเติมช่องโฆษณา ให้ทําตามขั้นตอนต่อไปนี้

  1. ในแถบนําทางใต้ Scenes ให้คลิก Fortune
  2. ในฉาก Fortune ให้คลิก + (เครื่องหมายบวก) สําหรับการเติมช่องโฆษณา
  3. ในช่องป้อนชื่อช่อง ให้เพิ่ม chosenOptions เป็นชื่อช่อง
  4. ในรายการแบบเลื่อนลงเลือกประเภท ให้เลือก available_options เป็นประเภทช่อง
  5. เลือกช่องทําเครื่องหมายต้องระบุช่องโฆษณานี้

a461b906476e244.png

  1. เลือกส่งข้อความแจ้ง แล้วเพิ่มข้อความและชิปคําแนะนําต่อไปนี้
candidates:
  - first_simple:
      variants:
        - speech: >-
            What do you choose to help you on your quest, a dragon, a
            translator, or a compass?
    suggestions:
      - title: 'Dragon'
      - title: 'Translator'
      - title: 'Compass'
  1. คลิกบันทึก

ขณะนี้คุณได้เพิ่มประเภท available_options ในช่อง ซึ่งจะบอกข้อมูลที่คุณต้องใช้ที่รวบรวมจากผู้ใช้ (ตัวเลือกความช่วยเหลือ) ก่อนดําเนินการต่อ นอกจากนี้ คุณยังกําหนดค่าข้อความแจ้งภายในช่องได้ ซึ่งเพิ่มไปยังคิวข้อความแจ้งเมื่อผู้ใช้ไปถึงขั้นตอนการเติมช่องโฆษณาของฉาก

โปรดทราบว่าเมื่อคุณตั้งชื่อของช่องโฆษณา chosenOptions ช่องปรับแต่งการเขียนค่าช่องโฆษณาจะมีการอัปเดตด้วยชื่อเดียวกัน ($session.params.chosenOptions) คุณสามารถเข้าถึงพารามิเตอร์นี้ตามชื่อนั้นในเครื่องมือสร้างการดําเนินการและดําเนินการตามคําสั่งซื้อผ่านไลบรารีของไคลเอ็นต์ได้

กําหนดค่าเงื่อนไข scene.slots.status == "FINAL"

เมื่อคุณเพิ่มช่องโฆษณา ระบบจะเพิ่มเงื่อนไขscene.slots.status == "FINAL"ลงในรายการเงื่อนไขโดยอัตโนมัติ

เงื่อนไข scene.slots.status == "FINAL" สําหรับการเติมช่องจะเสร็จสมบูรณ์ เมื่อเติมช่องโฆษณาทั้งหมดแล้ว เงื่อนไขจะเรียกใช้เว็บฮุค ย้ายไปยังฉากใหม่ หรือเพิ่มข้อความแจ้งในคิวข้อความแจ้งได้

ในส่วนนี้ คุณกําหนดค่า scene.slots.status == "FINAL" เพื่อเพิ่มข้อความแจ้งไปยังคิวข้อความแจ้งเมื่อช่องโฆษณาได้รับการเติมโฆษณา

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

  1. คลิก scene.slots.status == "FINAL" เพื่อเปิดหน้าต่างตัวเลือก
  2. เลือกส่งข้อความแจ้งและเพิ่มข้อความแจ้งต่อไปนี้
candidates:
  - first_simple:
      variants:
        - speech: You picked $session.params.chosenOptions.
  1. คลิกบันทึก

ทดสอบการทํางานในเครื่องจําลอง

ณ จุดนี้คุณได้กําหนดได้ว่าผู้ใช้ควรเลือกตัวเลือกใดเพื่อเติมช่องโฆษณา หลังจากได้รับข้อมูลจากผู้ใช้แล้ว การดําเนินการของคุณควรแสดงข้อความแจ้งที่อ้างอิงตัวเลือกเฉพาะที่ผู้ใช้เลือกไว้

หากต้องการทดสอบการดําเนินการ ให้ทําตามขั้นตอนต่อไปนี้

  1. คลิกทดสอบในแถบนําทาง
  2. คลิกหรือพิมพ์ Talk to my test app ในช่อง Input แล้วกด Enter
  3. พิมพ์ Yes ในช่อง Input แล้วกด Enter (หรือคลิกชิปคําแนะนําใช่)

A899d45c542668f6.png

  1. คลิก พิมพ์ หรือพูดว่า dragon คุณควรได้รับข้อความแจ้ง "คุณได้เลือก Dragon."

ในส่วนถัดไป คุณจะปรับแต่งข้อความแจ้งสําหรับแต่ละความช่วยเหลือที่ผู้ใช้เลือกได้

ปรับแต่งข้อความแจ้งโดยใช้เงื่อนไข

ในส่วนนี้ คุณสามารถเพิ่มเงื่อนไขสําหรับตัวเลือกแต่ละรายการที่ผู้ใช้สามารถเลือกและเพิ่มข้อความแจ้งที่กําหนดเองสําหรับแต่ละเงื่อนไขได้

ปรับแต่งดวงชะตาของ dragon

หากต้องการอัปเดตเงื่อนไขและปรับแต่งข้อความแจ้งเมื่อผู้ใช้เลือก "dragon" ให้ทําตามขั้นตอนต่อไปนี้

  1. คลิกพัฒนาในแถบนําทาง
  2. ในแถบนําทาง ให้คลิกฉากดวงชะตา
  3. คลิก scene.slots.status == "FINAL" เพื่อเปิดหน้าต่างตัวเลือก
  4. อัปเดตคําสั่งเงื่อนไขเป็น scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
  5. เลือกส่งข้อความแจ้ง
  6. อัปเดต Prompt ด้วยการติดตามต่อไปนี้ในตัวแก้ไขโค้ด
candidates:
  - first_simple:
      variants:
        - speech: >-
            The people of Gryffinberg will be awestruck by the beauty and power
            of the ancient dragon. Much to your dismay, the townspeople fall
            into dispute over who will receive the honor of riding the dragon
            first. You return home from your quest without everlasting glory or
            a dragon.
  1. คลิกบันทึก

d31767232ad908bd.png

ตอนนี้เมื่อผู้ใช้พูดว่า "dragon" หรือเสียงที่ฟังดูคล้ายคลึงกัน การกระทําของคุณจะเป็นโชคชะตาโดยอิงตามการเลือกนั้น จากนั้น คุณเพิ่มตัวเลือก 2 รายการที่เหลือ

ปรับแต่งดวงชะตาของ translator

หากต้องการเพิ่มเงื่อนไขและปรับแต่งข้อความแจ้งเมื่อผู้ใช้เลือก "translator" ให้ทําตามขั้นตอนต่อไปนี้

  1. คลิก + (เครื่องหมายบวก) ถัดจากเงื่อนไข
  2. เพิ่ม scene.slots.status == "FINAL" && session.params.chosenOptions == "translator" ในช่อง else if
  3. เลือกส่งข้อความแจ้ง
  4. เพิ่มข้อความแจ้งต่อไปนี้ในตัวแก้ไขโค้ด
candidates:
  - first_simple:
      variants:
        - speech: >-
            With the help of the translator, the rival factions in Gryffinberg
            are finally able to communicate with each other and resolve their
            disputes. You will complete your quest to restore peace in the town.
            The translator will be used on many subsequent journeys across the
            earth. After its work is done, it retires honorably to a premier
            location in the Gryffinberg History Museum.
  1. คลิกบันทึก

c1af65e70dbf3dfe.png

ปรับแต่งดวงชะตาของ compass

หากต้องการเพิ่มเงื่อนไขและปรับแต่งข้อความแจ้งเมื่อผู้ใช้เลือก "compass" ให้ทําตามขั้นตอนต่อไปนี้

  1. คลิก + (เครื่องหมายบวก) ถัดจากเงื่อนไข
  2. เพิ่ม scene.slots.status == "FINAL" && session.params.chosenOptions == "compass" ไปยังกล่องข้อความ else if
  3. เลือกส่งข้อความแจ้ง
  4. เพิ่มข้อความแจ้งต่อไปนี้ในตัวแก้ไขโค้ด
candidates:
  - first_simple:
      variants:
        - speech: >-
            The compass will help you find the mystical and ancient Library of
            Gryffinberg. Among its infinite stacks of dusty books, you find one
            entitled "Wisdom of the Ages". By the time you've read the
            50,000-page tome, the townspeople have forgotten their problems. You
            will write a second edition of "Wisdom of the Ages", but have
            limited commercial success.
  1. คลิกบันทึก

ทดสอบการทํางานในเครื่องจําลอง

ณ จุดนี้ การดําเนินการของคุณควรมีการปรับแต่งให้เหมาะกับผู้ใช้โดยอิงตามตัวเลือกที่ผู้ใช้เลือก

หากต้องการทดสอบการดําเนินการ ให้ทําตามขั้นตอนต่อไปนี้

  1. คลิกทดสอบในแถบนําทาง
  2. พิมพ์ Talk to my test app ในช่อง Input แล้วกด Enter
  3. พิมพ์ Yes ในช่อง Input แล้วกด Enter หรือคลิกชิปคําแนะนําใช่
  4. คลิก พิมพ์ หรือพูดว่า Translator

29e17f950bd0dd71.png

คุณควรจะได้รับโชคที่เหมาะสมสําหรับตัวเลือก "นักแปล"

3. เพิ่ม Game Loop

ในส่วนนี้ คุณจะกําหนดค่าการดําเนินการเพื่อให้ผู้ใช้เลือกตัวเลือกอื่นและฟังคําขอที่แตกต่างกันได้หลังจากเลือก การเปลี่ยนแปลงนี้คล้ายกับข้อความ "คุณต้องการเล่นอีกครั้งCPDquot; เมื่อสิ้นสุดเกมหรือไม่ หากต้องการสร้างลูปนี้ คุณสามารถนําความตั้งใจ yes และ no ที่สร้างไว้ก่อนหน้านี้มาใช้และเพิ่มในฉากใหม่ที่ชื่อ Again ได้

สร้างโหมดAgain

ในส่วนนี้ คุณสร้างฉาก Again ใหม่และเพิ่มข้อความแจ้งที่ถามผู้ใช้ว่าต้องการเลือกตัวเลือกอื่นหรือไม่

ในการสร้างฉาก Again ให้ทําตามขั้นตอนต่อไปนี้

  1. คลิกพัฒนาในแถบนําทาง
  2. คลิก + (เครื่องหมายบวก) ใต้ฉาก
  3. พิมพ์ Again แล้วกด Enter
  4. คลิกฉาก Again ในแถบนําทาง
  5. คลิก + (เครื่องหมายบวก) ถัดจากเมื่อป้อน
  6. เลือกส่งข้อความแจ้ง แล้วเพิ่มข้อความแจ้งและชิปคําแนะนําต่อไปนี้
candidates:
  - first_simple:
      variants:
        - speech: >-
            That is what I see for you. Would you like to choose a different option and
            explore another future?
    suggestions:
      - title: 'Yes'
      - title: 'No'
  1. คลิกบันทึก

เพิ่มการเปลี่ยนจาก Fortune ไปยังโหมด Again

หลังจากได้รับโชคแล้ว การสนทนาจะต้องเปลี่ยนฉากเป็น Again ใหม่

หากต้องการเพิ่มการเปลี่ยนจากฉาก Fortune ไปยังฉาก Again ให้ทําตามขั้นตอนต่อไปนี้

  1. คลิกโหมดดวงชะตา
  2. คลิกเงื่อนไขแรก (scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon") เพื่อเปิดหน้าต่างตัวเลือก
  3. เลื่อนแล้วเลือก Again ในส่วนการเปลี่ยน
  4. คลิกบันทึก
  5. คลิกเงื่อนไขที่ 2 เพื่อเปิดหน้าต่างตัวเลือก
  6. เลื่อนแล้วเลือก Again ในส่วนการเปลี่ยน
  7. คลิกบันทึก
  8. คลิกเงื่อนไขที่ 3 เพื่อเปิดหน้าต่างตัวเลือก
  9. เลื่อนแล้วเลือก Again ในส่วนการเปลี่ยน
  10. คลิกบันทึก

ทดสอบการทํางานในเครื่องจําลอง

ในขั้นนี้ การดําเนินการของคุณควรแสดงข้อความแจ้งต่อไปนี้หลังจากได้รับโชคดี ดังนี้ "สิทธิ์การเข้าถึงนั้นเป็นสิ่งที่ฉันเห็น คุณต้องการเลือกตัวเลือกอื่นและสํารวจตัวเลือกในอนาคตหรือไม่"

หากต้องการทดสอบการดําเนินการ ให้ทําตามขั้นตอนต่อไปนี้

  1. คลิกทดสอบในแถบนําทาง
  2. พิมพ์ Talk to my test app ในช่อง Input แล้วกด Enter
  3. พิมพ์ Yes ในช่อง Input แล้วกด Enter หรือคลิกชิปคําแนะนําใช่
  4. คลิก พิมพ์ หรือพูดว่า dragon

b299e9fed9aedb69.png

คุณควรได้รับโชคชะตาสําหรับตัวเลือกมังกรและข้อความแจ้ง Again

เพิ่มความตั้งใจและเปลี่ยนไปเป็นฉากของ Again

ในส่วนนี้ คุณจะเพิ่มความตั้งใจ yes และ no ในฉาก Again เพื่อให้การดําเนินการของคุณเข้าใจว่าผู้ใช้ต้องการเลือกตัวเลือกใหม่หรือไม่ คุณเพิ่มการเปลี่ยนที่เหมาะสมสําหรับความตั้งใจ yes และ no ได้ด้วย ความตั้งใจ yes จะเปลี่ยนเป็นโหมด Fortune ในขณะที่ความตั้งใจ no จะเปลี่ยนเป็นโหมดระบบ End conversation

หากต้องการเพิ่มความตั้งใจและการเปลี่ยนไปใช้ฉาก Again ให้ทําตามขั้นตอนต่อไปนี้

  1. คลิกพัฒนาในแถบนําทาง
  2. คลิกฉาก Again
  3. คลิก + (เครื่องหมายบวก) ข้างการจัดการความตั้งใจของผู้ใช้
  4. เลือกใช่จากเมนูแบบเลื่อนลง Intent
  5. เลือก Fortune จากเมนูแบบเลื่อนลงการเปลี่ยน
  6. คลิกบันทึก

c2efba35ea881b0d.png

  1. คลิก + (เครื่องหมายบวก) ข้างการจัดการความตั้งใจของผู้ใช้
  2. เลือกไม่จากเมนูแบบเลื่อนลง Intent
  3. เลือกจบการสนทนาจากเมนูแบบเลื่อนลงการเปลี่ยน
  4. เลือกส่งข้อความแจ้งและเพิ่มข้อความแจ้งต่อไปนี้ในตัวแก้ไขโค้ด
candidates:
  - first_simple:
      variants:
        - speech: >-
            It pleases me that you are satisfied with your choice. Best of luck on your quest. Farewell.
  1. คลิกบันทึก

ทดสอบการทํางานในเครื่องจําลอง

การดําเนินการของคุณควรเข้าใจว่าผู้ใช้ต้องการเลือกตัวเลือกใหม่หรือสิ้นสุดการสนทนา

หากต้องการทดสอบ Intent ของ yes ให้ทําตามขั้นตอนต่อไปนี้

  1. คลิกทดสอบในแถบนําทาง
  2. พิมพ์ Talk to my test app ในช่อง Input แล้วกด Enter
  3. พิมพ์ Yes ในช่อง Input แล้วกด Enter หรือคลิกชิปคําแนะนําใช่
  4. คลิกพิมพ์ พิมพ์ หรือพูดตัวเลือกใดตัวเลือกหนึ่ง
  5. พิมพ์ Yes ในช่อง Input แล้วกด Enter

5d0690332efe2e29.png

คุณควรได้รับข้อความแจ้ง"คุณเลือกที่จะช่วยทําภารกิจ มังกร นักแปล หรือเข็มทิศดิจิทัล

หากต้องการทดสอบ Intent ของ no ให้ทําตามขั้นตอนต่อไปนี้

  1. คลิกพิมพ์ พิมพ์ หรือพูดตัวเลือกใดตัวเลือกหนึ่ง
  2. พิมพ์ No ในช่องป้อนข้อมูลแล้วกด Enter

คุณควรได้รับข้อความแจ้งของ End conversation: "ขอขอบคุณที่พอใจกับการเลือกของคุณ ขอให้โชคดีกับภารกิจของคุณ Farewell."

4. เพิ่มเส้นทางที่รองรับ

ขณะนี้ คุณได้สร้างเส้นทางหลักที่ผู้ใช้ส่วนใหญ่ดําเนินการแล้ว อย่างไรก็ตาม ผู้ใช้สามารถตอบกลับข้อความแจ้งจากโหมด Fortune, "คุณเลือกที่จะให้ความช่วยเหลือเกี่ยวกับภารกิจ มังกร นักแปล หรือเข็มทิศดิจิทัลได้อย่างไร ด้วยตัวเลือกที่ไม่ใช่ตัวเลือกที่ให้ไว้

ในส่วนนี้ คุณจะต้องกําหนดค่าการดําเนินการเพื่อทําความเข้าใจว่าผู้ใช้เลือก "magic", "money", "horse" หรือ "phone" ไปให้ผู้ใช้เลือกหนึ่งใน 3 ตัวเลือกเดิมเมื่อเลือกตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้ หากต้องการกําหนดค่าตรรกะนี้ คุณต้องสร้าง type ใหม่ที่มีตัวเลือกอื่นๆ เหล่านี้และ other_option ใหม่ที่ต้องการซึ่งจะตรงกันเมื่อผู้ใช้พูดว่า 1 ในตัวเลือกต่อไปนี้ คุณต้องใส่คําอธิบายประกอบในวลีการฝึกอบรมภายใน other_option เพื่อระบุและแยกพารามิเตอร์ Intent

เมื่อเครื่องมือประมวลผลภาษาธรรมชาติ (NLU) ของ Assistant ตรวจพบการจับคู่พารามิเตอร์ในการป้อนข้อมูลของผู้ใช้ จะดึงค่าเป็นพารามิเตอร์ที่พิมพ์ออกมาเพื่อให้คุณใช้ตรรกะกับฉากนั้นๆ ในฉากได้ ใน Codelab นี้ คุณกําหนดค่าการดําเนินการเพื่อดึงความช่วยเหลือที่ผู้ใช้เลือก และอ้างอิงถึงตัวเลือกนั้นในข้อความแจ้ง

สร้างประเภท unavailable_options

ตอนนี้คุณสามารถสร้างประเภท unavailable_options ที่มีตัวเลือกต่างๆ ได้แล้ว เพื่อให้การดําเนินการของคุณระบุข้อมูลในอินพุตของผู้ใช้

หากต้องการสร้างประเภท unavailable_options ให้ทําตามขั้นตอนต่อไปนี้

  1. คลิกพัฒนาในแถบนําทาง
  2. คลิก + (เครื่องหมายบวก) ในส่วนประเภท
  3. พิมพ์ unavailable_options แล้วกด Enter
  4. คลิก unavailable_options เพื่อเปิดตัวเลือก
  5. ป้อนข้อมูลต่อไปนี้และค่าที่เกี่ยวข้องในส่วนเพิ่มรายการ

horse

horse, stallion, steed

magic

magic, enchanted, spells

money

money, cash, gold

phone

phone, cell, apps

ตารางคีย์-ค่าควรมีลักษณะดังนี้

c9e119e0f5fb2a47.png

  1. คลิกบันทึก

สร้าง Intent ของ other_option

ขั้นต่อไป ให้สร้าง Intent ชื่อ other_option และเพิ่มวลีการฝึกอบรมที่มีตัวเลือกประเภท unavailable_options ระบบจะจับคู่ความตั้งใจนี้เมื่อผู้ใช้เลือกตัวเลือกที่อยู่ในประเภท unavailable_options

หากต้องการสร้างและกําหนดค่า Intent ของ other_option ให้ทําตามขั้นตอนต่อไปนี้

  1. คลิก + (เครื่องหมายบวก) ในส่วนความตั้งใจที่กําหนดเอง
  2. พิมพ์ other_option แล้วกด Enter
  3. คลิก other_option เพื่อเปิดหน้าต่าง
  4. เพิ่มวลีการฝึกอบรมต่อไปนี้ แล้วกด Enter หลังจากแต่ละรายการ
  • I want to use spells
  • I really really want to use a phone
  • magic!
  • cash
  • I want to ride a horse
  1. ในส่วนเพิ่มพารามิเตอร์ความตั้งใจ ให้อัปเดตชื่อพารามิเตอร์เป็น chosenUnavailableOption
  2. คลิกบันทึก

ขณะที่คุณป้อนวลีการฝึกอบรม Actions Builder จะจดจํา spells, phone, magic, cash และ horse จากประเภท unavailable_options และจะไฮไลต์ (หมายเหตุ) คําเหล่านั้นโดยอัตโนมัติ เครื่องมือสร้างการดําเนินการจะเพิ่มพารามิเตอร์ความตั้งใจโดยอัตโนมัติในส่วนเพิ่มพารามิเตอร์ความตั้งใจตามที่แสดงในรูปภาพต่อไปนี้

พารามิเตอร์ Intent ช่วยให้คุณดึงชื่อของตัวเลือกและใช้ตัวเลือกนั้นในข้อความแจ้งได้

df61d4489f0910.png

เพิ่มความตั้งใจ other_option ลงในฉาก Fortune

ตอนนี้คุณมีความตั้งใจ other_option ที่จัดการผู้ใช้ที่ระบุตัวเลือกที่ไม่ใช่ 1 ใน 1 ตัวเลือกเดิมได้แล้ว ในส่วนนี้ ให้เพิ่มความตั้งใจ other_option ลงในฉาก Fortune คุณใช้พารามิเตอร์ Intent เพื่อปรับแต่งข้อความแจ้งโดยอิงตามข้อมูลที่ผู้ใช้ป้อน

หากต้องการเพิ่ม Intent ของ other_option ไปยังฉาก Fortune ให้ทําตามขั้นตอนต่อไปนี้

  1. คลิกโหมดดวงชะตา
  2. คลิก + (เครื่องหมายบวก) ข้างการจัดการความตั้งใจของผู้ใช้
  3. เลือก other_option จากเมนูแบบเลื่อนลง Intent
  4. เลือกส่งข้อความแจ้งและเพิ่มข้อความแจ้งต่อไปนี้
candidates:
  - first_simple:
      variants:
        - speech: >-
            I have seen the future and a $intent.params.chosenUnavailableOption.original
            will not aid you on your journey. 

นิพจน์ $intent.params.chosenUnavailableOption หมายถึงออบเจ็กต์พารามิเตอร์ Intent และ $intent.params.chosenUnavailableOption.original อ้างถึงค่าของออบเจ็กต์ดังกล่าว original property หมายถึงอินพุตดิบที่ผู้ใช้ระบุ

  1. คลิกบันทึก

ไฟล์ 4bab1efbe21056aa.png

เมื่อผู้ใช้แจ้งว่าตัวเลือกแสดงอยู่ในประเภท unavailable_options ในระหว่างโหมด Fortune ระบบจะจับคู่ความตั้งใจ other_option และเพิ่มข้อความแจ้งไปยังคิวข้อความแจ้ง เนื่องจากไม่ได้ระบุการเปลี่ยน ลูปการดําเนินการของฉากจะดําเนินการต่อโดยการประเมินขั้นตอนเงื่อนไขอีกครั้ง จากนั้นช่อง chosenOptions จะเพิ่มข้อความแจ้งไปยังคิวข้อความแจ้ง จากนั้นระบบจะส่งคิวข้อความแจ้งไปให้ผู้ใช้

ทดสอบการทํางานในเครื่องจําลอง

การดําเนินการของคุณควรตอบสนองอย่างเหมาะสมเมื่อผู้ใช้เลือกตัวเลือกข้อใดข้อหนึ่งในประเภท unavailable_options และระบุสิ่งที่ผู้ใช้เลือก การดําเนินการของคุณควรจะแจ้งให้ผู้ใช้เลือกหนึ่งในตัวเลือกดั้งเดิม (มังกร นักแปล หรือเข็มทิศ)

หากต้องการทดสอบการดําเนินการในเครื่องจําลอง ให้ทําตามขั้นตอนต่อไปนี้

  1. คลิกทดสอบในแถบนําทาง
  2. พิมพ์ Talk to my test app ในช่อง Input แล้วกด Enter
  3. พิมพ์ Yes ในช่อง Input แล้วกด Enter หรือคลิกชิปคําแนะนําใช่
  4. พิมพ์ magic ในช่อง Input แล้วกด Enter

ไฟล์ 3a42c33eca435f32.png

คุณอาจสังเกตเห็นว่าข้อความแจ้งแสดงขึ้นไม่ถูกต้องเมื่อผู้ใช้เลือก "magic" จากบทความ "a" ที่วางไว้ก่อนหน้า คุณแก้ไขปัญหานี้ได้ในส่วนต่อไปนี้

เพิ่มเครื่องจัดการ unavailable_options

ในการวางบทความ "a" ก่อนตัวเลือกที่เหมาะสมจากประเภท unavailable_options คุณสามารถกําหนดค่าเครื่องจัดการเหตุการณ์ในตรรกะการดําเนินการตามคําสั่งซื้อเพื่อตรวจสอบว่าตัวเลือกที่ผู้ใช้ต้องการต้องมี "a" มาก่อนหรือไม่ ก่อนอื่น คุณจะต้องกําหนดค่าการดําเนินการให้เรียกเครื่องจัดการในคอนโซล

หากต้องการเพิ่มเครื่องจัดการ unavailable_options ให้ทําตามขั้นตอนต่อไปนี้

  1. คลิกพัฒนาในแถบนําทาง
  2. คลิกฉาก Fortune
  3. ในส่วนการจัดการ Intent ของผู้ใช้ ให้คลิกเมื่อจับคู่ other_option อยู่เพื่อเปิดหน้าต่าง
  4. ล้างช่องทําเครื่องหมายส่งข้อความแจ้ง
  5. เลือกช่องทําเครื่องหมายเรียกใช้เว็บฮุค
  6. ป้อน unavailable_options ในกล่องข้อความสําหรับเครื่องจัดการเหตุการณ์

52a0fba115f1b377.png

  1. คลิกบันทึก

อัปเดตและทําให้การดําเนินการตามคําสั่งซื้อใช้งานได้

เมื่อกําหนดค่าการดําเนินการให้เรียกเครื่องจัดการเหตุการณ์ unavailable_options แล้ว คุณจะอัปเดตเครื่องจัดการในการดําเนินการดําเนินการตามคําสั่งซื้อและทําให้ใช้งานได้

หากต้องการอัปเดตการดําเนินการตามคําสั่งซื้อ ให้ทําตามขั้นตอนต่อไปนี้

  1. คลิกเว็บฮุคในแถบนําทาง
  2. เพิ่มโค้ดต่อไปนี้ในเครื่องจัดการ greeting
app.handle('unavailable_options', conv => {
  const option = conv.intent.params.chosenUnavailableOption.original;
  const optionKey = conv.intent.params.chosenUnavailableOption.resolved;
  let message = 'I have seen the future and ';
  if(optionsNeedA.has(optionKey)){
    message = message + 'a ';
  }
  message = message + `${option} will not aid you on your journey. `;
  conv.add(message);
});
  1. เพิ่มโค้ดต่อไปนี้ในส่วน const app = conversation();
const optionsNeedA = new Set();
optionsNeedA.add('horse').add('phone');
  1. คลิก Save Fulfillment
  2. คลิก Deploy Fulfillment เมื่อการติดตั้งใช้งานเสร็จสมบูรณ์ ข้อความเหนือเครื่องมือแก้ไขจะระบุว่าการติดตั้งใช้งาน Cloud Function เป็นเวอร์ชันล่าสุดแล้ว

ทําความเข้าใจโค้ด

เครื่องจัดการ unavailable_options จะดําเนินการต่อไปนี้

  • รับข้อมูล option จากออบเจ็กต์ conv และกําหนด option ให้กับพร็อพเพอร์ตี้ original ซึ่งเป็นอินพุตดิบจากผู้ใช้
  • กําหนด optionKey ให้กับพร็อพเพอร์ตี้ resolved ซึ่งเป็นคีย์สําหรับประเภท unavailable_options
  • ตรวจสอบว่า optionKey เป็นหนึ่งในตัวเลือกที่ต้องการ "a" ไหม ให้สร้างข้อความด้วย "a"
  • เพิ่มข้อความผ่าน conv.add(message)

ทดสอบการทํางานในเครื่องจําลอง

การดําเนินการของคุณควรปรับเปลี่ยนข้อความแจ้งโดยพิจารณาว่าการเลือกของผู้ใช้จากประเภท unavailable_options ต้องการบทความ "a" มาก่อนหรือไม่

หากต้องการทดสอบการดําเนินการ ให้ทําตามขั้นตอนต่อไปนี้

  1. คลิกทดสอบในแถบนําทาง
  2. คลิกหรือพิมพ์ Talk to my test app ในช่อง Input แล้วกด Enter
  3. พิมพ์ Yes ในช่อง Input แล้วกด Enter หรือคลิกชิปคําแนะนําใช่
  4. พิมพ์ magic ในช่อง Input แล้วกด Enter
  5. พิมพ์ horse ในช่อง Input แล้วกด Enter

ไฟล์ 54ee24c5c3c56e.png

การดําเนินการของคุณควรเพิ่มบทความ "a" ก่อนตัวเลือก "horse" ขณะสร้างข้อความแจ้งที่ไม่มีตัวเลือก "a" สําหรับตัวเลือก "magic"

ทําความสะอาดโปรเจ็กต์ [แนะนํา]

เราขอแนะนําให้นําโปรเจ็กต์ที่คุณไม่ได้ตั้งใจจะใช้ออกเพื่อหลีกเลี่ยงการเรียกเก็บเงินที่อาจเกิดขึ้น หากต้องการลบโปรเจ็กต์ที่สร้างใน Codelab นี้ ให้ทําตามขั้นตอนต่อไปนี้

  1. หากต้องการลบโปรเจ็กต์ระบบคลาวด์และทรัพยากร ให้ทําตามขั้นตอนที่ระบุในส่วนการปิด (ลบ) โปรเจ็กต์
  1. ไม่บังคับ: หากต้องการนําโปรเจ็กต์ออกจากคอนโซลการดําเนินการทันที โปรดดูลบโปรเจ็กต์ หากไม่ดําเนินการขั้นตอนนี้ ระบบจะลบโปรเจ็กต์ออกโดยอัตโนมัติหลังจากผ่านไปประมาณ 30 วัน

5. ยินดีด้วย

ตอนนี้คุณได้เรียนรู้ทักษะระดับกลางที่จําเป็นต่อการสร้างการดําเนินการสําหรับ Google Assistant แล้ว

สิ่งที่คุณครอบคลุม

  • วิธีพัฒนาการดําเนินการสนทนาโดยใช้ไลบรารีการดําเนินการ Node.js
  • วิธีใช้ช่องโฆษณาเพื่อรวบรวมข้อมูลจากผู้ใช้
  • วิธีใช้เงื่อนไขเพื่อเพิ่มตรรกะลงในฉาก
  • วิธีเพิ่ม Game Loop
  • วิธีเพิ่มเส้นทางสนับสนุน

ดูข้อมูลเพิ่มเติม

สํารวจแหล่งข้อมูลต่อไปนี้เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้าง Actions for Google Assistant

ติดตาม @ActionsOnGoogle บน Twitter เพื่อติดตามประกาศล่าสุดและทวีตไปที่ #AoGDevs เพื่อแชร์สิ่งที่คุณสร้าง

แบบสํารวจความคิดเห็น

ก่อนดําเนินการ โปรดกรอกแบบสํารวจสั้นๆ เกี่ยวกับประสบการณ์การใช้งาน