แบบบิวท์อินคือตัวระบุที่ไม่ซ้ำซึ่งคุณจะระบุเพื่อให้ Google Assistant ว่าการดำเนินการของคุณจะเติมเต็มหมวดหมู่ที่เจาะจงให้ผู้ใช้ได้ คำขอ ลองดูตัวอย่างคำค้นหาของผู้ใช้ที่ Assistant จะจับคู่กับ Intent ในตัว
- "เล่นเกม" Intent ในตัว: "Ok Google เล่นเกมทดสอบความจำ"
- "ดูดวงชะตา" Intent ในตัว: "Ok Google ดูดวงชะตาของฉัน"
ในระหว่าง Action discovery, Assistant จะใช้ ข้อมูลเมตาเกี่ยวกับการดำเนินการของคุณ รวมถึง Intent ในตัวที่คุณระบุไว้ เพื่อแนะนำการดำเนินการของคุณให้กับผู้ใช้ เพื่อลดการสื่อสารไป-กลับให้น้อยที่สุด Assistant จะพยายามสแกนพารามิเตอร์จากคำค้นหาของผู้ใช้ด้วย และส่งต่อไปยังการดำเนินการของคุณ
หากต้องการดูรายการ Intent ในตัวทั้งหมดที่ Assistant รองรับ รวมถึงพารามิเตอร์และตัวอย่างข้อความค้นหาของผู้ใช้ ข้อมูลอ้างอิง Intent ในตัว
ผสานรวม Intent ในตัว
การสร้างการดำเนินการมีหลายวิธี ขึ้นอยู่กับวิธีที่คุณสร้างการดำเนินการ ผสานรวม Intent ในตัว
Dialogflow
หากใช้ Dialogflow เพื่อสร้างการดำเนินการ คุณสามารถแนบ Intent ในตัวได้ กราฟิกจากคอนโซล Dialogflow
หากต้องการแนบ Intent ในตัวกับ Dialogflow ให้ทำตามขั้นตอนต่อไปนี้
- เปิดคอนโซล Dialogflow เลือกตัวแทนของคุณ จากนั้นไปที่ หน้าจอ Intent
สร้างหรือเลือก Intent ที่ Agent ของคุณทริกเกอร์เมื่อได้รับ Intent ในตัวที่เฉพาะเจาะจง เปิดส่วนเหตุการณ์ แล้วคลิกเพิ่ม กิจกรรม
ในช่องเหตุการณ์ ให้พิมพ์ชื่อเหตุการณ์ Intent ในตัวสำหรับ (เช่น
actions_intent_PLAY_GAME
)คลิกบันทึก
Actions SDK
หากใช้ Actions SDK เพื่อสร้างการดำเนินการ คุณต้องระบุ การจับคู่ระหว่าง Intent ในตัวกับ Actions ในแพ็กเกจการดำเนินการของคุณ
หากต้องการแนบ Intent ในตัวกับ Actions SDK ให้ทำตามขั้นตอนต่อไปนี้
- ระบุ Intent ในตัวในช่องชื่อในคำจำกัดความการดำเนินการ
- อัปโหลดแพ็กเกจการดำเนินการไปยังโปรเจ็กต์การดำเนินการโดยใช้เครื่องมือ
gactions
เป็น ตามที่อธิบายไว้ในภาพรวมของ Actions SDK
ตัวอย่างเช่น ข้อมูลโค้ดต่อไปนี้แสดงวิธีการเพิ่ม CHECK_AIR_QUALITY
Intent ในตัว:
{
"actions":[
{
"description":"Default Welcome Intent",
"name":"MAIN",
"fulfillment":{
"conversationName":"conversation_1"
},
"intent":{
"name":"actions.intent.MAIN"
}
},
{
"description":"Check Air Quality",
"name":"CHECK_AIR_QUALITY",
"fulfillment":{
"conversationName":"conversation_1"
},
"intent":{
"name":"actions.intent.CHECK_AIR_QUALITY"
}
}
],
"conversations":{
"conversation_1":{
"name":"conversation_1",
"url":"https://example.com/fulfillment",
"fulfillmentApiVersion":2
}
}
}
จัดการพารามิเตอร์ Intent ในตัว
เมื่อการดำเนินการของคุณเรียกใช้ผ่าน Intent ในตัว การดำเนินการตามคำสั่งซื้ออาจ ได้รับพารามิเตอร์เพิ่มเติม สคีมา Intent กำหนดชื่อของ และประเภทของพารามิเตอร์เป็นประเภทพื้นฐานหรือ schema.org เอนทิตี หากต้องการดูสคีมาสำหรับ Intent ในตัวของการดำเนินการแบบการสนทนา ให้ดู ข้อมูลอ้างอิง Intent ในตัว
คุณจะใช้พารามิเตอร์สำหรับ Intent ในตัวหรือไม่ก็ได้ Assistant จะจัดการ ที่มีค่า หากสามารถแยกออกจากการเรียกใช้ของผู้ใช้ Intent ในตัว
เช่น สคีมาของ actions.intent.CHECK_AIR_QUALITY
ในตัว
Intent จะกำหนดพารามิเตอร์ที่ไม่บังคับ 4 รายการดังนี้
ชื่อพารามิเตอร์ | ประเภท |
---|---|
attributes |
ค่าสตริง |
location |
ออบเจ็กต์ schema.org/Place |
temporalCoverage |
ออบเจ็กต์ schema.org/Duration |
timeIndicator |
EnumeratedDuration (ส่วนขยายเฉพาะของ Google) |
ข้อมูลโค้ดต่อไปนี้แสดงตัวอย่างของเว็บฮุคการสนทนา (JSON) เมื่อผู้ใช้เรียกใช้การดำเนินการของคุณโดยพูดว่า "คุณภาพอากาศใน พรุ่งนี้ที่ซานฟรานซิสโก":
"inputs":[
{
"intent":"actions.intent.CHECK_AIR_QUALITY",
"rawInputs":[
{
"inputType":"VOICE",
"query":"what is the air quality in san francisco tomorrow"
}
],
"arguments":[
{
"name":"location",
"structuredValue":{
"geo":{
"longitude":-122.41941550000001,
"latitude":37.7749295
},
"@context":"https://schema.org",
"@type":"Place",
"name":"san francisco"
}
},
{
"name":"temporalCoverage",
"rawText":"2018-04-25",
"textValue":"2018-04-25"
}
]
}
]
ในตัวอย่างนี้ พารามิเตอร์จะใช้ค่าต่อไปนี้
- พารามิเตอร์
location
มีschema.org/Place
สำหรับ "เชียงใหม่" - พารามิเตอร์
temporalCoverage
มีschema.org/Duration
สำหรับวันที่ของวันพรุ่งนี้ซึ่งสัมพันธ์กับเวลาของการเรียกใช้ - ไม่มีค่าสำหรับพารามิเตอร์
attributes
และtimeIndicator
เนื่องจากวลีสำหรับเรียกของผู้ใช้ไม่มีข้อมูลดังกล่าว
หากคุณใช้ไลบรารีของไคลเอ็นต์ Actions on Google สำหรับ Node.js คุณสามารถดึงค่าของพารามิเตอร์ดังที่แสดงในข้อมูลโค้ดต่อไปนี้
app.intent('actions.intent.CHECK_AIR_QUALITY', (conv) => {
const attributes = conv.arguments.get('attributes');
const location = conv.arguments.get('location');
const temporal_coverage = conv.arguments.get('temporalCoverage');
Const time_indicator = conv.arguments.get('timeIndicator')
// Your Action logic. If you need to use any of the parameter values,
// you should check first that it is defined. Arguments.get returns
// undefined if it can't find a value for a parameter.
});
ทดสอบการผสานรวมกับ Intent ในตัว
ทำตามขั้นตอนต่อไปนี้เพื่อทดสอบการผสานรวม
- เปิดเครื่องมือจำลอง Actions ที่เปิดใช้การดำเนินการทดสอบ หรือเปิด Assistant ในอุปกรณ์ของคุณ
- พูดหรือพิมพ์คำค้นหาที่เชื่อมโยงกับ Intent ในตัว ตัวอย่างเช่น "ฉันอยากเล่นเกม"
- ค้นหาการดำเนินการจากกล่องโต้ตอบการเลือกแอปที่แสดงอยู่
- เลือกแอปที่จะส่ง Intent ไปยังแอป
แนวทางปฏิบัติแนะนำสำหรับการใช้ Intent ในตัว
คุณควรทำตามแนวทางปฏิบัติแนะนำต่อไปนี้เมื่อใช้ Intent ในตัว
- จับคู่ Intent ในตัวกับการดำเนินการที่เฉพาะเจาะจง: เมื่อ Intent ในตัวที่เฉพาะเจาะจง
ทริกเกอร์การดำเนินการของคุณ ส่งผู้ใช้ไปยัง Intent ที่เฉพาะเจาะจง
ให้ทำงานได้ราบรื่นที่สุด สำหรับ
ตัวอย่างเช่น หากการดำเนินการของคุณรองรับ Intent ในตัว
PLAY_GAME
และ คุณควรส่งผู้ใช้ไปยังฟีเจอร์เกมทันที ของการดำเนินการของคุณ หลีกเลี่ยงการถามผู้ใช้อีกครั้งว่าต้องการเล่นเกมหรือไม่ - จัดการพารามิเตอร์ Intent ในตัว: ตรวจสอบว่าคุณใช้ Intent ในตัว ค่าพารามิเตอร์ที่ Assistant ส่งไปยังการดำเนินการตามคำสั่งซื้อ หลีกเลี่ยงการแจ้งผู้ใช้อีกครั้งสำหรับค่าเหล่านั้น