พื้นที่เก็บข้อมูลเซสชัน

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

ระหว่างการสนทนา ระบบจะจัดเก็บข้อมูลที่เก็บรวบรวมโดยใช้ประเภทไว้ในเซสชัน พื้นที่เก็บข้อมูล คุณยังโต้ตอบกับข้อมูลในพื้นที่เก็บข้อมูลเซสชันโดยใช้การเรียกเว็บฮุคได้ด้วย สำหรับการเรียกเว็บฮุค ระบบจะส่งสถานะของพื้นที่เก็บข้อมูลเซสชันใน app.handle() และจัดเก็บไว้ในออบเจ็กต์ session

ข้อมูลที่จัดเก็บไว้ในพื้นที่เก็บข้อมูลของเซสชันจะหมดอายุเมื่อการสนทนาสิ้นสุดลง

อ่านและเขียนข้อมูลไปยังพื้นที่เก็บข้อมูลของเซสชัน

หากต้องการอัปเดตหรือตั้งค่าใหม่ในพื้นที่เก็บข้อมูลเซสชัน ให้กำหนดค่าให้กับ ฟิลด์ params ของออบเจ็กต์ session ในการเรียกเว็บฮุค ตัวอย่างต่อไปนี้ ตั้งค่า "exampleColor" เป็น "สีแดง" ในพื้นที่เก็บข้อมูลเซสชัน:

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 และคุณต้องการจับคู่กับค่า "สีแดง" ใน ในเงื่อนไขของคุณ ให้อ้างอิงค่าที่จัดเก็บไว้โดยใช้ session.params.exampleColor นิพจน์เงื่อนไขของคุณจะมีลักษณะดังนี้

ไวยากรณ์เงื่อนไข

session.params.exampleColor == "red"