

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.

# Structures communes d'une AWS Lambda fonction pour Amazon Lex V2
<a name="lambda-common-structures"></a>

Dans la réponse Lambda, un certain nombre de structures se reproduisent. Des détails sur ces structures communes sont fournis dans cette section.

## Intention
<a name="lambda-intent"></a>

```
"intent": {
    "confirmationState": "Confirmed | Denied | None",
    "name": string,
    "slots": {
        // see Emplacements for details about the structure
    },
    "state": "Failed | Fulfilled | FulfillmentInProgress | InProgress | ReadyForFulfillment | Waiting",
    "kendraResponse": {
        // Only present when intent is KendraSearchIntent. For details, see
// https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html#API_Query_ResponseSyntax       }
}
```

Le `intent` champ est mappé à un objet avec les champs suivants :

### État de confirmation
<a name="lambda-intent-confirmationstate"></a>

Indique si l'utilisateur a confirmé les créneaux correspondant à l'intention et si l'intention est prête à être exécutée. Les valeurs suivantes sont possibles :

`Confirmed`— L'utilisateur confirme que les valeurs des emplacements sont correctes.

`Denied`— L'utilisateur indique que les valeurs des emplacements sont incorrectes.

`None`— L'utilisateur n'a pas encore atteint le stade de confirmation.

### name
<a name="lambda-intent-name"></a>

Nom de l'intention.

### slots
<a name="lambda-intent-slots"></a>

Informations sur les créneaux nécessaires pour atteindre l'objectif. Voir [Emplacements](#lambda-slot) pour plus de détails sur la structure.

### state
<a name="lambda-intent-state"></a>

Indique l'état d'exécution de l'intention. Les valeurs suivantes sont possibles :

`Failed`— Le bot n'a pas atteint son objectif.

`Fulfilled`— Le bot a terminé de remplir son intention.

`FulfillmentInProgress`— Le bot est en train de réaliser son intention.

`InProgress`— Le bot est en train de déterminer les valeurs des créneaux nécessaires pour atteindre l'objectif.

`ReadyForFulfillment`— Le bot a obtenu toutes les valeurs des créneaux correspondant à l'intention et est prêt à réaliser l'intention.

`Waiting`— Le bot attend une réponse de l'utilisateur (limité aux conversations en streaming).

### kendraResponse
<a name="lambda-intent-kendraresponse"></a>

Contient des informations sur les résultats de la requête de recherche Kendra. Ce champ n'apparaît que si l'intention est une`KendraSearchIntent`. Consultez [la syntaxe de réponse dans l'appel d'API Query pour Kendra](https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html#API_Query_ResponseSyntax) pour plus d'informations.

## Emplacements
<a name="lambda-slot"></a>

Le `slots` champ existe au sein d'une `intent` structure et est mappé à une structure dont les clés sont les noms des emplacements prévus à cet effet. Si l'emplacement n'est pas un emplacement à valeurs multiples (voir [Utilisation de plusieurs valeurs dans un emplacement](multi-valued-slots.md) pour plus de détails), il est mappé à une structure au format suivant. Notez que c'`shape`est le cas`Scalar`.

```
{
    slot name: {
        "shape": "Scalar",
        "value": {
            "originalValue": string,
            "interpretedValue": string,
            "resolvedValues": [
                string,
                ...
            ]
        }
    }
}
```

S'il s'agit d'un emplacement à valeurs multiples, l'objet auquel il est mappé contient un autre champ appelé`values`, qui est mappé à une liste de structures, chacune contenant des informations sur un emplacement constituant l'emplacement à valeurs multiples. Le format de chaque objet de la liste correspond à celui de l'objet auquel un emplacement normal est mappé. Notez que `shape` c'est le `List` cas, mais que `shape` le composant se trouve en dessous l'`values`est`Scalar`.

```
{
    slot name: {
    "shape": "List",
    "value": {
        "originalValue": string,
        "interpretedValue": string,
        "resolvedValues": [
            string,
            ...
        ]
    },
    "values": [
        {
            "shape": "Scalar",
            "value": {
                "originalValue": string,
                "interpretedValue": string,
                "resolvedValues": [
                    string,
                    ...
                ]
            }
        },
        {
            "shape": "Scalar",
            "value": {
                "originalValue": string,
                "interpretedValue": string,
                "resolvedValues": [
                    string,
                    ...
                ]
            }
        },
        ...
    ]
}
```

Les champs de l'objet slot sont décrits ci-dessous :

### shape
<a name="lambda-slots-shape"></a>

La forme de la fente. Cette valeur correspond à la `List` présence de plusieurs valeurs dans le slot (voir [Utilisation de plusieurs valeurs dans un emplacement](multi-valued-slots.md) pour plus de détails), mais c'est le cas dans le `Scalar` cas contraire.

### value
<a name="lambda-slots-value"></a>

Un objet contenant des informations sur la valeur fournie par l'utilisateur pour un emplacement et sur l'interprétation d'Amazon Lex V2, au format suivant :

```
{
    "originalValue": string,
    "interpretedValue": string,
    "resolvedValues": [
        string,
        ...
    ]
}
```

Les champs sont décrits ci-dessous :
+ **OriginalValue** — La partie de la réponse de l'utilisateur à la demande d'emplacement déterminée par Amazon Lex V2 est liée à la valeur de l'emplacement.
+ **InterpretedValue** — La valeur qu'Amazon Lex V2 détermine pour le slot, en fonction des données saisies par l'utilisateur.
+ **ResolvedValues** : liste de valeurs définies par Amazon Lex V2 comme des résolutions possibles pour les données saisies par l'utilisateur.

### values
<a name="lambda-slots-values"></a>

Liste d'objets contenant des informations sur les emplacements qui constituent l'emplacement à valeurs multiples. Le format de chaque objet correspond à celui d'un emplacement normal, avec les `value` champs `shape` et décrits ci-dessus. `values`n'apparaît que si le slot est composé de plusieurs valeurs (voir [Utilisation de plusieurs valeurs dans un emplacement](multi-valued-slots.md) pour plus de détails). L'objet JSON suivant montre deux emplacements de composants :

```
"values": [
    {
        "shape": "Scalar",
        "value": {
            "originalValue": string,
            "interpretedValue": string,
            "resolvedValues": [
                string,
                ...
            ]
        }
    },
    {
        "shape": "Scalar",
        "value": {
            "originalValue": string,
            "interpretedValue": string,
            "resolvedValues": [
                string,
                ...
            ]
        }
    },
    ...
]
```

## État de la session
<a name="lambda-session-state"></a>

Le `sessionState` champ est mappé à un objet contenant des informations sur l'état de la conversation avec l'utilisateur. Les champs réels qui apparaissent dans l'objet dépendent du type d'action de dialogue. Consultez [Champs obligatoires dans la réponse](lambda-response-format.md#lambda-response-required) les champs obligatoires dans une réponse Lambda. Le format de l'`sessionState`objet est le suivant :

```
"sessionState": {
    "activeContexts": [
        {
            "name": string,
            "contextAttributes": {
                string: string
            },
            "timeToLive": {
                "timeToLiveInSeconds": number,
                "turnsToLive": number
            }
        },
        ...
    ],
    "sessionAttributes": {
        string: string,
        ...
    },
    "runtimeHints": {
        "slotHints": {
            intent name: {
                slot name: {
                    "runtimeHintValues": [
                        {
                            "phrase": string
                        },
                        ...
                    ]
                },
                ...
            },
            ...
        }
    },
    "dialogAction": {
        "slotElicitationStyle": "Default | SpellByLetter | SpellByWord",
        "slotToElicit": string,
        "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot"
    },
    "intent": {
        // see Intention for details about the structure
    },
    "originatingRequestId": string
}
```

Les champs sont décrits ci-dessous :

### Contextes actifs
<a name="lambda-active-contexts"></a>

Liste d'objets contenant des informations sur un contexte utilisé par un utilisateur au cours d'une session. Utilisez des contextes pour faciliter et contrôler la reconnaissance des intentions. Pour plus d'informations sur les contextes, consultez[Définition du contexte d'intention pour votre bot Lex V2](context-mgmt-active-context.md). Chaque objet est formaté comme suit :

```
{
    "name": string,
    "contextAttributes": {
        string: string
    },
    "timeToLive": {
        "timeToLiveInSeconds": number,
        "turnsToLive": number
    }
}
```

Les champs sont décrits ci-dessous :
+ **name** — Le nom du contexte.
+ **ContextAttributes** — Objet contenant les noms des attributs du contexte et les valeurs auxquelles ils sont mappés.
+ **timeToLive**— Objet qui indique la durée pendant laquelle le contexte reste actif. Cet objet peut contenir l'un des champs suivants ou les deux :
  + **timeToLiveInSeconds**— Le nombre de secondes pendant lesquelles le contexte reste actif.
  + **turnsToLive**— Le nombre de tours pendant lesquels le contexte reste actif.

### sessionAttributes
<a name="lambda-session-attributes"></a>

Une carte de key/value paires représentant des informations contextuelles spécifiques à la session. Pour de plus amples informations, veuillez consulter [Configuration des attributs de session pour votre bot Lex V2](context-mgmt-session-attribs.md). L'objet est formaté comme suit :

```
{
    string: string,
    ...
}
```

### Conseils d'exécution
<a name="lambda-runtime-hints"></a>

Fournit des indications sur les phrases qu'un client est susceptible d'utiliser pour désigner un emplacement afin d'améliorer la reconnaissance audio. Les valeurs que vous indiquez dans les indices améliorent la reconnaissance audio de ces valeurs par rapport à des mots au son similaire. Le format de l'`runtimeHints`objet est le suivant :

```
{
    "slotHints": {
        intent name: {
            slot name: {
                "runtimeHintValues": [
                    {
                        "phrase": string
                    },
                    ...
                ]
            },
            ...
        },
        ...
    }
}
```

Le `slotHints` champ correspond à un objet dont les champs sont les noms des intentions du bot. Chaque nom d'intention correspond à un objet dont les champs sont les noms des emplacements correspondant à cette intention. Chaque nom d'emplacement correspond à une structure comportant un seul champ`runtimeHintValues`, qui est une liste d'objets. Chaque objet contient un `phrase` champ correspondant à un indice.

### dialogAction
<a name="lambda-dialog-action"></a>

Détermine la prochaine action à exécuter par Amazon Lex V2. Le format de l'objet est le suivant :

```
{
    "slotElicitationStyle": "Default | SpellByLetter | SpellByWord",
    "slotToElicit": string,
    "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot"
}
```

Les champs sont décrits ci-dessous :
+  **slotElicitationStyle**— Détermine la manière dont Amazon Lex V2 interprète l'entrée audio de l'utilisateur si `dialogAction` c'est `ElicitSlot` le `type` cas. Pour de plus amples informations, veuillez consulter [Capture des valeurs des créneaux avec des styles d'orthographe pendant la conversation](spelling-styles.md). Les valeurs suivantes sont possibles :

  `Default`— Amazon Lex V2 interprète l'entrée audio de la manière par défaut pour remplir un créneau.

  `SpellByLetter`— Amazon Lex V2 écoute l'orthographe de la valeur de l'emplacement donnée par l'utilisateur.

  `SpellByWord`— Amazon Lex V2 écoute l'orthographe de la valeur de l'emplacement par l'utilisateur à l'aide de mots associés à chaque lettre (par exemple, « a as in apple »).
+  **slotToElicit**— Définit l'emplacement à obtenir auprès de l'utilisateur si le nom `type` de `dialogAction` est `ElicitSlot` 
+ **type** — Définit l'action que le bot doit exécuter. Les valeurs suivantes sont possibles :

  `Delegate`— Laisse Amazon Lex V2 déterminer l'étape suivante.

  `ElicitIntent`— Invite le client à exprimer son intention.

  `ConfirmIntent`— Confirme les valeurs des créneaux du client et indique si l'intention est prête à être exécutée.

  `ElicitSlot`— Invite le client à fournir une valeur de créneau pour une intention.

  `Close`— Met fin au processus de réalisation des intentions.

### intent
<a name="lambda-sessionstate-intent"></a>

Voir [Intention](#lambda-intent) pour la structure du `intent` champ.

### originatingRequestId
<a name="lambda-originating-request-id"></a>

Identifiant unique pour la demande. Ce champ est facultatif pour la réponse Lambda.