As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Definição de atributos complexos no seu bot do Lex V2
Os atributos de sessão e solicitação são string-to-string mapas de atributos e valores. Em muitos casos, você pode usar o mapa de string para transferir valores de atributo entre o aplicativo cliente e o bot. Em alguns casos, no entanto, pode ser necessário transferir uma estrutura complexa ou dados binários que não podem ser facilmente convertidos em um mapa de string. Por exemplo, o seguinte objeto JSON representa um arranjo com as três cidades mais populosas dos Estados Unidos:
{
"cities": [
{
"city": {
"name": "New York",
"state": "New York",
"pop": "8537673"
}
},
{
"city": {
"name": "Los Angeles",
"state": "California",
"pop": "3976322"
}
},
{
"city": {
"name": "Chicago",
"state": "Illinois",
"pop": "2704958"
}
}
]
}
Essa matriz de dados não se traduz bem em um string-to-string mapa. Nesse caso, você pode transformar um objeto em uma string simples para que você possa enviá-lo ao seu bot com as operações RecognizeText e RecognizeUtterance.
Por exemplo, se você estiver usando JavaScript, você pode usar a JSON.stringify
operação para converter um objeto em JSON e a JSON.parse
operação para converter texto JSON em um JavaScript objeto:
// To convert an object to a string. var jsonString = JSON.stringify(
object
, null, 2); // To convert a string to an object. varobj
= JSON.parse(JSON string
);
Para enviar atributos com a RecognizeUtterance
operação, você deve codificar os atributos em base64 antes de adicioná-los ao cabeçalho da solicitação, conforme mostrado no código a seguir: JavaScript
var
encodedAttributes
= new Buffer(attributeString
).toString("base64");
Você pode enviar dados binários para as operações RecognizeText
e RecognizeUtterance
convertendo os dados para uma string codificada em base64 e, em seguida, enviando a string como o valor nos atributos de sessão:
"sessionAttributes" : {
"binaryData": "base64 encoded data
"
}