JSONformat pour importer et exporter des robots dans Lex V2 - Amazon Lex

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

JSONformat pour importer et exporter des robots dans Lex V2

Vous importez et exportez des robots, des paramètres régionaux de bots ou des vocabulaires personnalisés depuis Amazon Lex V2 à l'aide d'un fichier .zip contenant des JSON structures décrivant les parties de la ressource. Lorsque vous exportez une ressource, Amazon Lex V2 crée le fichier .zip et le met à votre disposition à l'aide d'un Amazon S3 URL pré-signé. Lorsque vous importez une ressource, vous devez créer un fichier .zip contenant les JSON structures et le télécharger sur un S3 URL pré-signé.

Amazon Lex crée la structure de répertoire suivante dans le fichier .zip lorsque vous exportez un bot. Lorsque vous exportez les paramètres régionaux d'un bot, seule la structure correspondant aux paramètres régionaux est exportée. Lorsque vous exportez un vocabulaire personnalisé, seule la structure correspondant au vocabulaire personnalisé est exportée.

BotName_BotVersion_ExportID_LexJson.zip -or- BotName_BotVersion_LocaleId_ExportId_LEX_JSON.zip --> manifest.json --> BotName ----> Bot.json ----> BotLocales ------> Locale_A --------> BotLocale.json --------> Intents ----------> Intent_A ------------> Intent.json ------------> Slots --------------> Slot_A ----------------> Slot.json --------------> Slot_B ----------------> Slot.json ----------> Intent_B ... --------> SlotTypes ----------> SlotType_A ------------> SlotType.json ----------> SlotType_B ... --------> CustomVocabulary ------------> CustomVocabulary.json ------> Locale_B ...

Structure du fichier manifeste

Le fichier manifeste contient les métadonnées du fichier d'exportation.

{ "metadata": { "schemaVersion": "1.0", "fileFormat": "LexJson", "resourceType": "Bot | BotLocale | CustomVocabulary" } }

Structure du fichier du bot

Le fichier du bot contient les informations de configuration du bot.

{ "name": "BotName", "identifier": "identifier", "version": "number", "description": "description", "dataPrivacy": { "childDirected": true | false }, "idleSessionTTLInSeconds": seconds }

Structure du fichier local du bot

Le fichier de paramètres régionaux du bot contient une description des paramètres régionaux ou de la langue d'un robot. Lorsque vous exportez un bot, le fichier .zip peut contenir plusieurs fichiers de localisation du bot. Lorsque vous exportez les paramètres régionaux d'un bot, le fichier zip ne contient qu'un seul paramètre régional.

{ "name": "locale name", "identifier": "locale ID", "version": "number", "description": "description", "voiceSettings": { "voiceId": "voice", "engine": "standard | neural }, "nluConfidenceThreshold": number }

Structure du fichier Intent

Le fichier d'intention contient les informations de configuration d'une intention. Le fichier .zip contient un fichier d'intention pour chaque intention dans un environnement régional spécifique.

Voici un exemple de JSON structure pour l' BookCar intention dans l'exemple de BookTrip bot. Pour un exemple complet de la JSON structure d'une intention, voir l'CreateIntentopération.

{ "name": "BookCar", "identifier": "891RWHHICO", "description": "Intent to book a car.", "parentIntentSignature": null, "sampleUtterances": [ { "utterance": "Book a car" }, { "utterance": "Reserve a car" }, { "utterance": "Make a car reservation" } ], "intentConfirmationSetting": { "confirmationPrompt": { "messageGroupList": [ { "message": { "plainTextMessage": { "value": "OK, I have you down for a {CarType} hire in {PickUpCity} from {PickUpDate} to {ReturnDate}. Should I book the reservation?" }, "ssmlMessage": null, "customPayload": null, "imageResponseCard": null }, "variations": null } ], "maxRetries": 2 }, "declinationResponse": { "messageGroupList": [ { "message": { "plainTextMessage": { "value": "OK, I have cancelled your reservation in progress." }, "ssmlMessage": null, "customPayload": null, "imageResponseCard": null }, "variations": null } ] } }, "intentClosingSetting": null, "inputContexts": null, "outputContexts": null, "kendraConfiguration": null, "dialogCodeHook": null, "fulfillmentCodeHook": null, "slotPriorities": [ { "slotName": "DriverAge", "priority": 4 }, { "slotName": "PickUpDate", "priority": 2 }, { "slotName": "ReturnDate", "priority": 3 }, { "slotName": "PickUpCity", "priority": 1 }, { "slotName": "CarType", "priority": 5 } ] }

Structure du fichier Slot

Le fichier d'emplacement contient les informations de configuration d'un emplacement dans une intention. Le fichier .zip contient un fichier d'emplacement pour chaque emplacement défini pour une intention dans un environnement régional spécifique.

L'exemple suivant montre la JSON structure d'un emplacement qui permet au client de choisir le type de voiture qu'il souhaite louer conformément à l' BookCar objectif indiqué dans l' BookTrip exemple de bot. Pour un exemple complet de la JSON structure d'un slot, voir l'CreateSlotopération.

{ "name": "CarType", "identifier": "KDHJWNGZGC", "description": "Type of car being reserved.", "multipleValuesSetting": { "allowMutlipleValues": false }, "slotTypeName": "CarTypeValues", "obfuscationSetting": null, "slotConstraint": "Required", "defaultValueSpec": null, "slotValueElicitationSetting": { "promptSpecification": { "messageGroupList": [ { "message": { "plainTextMessage": { "value": "What type of car would you like to rent? Our most popular options are economy, midsize, and luxury" }, "ssmlMessage": null, "customPayload": null, "imageResponseCard": null }, "variations": null } ], "maxRetries": 2 }, "sampleValueElicitingUtterances": null, "waitAndContinueSpecification": null, } }

L'exemple suivant montre la JSON structure d'un emplacement composite.

{ "name": "CarType", "identifier": "KDHJWNGZGC", "description": "Type of car being reserved.", "multipleValuesSetting": { "allowMutlipleValues": false }, "slotTypeName": "CarTypeValues", "obfuscationSetting": null, "slotConstraint": "Required", "defaultValueSpec": null, "slotValueElicitationSetting": { "promptSpecification": { "messageGroupList": [ { "message": { "plainTextMessage": { "value": "What type of car would you like to rent? Our most popular options are economy, midsize, and luxury" }, "ssmlMessage": null, "customPayload": null, "imageResponseCard": null }, "variations": null } ], "maxRetries": 2 }, "sampleValueElicitingUtterances": null, "waitAndContinueSpecification": null, }, "subSlotSetting": { "slotSpecifications": { "firstname": { "valueElicitationSetting": { "promptSpecification": { "allowInterrupt": false, "messageGroupsList": [ { "message": { "imageResponseCard": null, "ssmlMessage": null, "customPayload": null, "plainTextMessage": { "value": "please provide firstname" } }, "variations": null } ], "maxRetries": 2, "messageSelectionStrategy": "Random" }, "defaultValueSpecification": null, "sampleUtterances": [ { "utterance": "my name is {firstName}" } ], "waitAndContinueSpecification": null }, "slotTypeId": "AMAZON.FirstName" }, "eyeColor": { "valueElicitationSetting": { "promptSpecification": { "allowInterrupt": false, "messageGroupsList": [ { "message": { "imageResponseCard": null, "ssmlMessage": null, "customPayload": null, "plainTextMessage": { "value": "please provide eye color" } }, "variations": null } ], "maxRetries": 2, "messageSelectionStrategy": "Random" }, "defaultValueSpecification": null, "sampleUtterances": [ { "utterance": "eye color is {eyeColor}" }, { "utterance": "I have eyeColor eyes" } ], "waitAndContinueSpecification": null }, "slotTypeId": "7FEVCB2PQE" } }, "expression": "(firstname OR eyeColor)" } }

Structure de fichier de type slot

Le fichier de type d'emplacement contient les informations de configuration d'un type d'emplacement personnalisé utilisé dans une langue ou un environnement régional. Le fichier .zip contient un fichier de type d'emplacement pour chaque type d'emplacement personnalisé dans un environnement régional spécifique.

Voici la JSON structure du type de machine à sous qui répertorie les types de voitures disponibles dans l' BookTrip exemple de bot. Pour un exemple complet de la JSON structure d'un type de slot, voir l'CreateSlotTypeopération.

{ "name": "CarTypeValues", "identifier": "T1YUHGD9ZR", "description": "Enumeration representing possible types of cars available for hire", "slotTypeValues": [{ "synonyms": null, "sampleValue": { "value": "economy" } }, { "synonyms": null, "sampleValue": { "value": "standard" } }, { "synonyms": null, "sampleValue": { "value": "midsize" } }, { "synonyms": null, "sampleValue": { "value": "full size" } }, { "synonyms": null, "sampleValue": { "value": "luxury" } }, { "synonyms": null, "sampleValue": { "value": "minivan" } }], "parentSlotTypeSignature": null, "valueSelectionSetting": { "resolutionStrategy": "TOP_RESOLUTION", "advancedRecognitionSetting": { "audioRecognitionStrategy": "UseSlotValuesAsCustomVocabulary" }, "regexFilter": null } }

L'exemple suivant montre la JSON structure d'un type de slot composite.

{ "name": "CarCompositeType", "identifier": "TPA3CC9V", "description": null, "slotTypeValues": null, "parentSlotTypeSignature": null, "valueSelectionSetting": { "regexFilter": null, "resolutionStrategy": "CONCATENATION" }, "compositeSlotTypeSetting": { "subSlots": [ { "name": "model", "slotTypeId": "MODELTYPEID" # custom slot type Id for model }, { "name": "city", "slotTypeId": "AMAZON.City" }, { "name": "country", "slotTypeId": "AMAZON.Country" }, { "name": "make", "slotTypeId": "MAKETYPEID" # custom slot type Id for make } ] } }

Voici un type de machine à sous qui utilise une grammaire personnalisée pour comprendre les énoncés du client. Pour de plus amples informations, veuillez consulter Type de slot grammatical.

{ "name": "custom_grammar", "identifier": "7KEAQIQKPX", "description": "Slot type using a custom grammar", "slotTypeValues": null, "parentSlotTypeSignature": null, "valueSelectionSetting": null, "externalSourceSetting": { "grammarSlotTypeSetting": { "source": { "kmsKeyArn": "arn:aws:kms:Region:123456789012:alias/customer-grxml-key", "s3BucketName": "grxml-test", "s3ObjectKey": "grxml_files/grammar.grxml" } } } }

Structure de fichier de vocabulaire personnalisée

Le fichier de vocabulaire personnalisé contient les entrées d'un vocabulaire personnalisé pour une seule langue ou une langue locale. Le fichier .zip contient un fichier de vocabulaire personnalisé pour chaque langue qui possède un vocabulaire personnalisé.

Ce qui suit est un fichier de vocabulaire personnalisé pour un bot qui prend des commandes au restaurant. Il existe un fichier par localisation dans le bot.

{ "customVocabularyItems": [ { "weight": 3, "phrase": "wafers" }, { "weight": null, "phrase": "extra large" }, { "weight": null, "phrase": "cremini mushroom soup" }, { "weight": null, "phrase": "ramen" }, { "weight": null, "phrase": "orzo" } ] }