คุณจะจัดเก็บค่าพารามิเตอร์สําหรับผู้ใช้ที่ต้องการในการสนทนาภายในพื้นที่เก็บข้อมูลเซสชันได้ การดําเนินการของคุณจะใช้ค่าที่จัดเก็บไว้เหล่านั้นในภายหลังได้ในข้อความแจ้งและเงื่อนไข และโค้ดของเว็บฮุคจะเข้าถึงค่าในพื้นที่เก็บข้อมูลของเซสชันสําหรับการสนทนาได้เมื่อจําเป็น
ในระหว่างการสนทนา ข้อมูลที่รวบรวมโดยใช้ประเภทจะได้รับการจัดเก็บไว้ในพื้นที่เก็บข้อมูลเซสชัน นอกจากนี้ คุณยังโต้ตอบกับข้อมูลในพื้นที่จัดเก็บเซสชันได้โดยใช้การเรียกเว็บฮุค
สําหรับการเรียกใช้เว็บฮุค ระบบจะส่งสถานะพื้นที่เก็บข้อมูลเซสชันในคําขอ app.handle()
และจัดเก็บไว้ในออบเจ็กต์ session
ข้อมูลที่เก็บไว้ในพื้นที่เก็บข้อมูลจะหมดอายุเมื่อการสนทนาสิ้นสุดลง
อ่านและเขียนข้อมูลลงในพื้นที่เก็บข้อมูลของเซสชัน
หากต้องการอัปเดตหรือกําหนดค่าใหม่ในพื้นที่เก็บข้อมูลของเซสชัน ให้กําหนดค่าในช่อง params
ของออบเจ็กต์ session
ในการเรียกเว็บฮุค ตัวอย่างต่อไปนี้ตั้งค่า "exampleColor" เป็น "red" ในพื้นที่เก็บข้อมูลเซสชัน
Node.js
// Assign color to session storage app.handle('storeColor', conv => { let color = 'red'; conv.session.params.exampleColor = color; });
JSON
{ "responseJson": { "session": { "id": "12345678901234567890", "params": { "exampleColor": "red" } }, "prompt": { "override": false } } }
หากต้องการเข้าถึงข้อมูลที่จัดเก็บไว้ในพื้นที่เก็บข้อมูลของเซสชัน ให้กําหนดตัวแปรดังกล่าวในการเรียกเว็บฮุค ตัวอย่างต่อไปนี้ดึงค่าจาก "exampleColor" ในการจัดเก็บเซสชัน
Node.js
// Retrieve color from session storage app.handle('getStoredColor', conv => { let color = conv.session.params.exampleColor; });
JSON
{ "responseJson": { "session": { "id": "12345678901234567890", "params": { "exampleColor": "red" } }, "prompt": { "override": false } } }
หากต้องการล้างค่าที่บันทึกไว้ก่อนหน้านี้ ให้ตั้งค่าเป็น null
ในการเรียกเว็บฮุค
ตัวอย่างต่อไปนี้จะล้างค่าของ "exampleColor" ในพื้นที่เก็บข้อมูลเซสชัน
Node.js
// Clear color from session storage app.handle('clearStoredColor', conv => { conv.session.params.exampleColor = null; });
JSON
{ "responseJson": { "session": { "id": "12345678901234567890", "params": {} }, "prompt": { "override": false } } }
อ้างอิงค่าที่เก็บไว้ภายในข้อความแจ้ง
คุณสามารถอ้างอิงค่าที่เก็บไว้ในพื้นที่จัดเก็บเซสชันได้ในข้อความแจ้ง หากต้องการอ้างอิงค่า ให้ใช้ไวยากรณ์ $session.params.PARAMETER_NAME
โดยที่ PARAMETER_NAME
เป็นชื่อที่ระบุในเว็บฮุคเมื่อตั้งค่าพารามิเตอร์
เช่น ก่อนหน้านี้คุณเก็บค่าสีไว้ในพื้นที่เก็บข้อมูลของเซสชันเป็นพารามิเตอร์ exampleColor
หากต้องการเข้าถึงค่านั้นในข้อความแจ้ง คุณจะอ้างอิงค่านั้นโดยใช้ $session.params.exampleColor
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Your favorite color is $session.params.exampleColor." }] } }] }
อ้างอิงค่าที่เก็บไว้ภายในเงื่อนไข
นอกจากนี้ คุณยังอ้างอิงค่าที่เก็บไว้ในพื้นที่เก็บข้อมูลเซสชันได้ในเงื่อนไข หากต้องการอ้างอิงค่า ให้ใช้ไวยากรณ์ session.params.PARAMETER_NAME
ซึ่ง PARAMETER_NAME
เป็นชื่อที่ระบุในเว็บฮุคเมื่อตั้งค่าพารามิเตอร์
เช่น ก่อนหน้านี้คุณเก็บค่าสีไว้ในพื้นที่เก็บข้อมูลของเซสชันเป็นพารามิเตอร์ exampleColor
และต้องการจับคู่กับค่า "red" ในเงื่อนไข ในเงื่อนไข คุณจะอ้างอิงค่าที่เก็บไว้โดยใช้ session.params.exampleColor
นิพจน์เงื่อนไขของคุณจะมีลักษณะเช่นนี้
ไวยากรณ์เงื่อนไข
session.params.exampleColor == "red"