Oturum depolama

Bir görüşmede belirli bir kullanıcıya ait parametre değerlerini oturum depolama alanında depolayabilirsiniz. İşleminiz daha sonra bu depolanan değerleri istemlerde ve koşullarda kullanabilir ve webhook kodunuz gerektiğinde görüşme için oturum depolama alanındaki değerlere erişebilir.

Bir görüşme sırasında türler kullanılarak toplanan tüm veriler oturum depolama alanında depolanır. Ayrıca, webhook çağrılarını kullanarak oturum depolama alanındaki verilerle etkileşimde bulunabilirsiniz. Webhook çağrıları için oturum depolamasının durumu bir app.handle() isteğinde iletilir ve session nesnesinde depolanır.

Görüşme sona erdiğinde, oturum depolama alanında depolanan verilerin süresi dolar.

Oturum depolama alanına veri okuma ve yazma

Oturum depolama alanında yeni bir değer güncellemek veya ayarlamak için değeri, bir webhook çağrısında session nesnesinin params alanına atayın. Aşağıdaki örnekte, oturum depolama alanında "exampleColor" "red" olarak ayarlanmaktadır:

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
    }
  }
}
    

Oturum depolama alanında depolanan verilere erişmek için bu verileri webhook çağrısındaki bir değişkene atayın. Aşağıdaki örnek, oturum depolama alanındaki "exampleColor" öğesinden bir değer alır:

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
    }
  }
}
    

Daha önce kaydedilmiş bir değeri temizlemek için bir webhook çağrısında değeri null olarak ayarlayın. Aşağıdaki örnek, oturum depolama alanındaki "exampleColor" değerini temizler:

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
    }
  }
}
    

İstemlerde depolanan değerlere referans verme

Oturum depolama alanında depolanan değerlere bir istemde başvurabilirsiniz. Değere referans vermek için $session.params.PARAMETER_NAME söz dizimini kullanın. Burada PARAMETER_NAME, parametre ayarlandığında webhook'ta verilen addır.

Örneğin, daha önce oturum depolama alanında exampleColor parametresi olarak bir renk değeri depolamıştınız. Bir istemde bu değere erişmek için $session.params.exampleColor kullanarak söz konusu değere başvurursunuz:

JSON

{
  "candidates": [{
    "first_simple": {
      "variants": [{
        "speech": "Your favorite color is $session.params.exampleColor."
      }]
    }
  }]
}
    

Koşullar dahilinde saklanan değerlere referans ver

Oturum depolama alanında depolanan değerlere conditions da başvurabilirsiniz. Değere referans vermek için session.params.PARAMETER_NAME söz dizimini kullanın. Burada PARAMETER_NAME, parametre ayarlandığında webhook'ta verilen addır.

Örneğin, daha önce oturum depolama alanında exampleColor parametresi olarak bir renk değerini depoladığınızı ve bunu bir koşulda "red" değeriyle eşleştirmek istediğinizi varsayalım. Koşulunuzda, depolanan değere session.params.exampleColor kullanarak referans verirsiniz. Bu durumda koşul ifadeniz aşağıdaki gibi görünür:

Koşul söz dizimi

session.params.exampleColor == "red"