ذخیره سازی جلسه

می‌توانید مقادیر پارامتر را برای یک کاربر خاص در یک مکالمه در ذخیره‌سازی جلسه ذخیره کنید. سپس Action شما می‌تواند از آن مقادیر ذخیره‌شده بعداً در اعلان‌ها و شرایط استفاده کند، و کد webhook شما می‌تواند در صورت لزوم به مقادیر موجود در ذخیره‌سازی جلسه برای مکالمه دسترسی پیدا کند.

در طول مکالمه، هر داده ای که با استفاده از انواع جمع آوری می شود در ذخیره سازی جلسه ذخیره می شود. همچنین می‌توانید با استفاده از تماس‌های webhook با داده‌های موجود در ذخیره‌سازی جلسه تعامل داشته باشید. برای تماس‌های وب هوک، وضعیت ذخیره‌سازی جلسه در یک درخواست 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 نحو $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 نحو session.params. PARAMETER_NAME ، که در آن PARAMETER_NAME نامی است که هنگام تنظیم پارامتر در وب هوک داده شده است.

به عنوان مثال، شما قبلاً یک مقدار رنگ را در ذخیره سازی جلسه به عنوان پارامتر exampleColor ذخیره کرده اید و می خواهید آن را با مقدار "قرمز" در یک شرط مطابقت دهید. در شرایط شما، با استفاده از session.params.exampleColor به مقدار ذخیره شده ارجاع می دهید. سپس عبارت وضعیت شما به صورت زیر است:

نحو شرط

session.params.exampleColor == "red"