คุณจะจัดเก็บค่าพารามิเตอร์สำหรับผู้ใช้ที่ต้องการภายในการสนทนาในพื้นที่เก็บข้อมูลเซสชันได้ จากนั้นการดำเนินการจะใช้ค่าที่เก็บไว้เหล่านั้นได้ภายหลังในพรอมต์และเงื่อนไข และโค้ดเว็บฮุคจะเข้าถึงค่าในพื้นที่เก็บข้อมูลเซสชันสำหรับการสนทนาได้เมื่อจำเป็น
ในระหว่างการสนทนา ระบบจะเก็บข้อมูลที่รวบรวมโดยใช้ประเภทไว้ในพื้นที่เก็บข้อมูลเซสชัน นอกจากนี้ คุณยังโต้ตอบกับข้อมูลในพื้นที่เก็บข้อมูลเซสชันได้โดยใช้การโทรเว็บฮุค
สำหรับการเรียกเว็บฮุค ระบบจะส่งสถานะของพื้นที่เก็บข้อมูลเซสชันในคำขอ 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." }] } }] }
อ้างอิงค่าที่จัดเก็บไว้ภายในเงื่อนไข
นอกจากนี้ คุณยังอ้างอิงค่าที่เก็บไว้ในพื้นที่เก็บข้อมูลเซสชันในconditionsได้ด้วย หากต้องการอ้างอิงค่า ให้ใช้ไวยากรณ์ session.params.PARAMETER_NAME
โดยที่ PARAMETER_NAME
เป็นชื่อที่ระบุในเว็บฮุคเมื่อมีการตั้งค่าพารามิเตอร์
เช่น ก่อนหน้านี้คุณจัดเก็บค่าสีไว้ในพื้นที่เก็บข้อมูลเซสชันเป็นพารามิเตอร์ exampleColor
และต้องการจับคู่กับค่า "red" ในเงื่อนไขหนึ่งๆ ในเงื่อนไขของคุณ คุณอ้างอิงค่าที่จัดเก็บไว้โดยใช้ session.params.exampleColor
นิพจน์เงื่อนไขจะมีลักษณะดังนี้
ไวยากรณ์ของเงื่อนไข
session.params.exampleColor == "red"