

Avis de fin de support : le 15 septembre 2025, le support pour Amazon Lex V1 AWS sera interrompu. Après le 15 septembre 2025, vous ne pourrez plus accéder à la console Amazon Lex V1 ni aux ressources Amazon Lex V1. Si vous utilisez Amazon Lex V2, consultez plutôt le [guide Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html). 

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.

# Intentions prédéfinies
<a name="howitworks-builtins-intents"></a>

Pour les actions courantes, vous pouvez utiliser la bibliothèque d'intentions intégrée standard. Pour créer une intention à partir d'une intention prédéfinie, choisissez une intention prédéfinie dans la console et attribuez-lui un nouveau nom. La nouvelle intention a la même configuration que l'intention de base, telle que les exemples d'énoncés. 

Dans l'implémentation actuelle, vous ne pouvez pas effectuer les actions suivantes : 
+ Ajouter ou supprimer des exemples d'énoncés dans l'intention de base
+ Configurer les options pour les intentions prédéfinies

**Pour ajouter une intention intégrée à un bot**

1. Connectez-vous à la console Amazon Lex AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. Choisissez le bot auquel ajouter l'intention intégrée.

1. Dans le volet de navigation, choisissez le signe plus (\$1) en regard de **Intents (Intentions)**.

1. Pour **Add intent (Ajouter une intention)**, choisissez **Search existing intents (Rechercher les intentions existantes)**.

1. Dans le champ **Intentions de recherche**, tapez le nom de l'intention intégrée à ajouter à votre bot.

1. Pour **Copier l'intention intégrée**, nommez l'intention, puis choisissez **Ajouter**.

1. Configurez l'intention selon les besoins de votre bot.

**Topics**
+ [AMAZON.CancelIntent](built-in-intent-cancel.md)
+ [AMAZON.FallbackIntent](built-in-intent-fallback.md)
+ [AMAZON.HelpIntent](built-in-intent-help.md)
+ [AMAZON.KendraSearchIntent](built-in-intent-kendra-search.md)
+ [AMAZON.PauseIntent](built-in-intent-pause.md)
+ [AMAZON.RepeatIntent](built-in-intent-repeat.md)
+ [AMAZON.ResumeIntent](built-in-intent-resume.md)
+ [AMAZON.StartOverIntent](built-in-intent-start-over.md)
+ [AMAZON.StopIntent](built-in-intent-stop.md)

**Note**  
Pour la langue anglaise (États-Unis) (en-US), Amazon Lex prend en charge les intentions à partir des intentions intégrées standard d'Alexa. Pour obtenir la liste des intentions prédéfinies, consultez [Intentions prédéfinies standard](https://developer.amazon.com/docs/custom-skills/standard-built-in-intents.html) dans le *kit Alexa Skills*.  
Amazon Lex ne prend pas en charge les objectifs suivants :  
`AMAZON.YesIntent`
`AMAZON.NoIntent` 
Intentions de la [bibliothèque d'intentions prédéfinies](https://developer.amazon.com/docs/custom-skills/built-in-intent-library.html) dans le *kit Alexa Skills*

# AMAZON.CancelIntent
<a name="built-in-intent-cancel"></a>

Répond aux mots et aux phrases qui indiquent que l'utilisateur souhaite annuler l'interaction en cours. Votre application peut utiliser cette intention pour supprimer les valeurs de type d'emplacement et d'autres attributs avant de mettre fin à l'interaction avec l'utilisateur.

Énoncés courants :
+ annuler
+ tant pis
+ oublie ça

# AMAZON.FallbackIntent
<a name="built-in-intent-fallback"></a>

Lorsque la saisie d'une intention par un utilisateur ne correspond pas aux attentes d'un bot, vous pouvez configurer Amazon Lex pour qu'il invoque une *intention de secours*. Par exemple, si la saisie par l'utilisateur « J'aimerais commander des bonbons » ne correspond pas à l'intention de votre `OrderFlowers` bot, Amazon Lex invoque l'intention de remplacement pour gérer la réponse.

Vous ajoutez une intention de secours en ajoutant le type d'intention `AMAZON.FallbackIntent` intégré au bot. Vous pouvez spécifier l'intention à l'aide de l'opération [PutBot](API_PutBot.md) ou en choisissant l'intention dans la liste des intentions intégrées dans la console. 

L'appel d'une intention de secours se fait en deux étapes. Dans la première étape, l'intention de secours est mise en correspondance en fonction de l'entrée de l'utilisateur. Lorsque l'intention de secours est mise en correspondance, le comportement du bot dépend du nombre de nouvelles tentatives configurées pour une invite. Par exemple, si le nombre maximal de tentatives pour déterminer une intention est de 2, le bot renvoie l'invite de clarification du bot deux fois avant d'appeler l'intention de secours.

Amazon Lex répond à l'intention de remplacement dans les situations suivantes : 
+ L'entrée de l'utilisateur pour une intention ne correspond pas à l'entrée attendue par le bot
+ L'entrée audio est du bruit ou l'entrée de texte n'est pas reconnue en tant que mots.
+ La saisie de l'utilisateur est ambiguë et Amazon Lex ne peut pas déterminer l'intention à invoquer.

L'intention de secours est appelée lorsque :
+ Le bot ne reconnaît pas l'entrée utilisateur en tant qu'intention après le nombre de tentatives de clarification configuré lors du démarrage de la conversation.
+ Une intention ne reconnaît pas l'entrée utilisateur comme valeur d'option après le nombre de tentatives configuré.
+ Une intention ne reconnaît pas l'entrée utilisateur comme réponse à une invite de confirmation après le nombre de tentatives configuré.

Vous pouvez utiliser les éléments suivants avec une intention de secours :
+ Une fonction Lambda d'exécution
+ Une déclaration de conclusion
+ Une invite de suivi

Vous ne pouvez pas ajouter les éléments suivants à une intention de secours :
+ Énoncés
+ Emplacements
+ Une fonction Lambda d'initialisation et de validation 
+ Une invite de confirmation

Si vous avez configuré à la fois une déclaration d'annulation et une intention de remplacement pour un bot, Amazon Lex utilise l'intention de remplacement. Si vous avez besoin que votre bot dispose d'une déclaration d'annulation, vous pouvez utiliser la fonction d'exécution pour l'intention de remplacement afin de fournir le même comportement qu'une déclaration d'annulation. Pour plus d'informations, consultez le paramètre `abortStatement` de l'opération [PutBot](API_PutBot.md).

## Utilisation des invites de clarification
<a name="fallback-clarification"></a>

Si vous fournissez une invite de clarification au bot, l'invite est utilisée pour demander une intention valide auprès de l'utilisateur. L'invite de clarification est répétée le nombre de fois que vous avez configuré. Ensuite, l'intention de secours est appelée.

Si vous ne définissez pas de demande de clarification lorsque vous créez un bot et que l'utilisateur n'entame pas la conversation avec une intention valable, Amazon Lex indique immédiatement votre intention de secours. 

Lorsque vous utilisez une intention de secours sans demander de précisions, Amazon Lex n'appelle pas la solution de secours dans les circonstances suivantes :
+ Lorsque l'utilisateur répond à une invite de suivi, mais qu'il ne fournit pas une intention. Par exemple, en réponse à une demande de suivi indiquant « Voulez-vous autre chose aujourd'hui ? » , l'utilisateur répond « Oui ». Amazon Lex renvoie une exception 400 Bad Request car aucune demande de clarification ne doit être envoyée à l'utilisateur pour obtenir une intention.
+ Lorsque vous utilisez une AWS Lambda fonction, vous renvoyez un type de `ElicitIntent` dialogue. Amazon Lex n'étant pas invité à clarifier l'intention de l'utilisateur, il renvoie une exception 400 Bad Request.
+ Lorsque vous utilisez l'opération `PutSession`, vous envoyez un type de dialogue `ElicitIntent`. Amazon Lex n'étant pas invité à clarifier l'intention de l'utilisateur, il renvoie une exception 400 Bad Request.

## Utilisation d'une fonction Lambda avec une intention de repli
<a name="invoke-fallback"></a>

Lorsqu'une intention de secours est appelée, la réponse dépend de la valeur du paramètre `fulfillmentActivity` définie sur l'opération [PutIntent](API_PutIntent.md). Le bot effectue l'une des opérations suivantes :
+ Il renvoie les informations d'intention à l'application cliente.
+ Appelle la fonction Lambda d'exécution. Il appelle la fonction avec les variables de session définies pour la session.

Pour plus d'informations sur la définition de la réponse lorsqu'une intention de secours est appelée, consultez le paramètre `fulfillmentActivity` de l'opération [PutIntent](API_PutIntent.md). 

Si vous utilisez la fonction Lambda d'exécution dans le cadre de votre intention de secours, vous pouvez utiliser cette fonction pour appeler une autre intention ou pour établir une forme de communication avec l'utilisateur, telle que la collecte d'un numéro de rappel ou l'ouverture d'une session avec un représentant du service client.

Vous pouvez effectuer n'importe quelle action dans une fonction Lambda d'intention de secours que vous pouvez effectuer dans la fonction d'exécution pour toute autre intention. Pour plus d'informations sur la création d'une fonction d'expédition à AWS Lambda l'aide de[Utilisation des fonctions Lambda](using-lambda.md).

Une intention de secours peut être appelée plusieurs fois dans la même session. Supposons, par exemple, que votre fonction Lambda utilise l'action `ElicitIntent` de dialogue pour demander à l'utilisateur une intention différente. Si Amazon Lex ne parvient pas à déduire l'intention de l'utilisateur après le nombre d'essais configuré, il invoque à nouveau l'intention de secours. Il appelle également l'intention de secours lorsque l'utilisateur ne répond pas avec une valeur d'option valide après le nombre de tentatives configuré.

Vous pouvez configurer une fonction Lambda pour suivre le nombre de fois que l'intention de secours est appelée à l'aide d'une variable de session. Votre fonction Lambda peut effectuer une action différente si elle est appelée plus de fois que le seuil que vous avez défini dans votre fonction Lambda. Pour plus d'informations sur les variables de session, consultez [Définition des attributs de session](context-mgmt-session-attribs.md).

# AMAZON.HelpIntent
<a name="built-in-intent-help"></a>

Répond aux mots ou expressions qui indiquent que l'utilisateur a besoin d'aide lorsqu'il interagit avec votre bot. Lorsque cette intention est invoquée, vous pouvez configurer votre fonction ou application Lambda pour fournir des informations sur les capacités de votre bot, poser des questions complémentaires sur les domaines d'aide ou confier l'interaction à un agent humain. 

Énoncés courants :
+ help
+ aidez-moi
+ peux-tu m'aider

# AMAZON.KendraSearchIntent
<a name="built-in-intent-kendra-search"></a>

Pour rechercher des documents que vous avez indexés avec Amazon Kendra, utilisez l'`AMAZON.KendraSearchIntent`intention. Lorsqu'Amazon Lex ne parvient pas à déterminer l'action suivante dans une conversation avec l'utilisateur, cela déclenche l'intention de recherche.

`AMAZON.KendraSearchIntent`Il est disponible uniquement dans la région anglaise (États-Unis) (en-États-Unis) et dans les régions USA Est (Virginie du Nord), USA Ouest (Oregon) et Europe (Irlande).

Amazon Kendra est un service de machine-learning-based recherche qui indexe les documents en langage naturel tels que les documents PDF ou les fichiers Microsoft Word. Il peut effectuer des recherches sur des documents indexés et renvoyer les types de réponse suivants à une question :
+ Une réponse 
+ Une entrée de FAQ qui pourrait répondre à la question
+ Un document lié à la question

Pour obtenir un exemple d'utilisation de `AMAZON.KendraSearchIntent`, veuillez consulter [Exemple : création d'un bot FAQ pour un index Amazon Kendra](faq-bot-kendra-search.md).

Si vous configurez une `AMAZON.KendraSearchIntent` intention pour votre bot, Amazon Lex appelle l'intention chaque fois qu'il ne parvient pas à déterminer l'énoncé de l'utilisateur pour un emplacement ou une intention. Par exemple, si votre bot obtient une réponse pour un type de machine à sous appelé « garniture à pizza » et que l'utilisateur demande « Qu'est-ce qu'une pizza ? », Amazon Lex les appelle `AMAZON.KendraSearchIntent` pour répondre à la question. En l'absence de réponse de la part d'Amazon Kendra, la conversation se poursuit telle que configurée dans le bot.

Lorsque vous utilisez à la fois le `AMAZON.KendraSearchIntent` et le `AMAZON.FallbackIntent` dans le même bot, Amazon Lex utilise les intentions suivantes :

1. Amazon Lex appelle le`AMAZON.KendraSearchIntent`. L'objectif est l'opération Amazon Kendra`Query`.

1. Si Amazon Kendra renvoie une réponse, Amazon Lex affiche le résultat à l'utilisateur.

1. En l'absence de réponse de la part d'Amazon Kendra, Amazon Lex réinvite l'utilisateur. L'action suivante dépend de la réponse de l'utilisateur.
   + Si la réponse de l'utilisateur contient un énoncé reconnu par Amazon Lex, tel que le remplissage d'une valeur de créneau ou la confirmation d'une intention, la conversation avec l'utilisateur se poursuit comme configuré pour le bot.
   + Si la réponse de l'utilisateur ne contient aucun énoncé reconnu par Amazon Lex, Amazon Lex lance un autre appel à l'`Query`opération.

1. S'il n'y a aucune réponse après le nombre de tentatives configuré, Amazon Lex appelle l'utilisateur `AMAZON.FallbackIntent` et met fin à la conversation avec l'utilisateur.

Vous pouvez utiliser le pour envoyer une demande `AMAZON.KendraSearchIntent` à Amazon Kendra de trois manières :
+ Laissez l'intention de recherche faire la demande pour vous. Amazon Lex appelle Amazon Kendra en utilisant l'énoncé de l'utilisateur comme chaîne de recherche. Lorsque vous créez l'intention, vous pouvez définir une chaîne de filtre de requête qui limite le nombre de réponses renvoyées par Amazon Kendra. Amazon Lex utilise le filtre dans la demande de requête.
+ Ajoutez des paramètres de requête supplémentaires à la demande pour affiner les résultats de recherche à l'aide de la fonction Lambda de votre boîte de dialogue. Vous ajoutez un `kendraQueryFilterString` champ contenant les paramètres de requête Amazon Kendra à l'action de `delegate` dialogue. Lorsque vous ajoutez des paramètres de requête à la demande avec la fonction Lambda, ils ont priorité sur le filtre de requête que vous avez défini lors de la création de l'intention.
+ Créez une nouvelle requête à l'aide de la fonction Lambda de dialogue. Vous pouvez créer une demande de requête Amazon Kendra complète envoyée par Amazon Lex. Vous spécifiez la requête dans le champ `kendraQueryRequestPayload` de l’action de dialogue `delegate`. Le champ `kendraQueryRequestPayload` a priorité sur le champ `kendraQueryFilterString`.

Pour spécifier le `queryFilterString` paramètre lorsque vous créez un bot, ou pour spécifier le `kendraQueryFilterString` champ lorsque vous appelez l'`delegate`action dans une fonction Lambda de dialogue, vous devez spécifier une chaîne qui est utilisée comme filtre d'attribut pour la requête Amazon Kendra. Si la chaîne n'est pas un filtre d'attribut valide, vous obtiendrez une exception `InvalidBotConfigException` lors de l'exécution. Pour plus d'informations sur les filtres d'attributs, consultez la section [Utilisation des attributs de document pour filtrer les requêtes](https://docs.aws.amazon.com/kendra/latest/dg/filtering.html#search-filtering) dans le manuel *Amazon Kendra Developer Guide*.

Pour contrôler la requête qu'Amazon Lex envoie à Amazon Kendra, vous pouvez spécifier une requête dans le `kendraQueryRequestPayload` champ de votre fonction Lambda de dialogue. Si la requête n'est pas valide, Amazon Lex renvoie une `InvalidLambdaResponseException` exception. Pour plus d'informations, consultez l'[opération de requête](https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html) dans le manuel *Amazon Kendra Developer Guide*.

Pour obtenir un exemple de la façon d'utiliser l’intention `AMAZON.KendraSearchIntent`, veuillez consulter [Exemple : création d'un bot FAQ pour un index Amazon Kendra](faq-bot-kendra-search.md).

## Politique IAM pour Amazon Kendra Search
<a name="kendra-search-iam"></a>

Pour utiliser l'`AMAZON.KendraSearchIntent`intention, vous devez utiliser un rôle qui fournit des politiques Gestion des identités et des accès AWS (IAM) permettant à Amazon Lex d'assumer un rôle d'exécution autorisé à appeler l'intention Amazon `Query` Kendra. Les paramètres IAM que vous utilisez varient selon que vous les avez créés à l'`AMAZON.KendraSearchIntent`aide de la console Amazon Lex, d'un SDK AWS ou du AWS Command Line Interface ()AWS CLI. Lorsque vous utilisez la console, vous pouvez choisir entre ajouter l'autorisation d'appeler Amazon Kendra au rôle lié au service Amazon Lex ou utiliser un rôle spécifique pour appeler l'opération Amazon Kendra. `Query` Lorsque vous utilisez le AWS CLI ou un SDK pour créer l'intention, vous devez utiliser un rôle spécifique pour appeler l'`Query`opération.

### Attachement d’autorisations
<a name="kendra-iam-attach"></a>

Vous pouvez utiliser la console pour associer des autorisations d'accès à l'`Query`opération Amazon Kendra au rôle lié au service Amazon Lex par défaut. Lorsque vous associez des autorisations au rôle lié au service, vous n'avez pas besoin de créer et de gérer un rôle d'exécution spécifiquement pour vous connecter à l'index Amazon Kendra.

L'utilisateur, le rôle ou le groupe que vous utilisez pour accéder à la console Amazon Lex doit disposer des autorisations nécessaires pour gérer les politiques relatives aux rôles. Associez la politique IAM suivante au rôle d'accès à la console. Lorsque vous accordez ces autorisations, le rôle dispose des autorisations permettant de modifier la stratégie de rôle liée à un service existante. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:PutRolePolicy",
                "iam:GetRolePolicy"
            ],
            "Resource": "arn:aws:iam::*:role/aws-service-role/lex.amazonaws.com/AWSServiceRoleForLexBots"
        },
        {
            "Effect": "Allow",
            "Action": "iam:ListRoles",
            "Resource": "*"
        }
    ]
}
```

------

### Spécification d'un rôle
<a name="kendra-iam-role"></a>

Vous pouvez utiliser la console AWS CLI, le ou l'API pour spécifier un rôle d'exécution à utiliser lors de l'appel de l'opération Amazon Kendra`Query`. 

L'utilisateur, le rôle ou le groupe que vous utilisez pour spécifier le rôle d'exécution doit disposer de l'`iam:PassRole`autorisation. La stratégie suivante définit l'autorisation. Vous pouvez utiliser les clés de contexte de condition `iam:AssociatedResourceArn` et `iam:PassedToService` pour limiter davantage la portée des autorisations. Pour plus d'informations, consultez les sections [IAM et AWS STS Condition Context Keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html) dans le *guide de l'Gestion des identités et des accès AWS utilisateur*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/role"
        }
    ]
}
```

------

Le rôle d'exécution qu'Amazon Lex doit utiliser pour appeler Amazon Kendra doit disposer des `kendra:Query` autorisations requises. Lorsque vous utilisez un rôle IAM existant pour obtenir l'autorisation d'appeler l'opération Amazon `Query` Kendra, le rôle doit être associé à la politique suivante.

Vous pouvez utiliser la console IAM, l'API IAM ou le AWS CLI pour créer une politique et l'associer à un rôle. Ces instructions utilisent l’AWS CLI pour créer le rôle et les stratégies.

**Note**  
Le code suivant est formaté pour Linux et macOS. Sous Windows, remplacez le caractère de continuité de ligne Linux (\$1) par le caret (^).

**Pour ajouter une autorisation d'opération Query à un rôle**

1. Créez un document appelé **KendraQueryPolicy.json** dans le répertoire courant, ajoutez-y le code suivant et enregistrez-le.

1. Dans le AWS CLI, exécutez la commande suivante pour créer la politique IAM permettant d'exécuter l'opération Amazon `Query` Kendra.

   ```
   aws iam create-policy \
       --policy-name query-policy-name \
       --policy-document file://KendraQueryPolicy.json
   ```

1. Attachez la politique au rôle IAM que vous utilisez pour appeler l'`Query`opération.

   ```
   aws iam attach-role-policy \
       --policy-arn arn:aws:iam::account-id:policy/query-policy-name
       --role-name role-name
   ```

Vous pouvez choisir de mettre à jour le rôle lié au service Amazon Lex ou d'utiliser un rôle que vous avez créé lors de la création du rôle `AMAZON.KendraSearchIntent` pour votre bot. La procédure suivante indique comment choisir le rôle IAM à utiliser.

**Pour spécifier le rôle d'exécution pour AMAZON. KendraSearchIntent**

1. Connectez-vous à la console Amazon Lex AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. Choisissez le bot auquel vous souhaitez ajouter l’intention `AMAZON.KendraSearchIntent`.

1. Choisissez le signe plus (\$1) en regarde de **Intents (Intentions)**.

1. Dans **Add intent (Ajouter une intention)**, choisissez **Search existing intents (Rechercher des intentions existantes)**.

1. Dans **Search intents (Rechercher des intentions)**, entrez, **AMAZON.KendraSearchIntent** puis choisissez **Add (Ajouter)**.

1. Dans **Copy built-in intent (Copier une intention intégrée)**, entrez un nom pour l'intention, par exemple **KendraSearchIntent**, puis choisissez **Add (Ajouter)**.

1. Ouvrez la section **Amazon Kendra query (Requête Amazon Kendra)**.

1. Pour **IAM role (Rôle IAM)** choisissez une des options suivantes :
   + Pour mettre à jour le rôle lié au service Amazon Lex afin de permettre à votre bot d'interroger les index Amazon Kendra, choisissez Ajouter des autorisations **Amazon** Kendra.
   + Pour utiliser un rôle autorisé à appeler l'`Query`opération Amazon Kendra, choisissez **Utiliser un rôle existant**.

## Utilisation des attributs de demande et de session en tant que filtres
<a name="kendra-search-filter"></a>

Pour filtrer la réponse d'Amazon Kendra aux éléments liés à la conversation en cours, utilisez les attributs de session et de demande comme filtres en ajoutant le `queryFilterString` paramètre lorsque vous créez votre bot. Vous spécifiez un espace réservé pour l'attribut lorsque vous créez l'intention, puis Amazon Lex V2 remplace une valeur avant d'appeler Amazon Kendra. Pour de plus amples informations sur les attributs de demande, veuillez consulter [Définition des attributs de demandes](context-mgmt-request-attribs.md). Pour en savoir plus sur les attributs de session, consultez [Définition des attributs de session](context-mgmt-session-attribs.md).

Voici un exemple de `queryFilterString` paramètre qui utilise une chaîne pour filtrer la requête Amazon Kendra.

```
"{"equalsTo": {"key": "City", "value": {"stringValue": "Seattle"}}}"
```

Voici un exemple de `queryFilterString` paramètre qui utilise un attribut de session appelé `"SourceURI"` pour filtrer la requête Amazon Kendra.

```
"{"equalsTo": {"key": "SourceURI","value": {"stringValue": "[FileURL]"}}}"
```

Voici un exemple de `queryFilterString` paramètre qui utilise un attribut de requête appelé `"DepartmentName"` pour filtrer la requête Amazon Kendra.

```
"{"equalsTo": {"key": "Department","value": {"stringValue": "((DepartmentName))"}}}"
```

Les `AMAZON.KendraSearchInteng` filtres utilisent le même format que les filtres de recherche Amazon Kendra. Pour plus d'informations, consultez la section [Utilisation des attributs de document pour filtrer les résultats de recherche](https://docs.aws.amazon.com/kendra/latest/dg/filtering.html#search-filtering) dans le *guide du développeur Amazon Kendra*.

La chaîne de filtre de requête utilisée avec le `AMAZON.KendraSearchIntent` doit utiliser des lettres minuscules pour la première lettre de chaque filtre. Par exemple, le filtre de requête suivant est valide pour`AMAZON.KendraSearchIntent`.

```
{
    "andAllFilters": [
        {
            "equalsTo": {
                "key": "City",
                "value": {
                    "stringValue": "Seattle"
                }
            }
        },
        {
            "equalsTo": {
                "key": "State",
                "value": {
                    "stringValue": "Washington"
                }
            }
        }
    ]
}
```

## Utilisation de la réponse de recherche
<a name="kendra-search-response"></a>

Amazon Kendra renvoie la réponse à une recherche dans la déclaration d'`conclusion`intention. L'intention doit comporter une `conclusion` déclaration, sauf si une fonction Lambda d'exécution produit un message de conclusion.

Amazon Kendra propose quatre types de réponses. 
+ `x-amz-lex:kendra-search-response-question_answer-question-<N>`— La question d'une FAQ qui correspond à la recherche.
+ `x-amz-lex:kendra-search-response-question_answer-answer-<N>`— La réponse d'une FAQ correspondant à la recherche.
+ `x-amz-lex:kendra-search-response-document-<N>`— Extrait d'un document de l'index lié au texte de l'énoncé.
+ `x-amz-lex:kendra-search-response-document-link-<N>`— L'URL d'un document dans l'index qui est lié au texte de l'énoncé.
+ `x-amz-lex:kendra-search-response-answer-<N>`— Extrait d'un document de l'index qui répond à la question.

Les réponses sont renvoyées dans les attributs `request`. Il peut y avoir jusqu'à cinq réponses pour chaque attribut, numérotées de 1 à 5. Pour plus d'informations sur les réponses, consultez la section [Types de réponses](https://docs.aws.amazon.com/kendra/latest/dg/response-types.html) dans le manuel *Amazon Kendra Developer Guide*. 

L'instruction `conclusion` doit comporter un ou plusieurs groupes de messages. Chaque groupe de messages contient un ou plusieurs messages. Chaque message peut contenir une ou plusieurs variables d'espace réservé qui sont remplacées par des attributs de demande dans la réponse d'Amazon Kendra. Il doit y avoir au moins un message du groupe de messages dans lequel toutes les variables du message sont remplacées par des valeurs d'attribut de demande dans la réponse d'exécution, ou il doit y avoir un message du groupe de messages sans aucune variable d'espace réservé. Les attributs de demande sont définis avec des parenthèses doubles ("((" "))"). Les messages du groupe de messages suivants correspondent à toutes les réponses d'Amazon Kendra :
+ « J'ai trouvé une question FAQ pour vous : ((x-amz-lex: kendra-search-response-question \$1answer-question-1)), et la réponse est ((x-amz-lex: \$1answer-answer-1)) » kendra-search-response-question
+ « J'ai trouvé un extrait d'un document utile : ((x-amz-lex: kendra-search-response-document -1)) »
+ « Je pense que la réponse à vos questions est ((x-amz-lex: kendra-search-response-answer -1)) »

## Utilisation d'une fonction Lambda pour gérer la demande et la réponse
<a name="kendra-search-lambda"></a>

L'`AMAZON.KendraSearchIntent`intention peut utiliser votre crochet de code de dialogue et votre crochet de code d'expédition pour gérer la demande adressée à Amazon Kendra et la réponse. Utilisez la fonction Lambda du crochet de code de dialogue lorsque vous souhaitez modifier la requête que vous envoyez à Amazon Kendra, et la fonction Lambda du crochet de code d'expédition lorsque vous souhaitez modifier la réponse.

### Création d'une requête avec le hook de code de dialogue
<a name="kendra-search-lambda-dialog"></a>

Vous pouvez utiliser le code hook de dialogue pour créer une requête à envoyer à Amazon Kendra. L'utilisation du hook de code de dialogue est facultative. Si vous ne spécifiez pas de crochet de dialogue, Amazon Lex crée une requête à partir de l'énoncé de l'utilisateur et utilise `queryFilterString` celui que vous avez fourni lors de la configuration de l'intention, si vous en avez fourni un.

Vous pouvez utiliser deux champs dans la réponse au crochet de code de la boîte de dialogue pour modifier la demande adressée à Amazon Kendra :
+ `kendraQueryFilterString`— Utilisez cette chaîne pour spécifier les filtres d'attributs pour la demande Amazon Kendra. Vous pouvez filtrer la requête à l'aide de l'un des champs d'index définis dans votre index. Pour connaître la structure de la chaîne de filtre, consultez la section [Utilisation des attributs de document pour filtrer les requêtes](https://docs.aws.amazon.com/kendra/latest/dg/filtering.html#search-filtering) dans le manuel *Amazon Kendra Developer Guide*. Si la chaîne de filtre spécifiée n'est pas valide, vous obtiendrez une exception `InvalidLambdaResponseException`. La chaîne `kendraQueryFilterString` remplace toute chaîne de requête spécifiée dans `queryFilterString` configuré pour l'intention.
+ `kendraQueryRequestPayload`— Utilisez cette chaîne pour spécifier une requête Amazon Kendra. Votre requête peut utiliser n'importe laquelle des fonctionnalités d'Amazon Kendra. Si vous ne spécifiez pas de requête valide, vous obtenez une exception `InvalidLambdaResponseException`. Pour plus d'informations, consultez la section [Requête](https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html) dans le *guide du développeur Amazon Kendra*.

Après avoir créé le filtre ou la chaîne de requête, vous envoyez la réponse à Amazon Lex avec le `dialogAction` champ de réponse défini sur`delegate`. Amazon Lex envoie la requête à Amazon Kendra, puis renvoie la réponse à la requête au hook du code d'expédition.

### Utilisation du hook de code d'exécution pour la réponse
<a name="kendra-search-lambda-fulfillment"></a>

Une fois qu'Amazon Lex a envoyé une requête à Amazon Kendra, la réponse à la requête est renvoyée à la fonction `AMAZON.KendraSearchIntent` Lambda d'expédition. L'événement d'entrée dans le code hook contient la réponse complète d'Amazon Kendra. Les données de requête ont la même structure que celles renvoyées par l'opération Amazon Kendra`Query`. Pour plus d'informations, consultez la section [Syntaxe des réponses aux requêtes](https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html#API_Query_ResponseSyntax) dans le manuel *Amazon Kendra Developer Guide*.

Le hook de code d'exécution est facultatif. S'il n'en existe pas, ou si le crochet de code ne renvoie aucun message dans la réponse, Amazon Lex utilise l'`conclusion`instruction pour les réponses.

# Exemple : création d'un bot FAQ pour un index Amazon Kendra
<a name="faq-bot-kendra-search"></a>

Cet exemple crée un bot Amazon Lex qui utilise un index Amazon Kendra pour fournir des réponses aux questions des utilisateurs. Le bot FAQ gère le dialogue pour l'utilisateur. Il utilise l'intention `AMAZON.KendraSearchIntent` pour interroger l'index et présenter la réponse à l'utilisateur. Pour créer le bot, vous : 

1. Créez un bot avec lequel vos clients interagiront pour obtenir des réponses.

1. Créez une intention personnalisée. Votre bot nécessite au moins une intention avec au moins un énoncé. Cette intention permet à votre bot de construire, mais n'est pas utilisée par ailleurs.

1. Ajoutez l'`KendraSearchIntent`intention à votre bot et configurez-le pour qu'il fonctionne avec votre index Amazon Kendra.

1. Testez le bot en posant des questions auxquelles répondent des documents stockés dans votre index Amazon Kendra.

Avant de pouvoir utiliser cet exemple, vous devez créer un index Amazon Kendra. Pour plus d'informations, consultez [Getting started with an S3 bucket (console)](https://docs.aws.amazon.com/kendra/latest/dg/gs-console.html) dans le manuel *Amazon Kendra Developer Guide*.

**Pour créer un bot FAQ**

1. Connectez-vous à la console Amazon Lex AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. Dans le volet de navigation, sélectionnez **Bots**. 

1. Choisissez **Créer**.

1. Choisissez **Custom bot (robot personnalisé)**. Configurez le bot comme suit :
   + **Nom du bot** — Donnez au bot un nom indiquant son objectif, tel que**KendraTestBot**.
   + **Sortie vocale** : choisissez **Aucune**.
   + **Expiration de session** — Entrez**5**.
   + **Analyse des sentiments** — Choisissez **Non**.
   + **COPPA** — Choisissez **Non**.
   + **Stockage des énoncés de l'utilisateur** — Choisissez **Ne pas enregistrer**.

1. Choisissez **Créer**.

Pour construire un bot, vous devez créer au moins une intention avec au moins un exemple d'énoncé. Cette intention est requise pour créer votre bot Amazon Lex, mais elle n'est pas utilisée pour la réponse aux questions fréquentes. L'énoncé de l'intention ne doit s'appliquer à aucune des questions posées par votre client.

**Pour créer l'intention requise**

1. Sur la page **Getting started with your bot (Démarrer avec votre bot)** choisissez **Create intent (Créer une intention)**.

1. Pour **Add intent (Ajouter une intention)**, choisissez **Create intent (Créer une intention)**.

1. Dans la boîte de dialogue **Create intent (Créer une intention)**, attribuez un nom à l'intention, par exemple **RequiredIntent**.

1. Pour **Sample utterances (Exemples d'énoncé)**, tapez un énoncé, par exemple **Required utterance**.

1. Choisissez **Save intent (Enregistrer l'intention)**.

À présent, créez l'intention de rechercher un index Amazon Kendra et les messages de réponse qu'il doit renvoyer.

**Pour créer un AMAZON. KendraSearchIntent message d'intention et de réponse**

1. Dans le volet de navigation, choisissez le signe plus (\$1) en regard de **Intents (Intentions)**.

1. Pour **Add intent (Ajouter une intention)**, choisissez **Search existing intents (Rechercher les intentions existantes)**.

1. Dans le champ **Intentions de recherche**, saisissez-le**AMAZON.KendraSearchIntent**, puis sélectionnez-le dans la liste.

1. Pour **Copy built-in intent (Copier une intention intégrée)**, donnez un nom à l'intention (par exemple, **KendraSearchIntent**) et choisissez **Add (Ajouter)**. 

1. Dans l'éditeur d'intention, choisissez **Amazon Kendra query (Requête Amazon Kendra)** pour ouvrir les options de requête.

1. Dans le menu **Amazon Kendra index (Index Amazon Kendra)** choisissez l'index que vous souhaitez rechercher.

1. Dans la section **Response (Réponse)** ajoutez les trois messages suivants :

   ```
   I found a FAQ question for you: ((x-amz-lex:kendra-search-response-question_answer-question-1)) and the answer is ((x-amz-lex:kendra-search-response-question_answer-answer-1)).
   I found an excerpt from a helpful document: ((x-amz-lex:kendra-search-response-document-1)).
   I think the answer to your questions is ((x-amz-lex:kendra-search-response-answer-1)).
   ```

1. Choisissez **Save intent (Enregistrer l'intention)**, puis **Build (Créer)** pour créer le bot.

Enfin, utilisez la fenêtre de test de la console pour tester les réponses de votre bot. Vos questions doivent porter sur le domaine pris en charge par votre index.

**Pour tester votre bot FAQ**

1. Dans la fenêtre de test de la console, tapez une question pour votre index.

1. Vérifiez la réponse dans la section de réponse de la fenêtre de test.

1. Pour réinitialiser la fenêtre de test avant une autre question, choisissez **Clear chat history (Effacer l'historique des discussions)**.

# AMAZON.PauseIntent
<a name="built-in-intent-pause"></a>

Répond aux mots et aux phrases qui permettent à l'utilisateur de suspendre une interaction avec un bot afin de pouvoir y revenir plus tard. Votre fonction ou application Lambda doit enregistrer les données d'intention dans des variables de session, ou vous devez utiliser l'[GetSession](API_runtime_GetSession.md)opération pour récupérer les données d'intention lorsque vous reprenez l'intention actuelle.

Énoncés courants :
+ suspension
+ mettez ça en pause

# AMAZON.RepeatIntent
<a name="built-in-intent-repeat"></a>

Répond aux mots et aux phrases qui permettent à l'utilisateur de répéter le message précédent. Votre application doit utiliser une fonction Lambda pour enregistrer les informations d'intention précédentes dans des variables de session, ou vous devez utiliser l'[GetSession](API_runtime_GetSession.md)opération pour obtenir les informations d'intention précédentes.

Énoncés courants :
+ répéter
+ redis-le
+ Répète ça

# AMAZON.ResumeIntent
<a name="built-in-intent-resume"></a>

Répond aux mots et aux phrases qui permettent à l'utilisateur de reprendre une intention précédemment interrompue. Votre fonction ou application Lambda doit gérer les informations requises pour reprendre l'intention précédente.

Énoncés courants :
+ cv
+ continuer
+ continuez

# AMAZON.StartOverIntent
<a name="built-in-intent-start-over"></a>

Répond aux mots et aux phrases qui permettent à l'utilisateur d'arrêter de traiter l'intention actuelle et de recommencer depuis le début. Vous pouvez utiliser votre fonction Lambda ou l'`PutSession`opération pour obtenir à nouveau la première valeur d'emplacement.

Énoncés courants :
+ recommencer
+ redémarrer
+ recommencer

# AMAZON.StopIntent
<a name="built-in-intent-stop"></a>

Répond aux mots et aux phrases qui indiquent que l'utilisateur souhaite arrêter de traiter l'intention actuelle et mettre fin à l'interaction avec un bot. Votre fonction ou application Lambda doit effacer tous les attributs et valeurs de type d'emplacement existants, puis mettre fin à l'interaction.

Énoncés courants :
+ stop
+ off
+ tais-toi