เมื่อตั้งค่า 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 ของการดำเนินการแต่ละรายการจะแตกต่างกันไปขึ้นอยู่กับความซับซ้อนและวัตถุประสงค์ของการดำเนินการ อย่างไรก็ตาม มีขั้นตอนทั่วไปที่ต้องทำเมื่ออัปเดตโค้ดของคุณ ดังนี้
ดาวน์โหลดและติดตั้งไลบรารีของไคลเอ็นต์เวอร์ชันล่าสุด
npm install @assistant/conversation
อัปเดตคำสั่ง
require
ในโค้ดของคุณ เช่นconst { SimpleResponse, BasicCard, Image, } = require('actions-on-google');
โค้ดข้างต้นจะอัปเดตเป็น
const { conversation, Simple, Card, Image, } = require('@assistant/conversation');
เปลี่ยนโครงสร้างภายในโค้ดเพื่อใช้เมธอดใหม่
- ตัวแฮนเดิล Intent:
app.intent
→app.handle
- การตอบกลับ/ข้อความแจ้ง:
conv.ask
→conv.add
- ความสามารถของพื้นผิว/อุปกรณ์:
conv.surface.capabilities.has('actions.capability.SCREEN_OUTPUT')
→conv.device.capabilities.includes('RICH_RESPONSE')
- พื้นที่เก็บข้อมูล:
conv.data
→conv.session.params
ประเภทการตอบกลับ:
SimpleResponse
→Simple
BasicCard
→Card
Suggestions
→Suggestion
พารามิเตอร์ 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'
- ตัวแฮนเดิล Intent:
อัปเดตโค้ดตอบกลับเพื่อใช้พื้นฐานการตอบกลับใหม่ของเครื่องมือสร้าง เช่น
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 สถานะ
- เมื่อ Enter
- เงื่อนไข
- การเติมช่อง
- การจัดการความตั้งใจของผู้ใช้
- การจัดการ Intent ของระบบ
เลือกตัวเลือกโทรหาเว็บฮุค
ป้อนเครื่องจัดการเว็บฮุคที่คุณกำหนดภายในโค้ด Fulfillment
คลิกบันทึก
ไปที่ทดสอบเพื่อลองใช้การเปลี่ยนแปลงการเรียกใช้เว็บฮุคและการดำเนินการตามคำสั่งซื้อ
แผนที่การแปลรหัสการดำเนินการตามคำสั่งซื้อ
ตารางด้านล่างแสดงวิธีที่ไวยากรณ์โค้ด 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
|
คุณสามารถดูข้อมูลเครื่องมือเพิ่มเติมด้านล่าง