Einstellung komplexer Attribute in Ihrem Lex V2-Bot - Amazon Lex

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Einstellung komplexer Attribute in Ihrem Lex V2-Bot

Sitzungs- und Anforderungsattribute sind string-to-string Zuordnungen von Attributen und Werten. In vielen Fällen können Sie mit der Zeichenfolgen-Zuordnung Attributwerte zwischen Ihrer Clientanwendung und einem Bot übertragen. In einigen Fällen müssen Sie jedoch möglicherweise binäre Daten oder eine komplexe Struktur übertragen, die schwer in eine Zeichenfolgen-Zuordnung konvertiert werden kann. Das folgende JSON Objekt stellt beispielsweise ein Array der drei bevölkerungsreichsten Städte in den Vereinigten Staaten dar:

{ "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" } } ] }

Dieses Datenarray lässt sich nicht gut auf eine string-to-string Karte übertragen. In einem solchen Fall können Sie ein Objekt in eine einfache Zeichenfolge umwandeln, sodass Sie es mit den RecognizeUtteranceOperationen RecognizeTextund an Ihren Bot senden können.

Wenn Sie beispielsweise verwenden, können Sie die JSON.stringify Operation verwenden JavaScript, um ein Objekt zu konvertierenJSON, und die JSON.parse Operation, um JSON Text in ein JavaScript Objekt zu konvertieren:

// To convert an object to a string. var jsonString = JSON.stringify(object, null, 2); // To convert a string to an object. var obj = JSON.parse(JSON string);

Um Attribute mit der RecognizeUtterance Operation zu senden, müssen Sie die Attribute base64-kodieren, bevor Sie sie dem Anforderungsheader hinzufügen, wie im folgenden JavaScript Code gezeigt:

var encodedAttributes = new Buffer(attributeString).toString("base64");

Sie können binäre Daten an die Operationen RecognizeText und RecognizeUtterance senden, indem Sie die Daten zunächst in eine mit base64 kodierte Zeichenfolge konvertieren und diese Zeichenfolge dann als Wert in den Sitzungsattributen übermitteln:

"sessionAttributes" : { "binaryData": "base64 encoded data" }