Oturum depolama

Bir görüşmedeki belirli bir kullanıcının parametre değerlerini şurada depolayabilirsiniz: oturum depolaması. İşleminiz, depolanan bu değerleri daha sonra istemlerde kullanabilir ve webhook kodunuz şunun için oturum depolama alanındaki değerlere erişebilir: konuşmaya dahil edebilirsiniz.

Bir görüşme sırasında, türler kullanılarak toplanan tüm veriler oturumda depolanır depolama alanına sahip olursunuz. Webhook çağrılarını kullanarak, oturum depolama alanındaki verilerle de etkileşim kurabilirsiniz. Webhook çağrılarında, oturum depolamasının durumu app.handle() içinde aktarılır isteği belirtir ve session nesnesinde depolanır.

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

Oturum depolama alanına veri okuma ve yazma

Oturum depolama alanını güncellemek veya yeni bir değer ayarlamak için değeri Bir webhook çağrısındaki session nesnesinin params alanı. Aşağıdaki örnek "exampleColor" değerini ayarlar "kırmızı" olarak oturum depolamasında:

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 verileri webhook'taki bir değişkene atayın çağrısına bir tıklama URL'si eklemeniz gerekir. Aşağıdaki örnek, "exampleColor"dan bir değer alır. oturumda depolama alanı:

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 bu değeri null olarak ayarlayın. Aşağıdaki örnekte "exampleColor" değeri temizlenmektedir oturum depolamasında:

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

İstemlerdeki depolanan değerlere başvurma

Oturum depolama alanında depolanan değerlere bir istemde başvurabilirsiniz. Referans olarak değeri için $session.params.PARAMETER_NAME söz dizimi kullanın; burada PARAMETER_NAME parametresi ayarlandı.

Örneğin, önceden oturumun depolama alanında exampleColor parametresinden yararlanın. Bir istemde bu değere erişmek için değeri ($session.params.exampleColor kullanarak):

JSON

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

Koşullar dahilinde kayıtlı değerlere başvurma

Ayrıca, koşullarda oturum depolama alanında depolanan değerlere de başvurabilirsiniz. Alıcı: değere başvuruda bulunmak için, session.params.PARAMETER_NAME söz dizimi; burada PARAMETER_NAME olduğunda webhook'ta verilen ad parametrenin ayarlandığını gösterir.

Örneğin, önceden oturumun depolama alanında exampleColor parametresini içeriyor ve "red" değeriyle eşleştirmek istiyorsanız koşul alır. Koşulunuzda, saklanan değere şunu kullanarak başvurursunuz: session.params.exampleColor Koşul ifadeniz şöyle görünür:

Koşul söz dizimi

session.params.exampleColor == "red"