การย้ายข้อมูลการดําเนินการตามคําสั่งซื้อ

เมื่อตั้งค่า Intent และฉากแล้ว คุณต้องอัปเดตโค้ด Fulfillment เพื่อพิจารณาการเปลี่ยนแปลงในรูปแบบคำขอและการตอบกลับของ Action Builder นอกจากนี้ยังเป็นโอกาสในการลองใช้ฟีเจอร์เพิ่มเติมของ Actions Builder ด้วย หน้านี้ครอบคลุมขั้นตอนและข้อควรพิจารณาทั่วไปเมื่ออัปเดตรหัส Fulfillment

พิจารณาแนวทางการดำเนินการตามคำสั่งซื้อ

รหัสการดำเนินการตามคำสั่งซื้อของโปรเจ็กต์ขึ้นอยู่กับโมเดลการสนทนาและฟีเจอร์ของแพลตฟอร์มการพัฒนา Actions Builder นําเสนอโมเดลการสนทนาและฟังก์ชันใหม่ที่เปลี่ยนวิธีสร้างการสนทนา และมีแนวโน้มที่จะเปลี่ยนวิธีที่คุณดําเนินการตามโปรเจ็กต์ ส่วนนี้จะอธิบายถึงฟีเจอร์ของ Actions Builder ที่ต่างจาก Dialogflow และวิธีที่ความแตกต่างเหล่านี้เปลี่ยนวิธีการติดตั้งใช้งานโค้ด Fulfillment

  • การเปลี่ยนแปลงการติดตั้งใช้งานการสนทนา

    • Dialogflow ใช้ขั้นตอนการสนทนาที่อิงบริบทตามบริบทตามความตั้งใจต่อความตั้งใจ โดยมีการจับคู่ความตั้งใจแต่ละรายการตามวลีการฝึกและบริบทอินพุต/เอาต์พุตของความตั้งใจก่อนหน้า
    • ขั้นตอนการสนทนาของ Actions Builder จะใช้ฉากเป็นที่เก็บบทสนทนา ระบบจะจับคู่ความตั้งใจที่เฉพาะเจาะจงในฉากได้ คล้ายกับบริบทของ Dialogflow การเปลี่ยนฉากจะกําหนดฉากที่จะเปลี่ยนไปใช้โดยอิงตามความตั้งใจที่ตรงกัน
  • ฟังก์ชันเว็บฮุคที่ใช้ซ้ำได้

    • ใน Dialogflow เครื่องจัดการเว็บฮุคจะผูกกับ Intent แต่ละรายการ หากต้องใช้ตรรกะเพิ่มเติม คุณต้องสร้าง Intent แยกต่างหากเพื่อจัดการฟังก์ชันใหม่
    • เครื่องจัดการเว็บฮุคมีชื่อแฮนเดิลที่กำหนดเองใน Actions Builder ฟีเจอร์นี้ช่วยให้คุณเรียกใช้ฟังก์ชันจากหลายๆ ฉากในโปรเจ็กต์ได้
  • วิธีอื่นๆ ในการเรียกใช้เว็บฮุค

    • เว็บฮุค 1 รายการต่อแนวทางความตั้งใจใน Dialogflow ต้องมี Intent เพิ่มเติมเพื่อให้ตรรกะการสนทนามากขึ้นภายใน Fulfillment โปรเจ็กต์
    • Action Builder จะเรียกใช้เว็บฮุคจากหลายตำแหน่งภายในฉากได้ ทั้งแบบป้อนเข้า โดยอิงตามเงื่อนไข การกรอกช่อง และผ่านการจับคู่ Intent ที่กำหนดเองและการจับคู่ Intent ของระบบ

อัปเดตรหัสการดำเนินการตามคำสั่งซื้อ

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

  1. ดาวน์โหลดและติดตั้งไลบรารีของไคลเอ็นต์เวอร์ชันล่าสุด

    npm install @assistant/conversation
    
  2. อัปเดตคำสั่ง require ในโค้ดของคุณ เช่น

    const {
      SimpleResponse,
      BasicCard,
      Image,
    } = require('actions-on-google');
    

    โค้ดข้างต้นจะอัปเดตเป็น

    const {
      conversation,
      Simple,
      Card,
      Image,
    } = require('@assistant/conversation');
    
  3. เปลี่ยนโครงสร้างภายในโค้ดเพื่อใช้เมธอดใหม่

    • ตัวแฮนเดิล Intent: app.intentapp.handle
    • การตอบกลับ/ข้อความแจ้ง: conv.askconv.add
    • ความสามารถของพื้นผิว/อุปกรณ์: conv.surface.capabilities.has('actions.capability.SCREEN_OUTPUT')conv.device.capabilities.includes('RICH_RESPONSE')
    • พื้นที่เก็บข้อมูล: conv.dataconv.session.params
    • ประเภทการตอบกลับ:

      • SimpleResponseSimple
      • BasicCardCard
      • SuggestionsSuggestion
    • พารามิเตอร์ Intent: conv.parameters[KEY]conv.intent.parameters[KEY].resolved

    • การเปลี่ยนบริบท/โหมด: conv.contexts.set(content_name, 5);conv.scene.next.name = 'context_name'

    • สิ้นสุดการสนทนา: conv.close(response)conv.add.response; conv.scene.next.name = 'actions.page.END_CONVERSATION'

  4. อัปเดตโค้ดตอบกลับเพื่อใช้พื้นฐานการตอบกลับใหม่ของเครื่องมือสร้าง เช่น

    conv.ask(new Suggestions (['a', 'b']));
    

    โค้ดข้างต้นจะอัปเดตเป็น

    for (suggestion of ['a', 'b']) {
      conv.add.(new Suggestion({title: suggestion}))
    }
    

ดูแผนที่การแปลรหัสการดําเนินการตามคําสั่งซื้อด้านล่างเพื่อดูรายการวิธีการทั้งหมด

ใช้หน้าต่อไปนี้เพื่อเปรียบเทียบเปย์โหลดคำขอและการตอบกลับ

ตั้งค่าเว็บฮุค

หลังจากที่อัปเดต Fulfillment แล้ว ให้เปิดใช้การเรียกใช้เว็บฮุคกับทุกฉากในโปรเจ็กต์ แม้ว่าเครื่องมือย้ายข้อมูลจะย้ายข้อมูลการตั้งค่าเว็บฮุคของ Intent ของ Dialogflow ของคุณ คุณต้องตรวจสอบการตั้งค่าเหล่านี้ เนื่องจากโค้ด Fulfillment ที่มีการเปลี่ยนโครงสร้างและฟังก์ชันเว็บฮุคอาจมีการเปลี่ยนแปลง

ใน Dialogflow ระบบจะเปิดใช้เว็บฮุคใน Intent และโค้ด Fulfillment จะมีตัวแฮนเดิลและฟังก์ชันที่เรียกใช้เมื่อตรงกับ Intent ใน Actions Builder เว็บฮุคจะทริกเกอร์ภายใน Intent การเรียกใช้หรือฉาก ซึ่งจะส่งคำขอไปยังปลายทาง Fulfillment Fulfillment ของคุณมีเครื่องจัดการเว็บฮุคที่ประมวลผลเพย์โหลด JSON ในคำขอ คุณทริกเกอร์เว็บฮุคได้ในกรณีต่อไปนี้

  • หลังจากการจับคู่ Intent ของคำขอ
  • ระหว่างที่อยู่ในฉากบนเวที
  • หลังจากระบบประเมินเงื่อนไขเป็น "จริง" ในขั้นตอนเงื่อนไขของฉาก
  • ระหว่างช่วงยื่นสล็อตของฉาก
  • หลังจากการจับคู่ Intent เกิดขึ้นในขั้นตอนป้อนข้อมูลของฉาก

เมื่อย้ายข้อมูลจาก Dialogflow ไปยัง Actions Builder คุณต้องพิจารณาการเปลี่ยนแปลงในขั้นตอนการสนทนา เนื่องจากอาจเปลี่ยนไปเวลาและตำแหน่งที่คุณเรียกใช้เว็บฮุค

หากต้องการเปิดใช้การเรียกใช้เว็บฮุค ให้ทำตามขั้นตอนต่อไปนี้

  1. เลือกฉากที่ต้องการใช้เรียกใช้เว็บฮุค
  2. เลือกสถานะที่ต้องการเปิดใช้เว็บฮุค คุณเปิดใช้เว็บฮุคสำหรับสถานะต่อไปนี้ได้อย่างน้อย 1 สถานะ

    • เมื่อ Enter
    • เงื่อนไข
    • การเติมช่อง
    • การจัดการความตั้งใจของผู้ใช้
    • การจัดการ Intent ของระบบ
  3. เลือกตัวเลือกโทรหาเว็บฮุค

  4. ป้อนเครื่องจัดการเว็บฮุคที่คุณกำหนดภายในโค้ด Fulfillment

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

  6. ไปที่ทดสอบเพื่อลองใช้การเปลี่ยนแปลงการเรียกใช้เว็บฮุคและการดำเนินการตามคำสั่งซื้อ

แผนที่การแปลรหัสการดำเนินการตามคำสั่งซื้อ

ตารางด้านล่างแสดงวิธีที่ไวยากรณ์โค้ด Fulfillment ของ Dialogflow แปลออกมาเป็นโค้ด Actions Builder โปรดดูเอกสารอ้างอิง Actions Builder และ SDK สําหรับรายการเมธอดทั้งหมด

Dialogflow เครื่องมือสร้างการกระทำ
conv.data conv.session.params
conv.ask conv.add
conv.close conv.scene.next.name = 'actions.scene.END_CONVERSATION'
conv.user.storage conv.user.params
conv.input.raw conv.intent.query
conv.parameters conv.intent.params[key].resolved
conv.arguments.get('MEDIA_STATUS')
mediaStatus.status==='FINISHED'
conv.intent.params['MEDIA_STATUS']
mediaStatus.resolved==='FINISHED'
กิจกรรม การจัดการ Intent ของระบบ:
MEDIA_STATUS_FINISHED
MEDIA_STATUS_FAILED
conv.device.capabilities.has("actions.capability.SCREEN_OUTPUT") conv.device.capabilities.includes("RICH_RESPONSE")
app.intent app.handler
app.middleware app.middleware
คำตอบอย่างง่าย prompt -firstSimple
การตอบกลับที่สมบูรณ์ prompt -content -card: object -image: object -table: object -media: object -suggestions -link

คุณสามารถดูข้อมูลเครื่องมือเพิ่มเติมด้านล่าง