

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.

# Utilisation en AppInstanceBots tant qu'agents de canaux intelligents pour la messagerie du SDK Amazon Chime
<a name="appinstance-bots"></a>

Vous pouvez les utiliser `AppInstanceBots` en tant qu'agents de canaux intelligents. Les agents reconnaissent les phrases clés envoyées `ChannelMessages` par les membres de la chaîne. Le modèle de compréhension du langage naturel du bot résout les messages. Cela permet à un ou plusieurs membres de la chaîne d'engager un dialogue en langage naturel défini par le modèle du bot. Vous fournissez les robots, ce qui vous permet de contrôler la profondeur du dialogue et de l'intégration avec les systèmes de votre entreprise.

**Conditions préalables**
+ Connaissance des fonctionnalités de base du SDK Amazon Chime, telles que la création`AppInstanceUsers`, la gestion des chaînes et l'envoi et la réception de messages.
+ Possibilité d'invoquer la messagerie du SDK Amazon Chime. APIs
+ Connaissance des fonctionnalités de base d'Amazon Lex V2, telles que la création d'un bot Amazon Lex V2, la modélisation des intentions et des emplacements, la création de versions de bot, d'alias, l'utilisation de l'état de session et l'intégration du hook Lambda.

**Important**  
L'utilisation d'Amazon Lex V2 est soumise aux [conditions de service AWS](https://aws.amazon.com/service-terms/), y compris les conditions spécifiques aux services AWS Machine Learning et Artificial Intelligence.

**Topics**
+ [Création d'un bot Amazon Lex V2 pour la messagerie du SDK Amazon Chime](create-lex-bot.md)
+ [Configuration de AppInstance robots pour la messagerie du SDK Amazon Chime](appinstance-bot-setup.md)
+ [Création d'un abonnement à une chaîne AppInstanceBot pour une messagerie du SDK Amazon Chime](channel-membership.md)
+ [Envoi de messages vers et AppInstanceBot pour la messagerie du SDK Amazon Chime](message-appinstancebot.md)
+ [Traitement des messages d'Amazon Lex pour la messagerie du SDK Amazon Chime](process-from-lexv2.md)
+ [Traitement des réponses depuis et AppInstanceBot pour la messagerie du SDK Amazon Chime](process-response.md)
+ [Utilisation de règles pour envoyer des événements à Amazon EventBridge pour la messagerie du SDK Amazon Chime](event-bridge-alerts.md)
+ [Résolution des problèmes AppInstanceBots configurés avec les robots Amazon Lex V2 pour la messagerie du SDK Amazon Chime](troubleshoot-lex-bots.md)

# Création d'un bot Amazon Lex V2 pour la messagerie du SDK Amazon Chime
<a name="create-lex-bot"></a>

Pour utiliser AppInstance des robots comme agents, vous devez d'abord créer un bot Amazon Lex V2 afin de gérer l'interaction du dialogue dans le cadre d'un scénario d'agent intelligent. Pour commencer à créer un bot Amazon Lex V2, consultez [Getting Started with Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/getting-started.html) dans le *guide du développeur Amazon Lex V2*. Pour plus d'informations sur la migration d'un bot Amazon Lex V1 vers Amazon Lex V2, consultez le [guide de migration d'Amazon Lex V1 vers V2](https://docs.aws.amazon.com/lexv2/latest/dg/migration.html).

**Topics**
+ [Conditions préalables](#lex-prereqs)
+ [Octroi d'autorisations d'invocation](#invocation-perms)
+ [Création d'une intention de bienvenue pour la messagerie du SDK Amazon Chime](welcome-intent.md)
+ [Création de versions de bot Amazon Lex V2 pour la messagerie du SDK Amazon Chime](lex-versions.md)
+ [Création d'alias de bot Amazon Lex V2 pour la messagerie du SDK Amazon Chime](lex-aliases.md)

## Conditions préalables
<a name="lex-prereqs"></a>

Votre bot Amazon Lex V2 doit répondre aux exigences suivantes.
+ Vous devez créer le bot dans une AWS région qui prend en charge les points de terminaison d'exécution Amazon Lex V2.
+ Vous devez créer le bot dans le même AWS compte et dans la même région que le bot `AppInstance` et`AppInstanceBot`.
+ Le bot doit accorder des autorisations d'invocation via une politique basée sur les ressources au principal du `messaging.chime.amazonaws.com` service.
+ Le bot peut modéliser une intention de bienvenue. Cela permet `AppInstanceBot` de s'annoncer et de faire connaître ses capacités lors de l'adhésion à une chaîne.
+ Le bot doit avoir une version de production et des alias afin de configurer le`AppInstanceBot`.
+ Le bot doit utiliser une langue et des paramètres régionaux compatibles. Pour plus d'informations sur les langues et les paramètres régionaux, consultez la section [Langues et paramètres régionaux pris en charge dans Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html) dans le *manuel du développeur Amazon Lex V2*.

## Octroi d'autorisations d'invocation
<a name="invocation-perms"></a>

`AppInstanceBot`Pour pouvoir invoquer un bot Amazon Lex V2, le responsable du service de messagerie Amazon Chime SDK doit être autorisé à appeler la ressource Amazon Lex Bot. Pour plus d'informations sur les autorisations liées aux politiques basées sur les ressources Amazon Lex V2, consultez les exemples de [politiques basées sur les ressources pour Amazon Lex V2 dans le manuel du développeur *Amazon Lex* V2](https://docs.aws.amazon.com/lexv2/latest/dg/security_iam_resource-based-policy-examples.html).

L'exemple suivant montre une politique basée sur les ressources.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "messaging.chime.amazonaws.com"
      },
      "Action": [
        "lex:PutSession",
        "lex:DeleteSession",
        "lex:RecognizeText"
      ],
      "Resource": "arn:aws:lex:us-east-1:111122223333:bot-alias/lex-bot-id/lex-bot-alias-id",
      "Condition": {
        "StringEquals": {
        "AWS:SourceAccount": "111122223333"
        },
        "ArnEquals": {
        "AWS:SourceArn": "arn:aws:chime:us-east-1:111122223333:app-instance/app-instance-id/bot/app-instance-bot-id"
        }
      }
    }
  ]
}
```

------

**Note**  
Pour autoriser une personne `AppInstanceBot` à invoquer un bot Amazon Lex V2, utilisez AppInstanceBot l'ID. Pour permettre à tous `AppInstanceBots` les utilisateurs `AppInstance` d'invoquer un bot Amazon Lex V2, utilisez un caractère générique. Par exemple :  
`arn:aws:chime:region:aws-account-id:app-instance/app-instance-id/bot/*`

# Création d'une intention de bienvenue pour la messagerie du SDK Amazon Chime
<a name="welcome-intent"></a>

Si vous ajoutez une intention de bienvenue facultative à votre modèle de bot Amazon Lex V2, vous `AppInstanceBot` pouvez annoncer lui-même et ses fonctionnalités lorsqu'il rejoint une chaîne. L'intention de bienvenue peut afficher un message ou initier un dialogue avec les membres de la chaîne. Le nom de l'intention de bienvenue peut varier, et vous le définissez dans AppInstanceBot la configuration.

Pour plus d'informations sur les intentions, consultez [Ajouter des intentions](https://docs.aws.amazon.com/lexv2/latest/dg/build-intents.html) dans le manuel *Amazon Lex V2* Developer Guide

# Création de versions de bot Amazon Lex V2 pour la messagerie du SDK Amazon Chime
<a name="lex-versions"></a>

Lorsque vous créez un bot Amazon Lex V2, vous créez uniquement une version *préliminaire*. Le brouillon est une copie de travail du bot que vous pouvez mettre à jour. Par défaut, le brouillon est associé à un alias appelé`TestBotAlias`, et vous ne devez utiliser le bot du brouillon que pour les tests manuels.

Une fois que vous avez terminé de modéliser le dialogue et de créer le brouillon de bot, vous créez une ou plusieurs *versions*, des instantanés numérotés du bot Lex brouillon. Les versions vous permettent de contrôler l'implémentation utilisée par vos applications clientes. Par exemple, vous pouvez publier des versions destinées à être utilisées dans différentes parties de votre flux de travail, telles que le développement, le déploiement bêta et la production.

Pour plus d'informations sur le versionnement des robots Lex, consultez la section [Création de versions](https://docs.aws.amazon.com/lexv2/latest/dg/versions.html) dans le manuel *Amazon Lex V2 Developer Guide*.

# Création d'alias de bot Amazon Lex V2 pour la messagerie du SDK Amazon Chime
<a name="lex-aliases"></a>

Une fois que vous avez créé une ou plusieurs versions d'un bot Amazon Lex V2, vous créez des *alias*. Les alias agissent comme des pointeurs nommés vers les versions d'un bot Amazon Lex V2. Par exemple, vous ne pouvez associer un alias qu'à une seule version à la fois.

Pour plus d'informations sur les alias de bot Lex, consultez la section [Création d'alias](https://docs.aws.amazon.com/lexv2/latest/dg/aliases.html) dans le guide du *développeur de Lex V2*.

# Configuration de AppInstance robots pour la messagerie du SDK Amazon Chime
<a name="appinstance-bot-setup"></a>

Une fois que vous avez un bot Amazon Lex V2 avec un modèle, une version et un alias, vous utilisez la messagerie du SDK Amazon Chime ou APIs la CLI pour créer un. AppInstanceBot Pour plus d'informations sur l'utilisation de APIs, consultez la documentation de l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_CreateAppInstanceBot.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_CreateAppInstanceBot.html)API.

**Note**  
Vous utilisez `InvokedBy` cet attribut pour configurer le comportement d'interaction avec le dialogue du`AppInstanceBot`. Vous pouvez configurer les types de messages qui déclenchent un bot, tels que les messages standard ou les messages ciblés.

L'exemple suivant montre comment utiliser la AWS CLI pour créer un message AppInstanceBot que tous les messages standard`MENTIONS`, ainsi que les messages ciblés, peuvent invoquer.

```
aws chime-sdk-identity create-app-instance-bot \
--app-instance-arn app-instance-arn \
--name app-instance-bot-name \
--configuration '{
   "Lex": {
      "LexBotAliasArn": "lex-bot-alias-arn",
      "LocaleId": "lex_bot_alias_locale_id",
      "InvokedBy": {
          "StandardMessages": "MENTIONS",
          "TargetedMessages": "ALL"
      }
      "WelcomeIntent": "welcome-intent-name"
   }
}
```

# Création d'un abonnement à une chaîne AppInstanceBot pour une messagerie du SDK Amazon Chime
<a name="channel-membership"></a>

Une fois que vous l'avez créé AppInstanceBot, vous l'ajoutez en tant que membre à une chaîne nouvelle ou existante. Pour plus d'informations, consultez [CreateChannel](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html)et consultez [ CreateChannelMembership](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html)la documentation de l'API de *messagerie du SDK Amazon Chime*.

L'exemple suivant montre comment utiliser la AWS CLI pour créer un canal et en ajouter un `AppInstanceBot` en tant que membre.

```
aws chime-sdk-messaging create-channel \
--chime-bearer caller_app_instance_user_arn \
--app-instance-arn app_instance_arn \
--name channel_name \
--member-arns '[
   "app_instance_bot_arn"
]'
```

L'exemple suivant montre comment utiliser la AWS CLI pour ajouter un `AppInstanceBot` à un canal existant.

```
aws chime-sdk-messaging create-channel-membership \
--chime-bearer caller_app_instance_user_arn \
--channel-arn channel_arn \
--member-arn app_instance_bot_arn
```

# Envoi de messages vers et AppInstanceBot pour la messagerie du SDK Amazon Chime
<a name="message-appinstancebot"></a>

Vous utilisez l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_SendChannelMessage.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_SendChannelMessage.html)API pour envoyer des messages à un AppInstanceBot. Vous envoyez les messages à la chaîne dont AppInstanceBot il est membre. Si le [modèle de compréhension du langage naturel](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html) reconnaît le contenu du message et suscite une intention Amazon Lex, il AppInstanceBot répond par un message de chaîne et lance un dialogue.

Vous pouvez également envoyer des messages cibles à un membre de la chaîne, qui peut être un AppInstanceUser ou un AppInstanceBot. Seuls la cible et l'expéditeur peuvent consulter les messages ciblés. Seuls les utilisateurs qui peuvent voir les messages ciblés peuvent agir sur ceux-ci. Les administrateurs peuvent toutefois supprimer les messages ciblés qu'ils ne peuvent pas voir. 

L'exemple suivant montre comment utiliser la AWS CLI pour envoyer un message de canal.

```
aws chime-sdk-messaging send-channel-message \
--chime-bearer caller_app_instance_user_arn \
--channel-arn channel_arn \
--content content \
--type STANDARD \
--persistence PERSISTENT
```

# Traitement des messages d'Amazon Lex pour la messagerie du SDK Amazon Chime
<a name="process-from-lexv2"></a>

Lorsque vous envoyez des messages à Amazon Lex, Amazon Chime SDK Messaging remplit le `CHIME.channel.arn` et `CHIME.sender.arn` avec les informations du canal et de l'ARN de l'expéditeur comme attributs de demande. Vous pouvez utiliser les attributs pour déterminer qui a envoyé un message et le canal auquel appartient l'expéditeur. Pour plus d'informations, reportez-vous à la section [Activation d'une logique personnalisée avec les fonctions AWS Lambda](https://docs.aws.amazon.com/lexv2/latest/dg/lambda.html) dans le manuel *Amazon Lex Developer Guide*.

# Traitement des réponses depuis et AppInstanceBot pour la messagerie du SDK Amazon Chime
<a name="process-response"></a>

Lorsqu'un utilisateur envoie un message, il AppInstanceBot répond par un message de chaîne. Vous pouvez répertorier les messages des chaînes pour obtenir la réponse du bot. 

L'exemple suivant montre comment utiliser la CLI pour répertorier les messages des canaux.

```
aws chime-sdk-messaging list-channel-messages \
--chime-bearer caller_app_instance_user_arn \
--channel-arn channel_arn
```

Les réponses positives d'un an AppInstanceBot prennent le format suivant. 

```
{
    "MessageId": "messageId",
    "Content": "*{\"Messages\":[{\"...\"}]}*",
    "ContentType": "application/amz-chime-lex-msgs",
    "MessageAttributes": {
        "CHIME.LEX.sessionState.intent.name": {
            "StringValues": [
                "lex_bot_intent_name"
            ]
        },
        "CHIME.LEX.sessionState.intent.state": {
            "StringValues": [
                "lex_bot_intent_fullfilment_status"
            ]
        },
        "CHIME.LEX.sessionState.originatingRequestId": {
            "StringValues": [
                "lex_bot_originating_request_id"
            ]
        },
        "CHIME.LEX.sessionState.sessionId": {
            "StringValues": [
                "lex_bot_session_id"
            ]
        }
    },
    "Sender": {
        "Arn": "app_instance_bot_arn",
        "Name": "app_instance_bot_name"
    },
    "Type": "STANDARD",
}
```

**Content**  
Le `Content` champ contient une liste de messages provenant du bot Amazon Lex V2. Pour plus d'informations sur ces messages, reportez-vous aux [messages](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html#lexv2-runtime_RecognizeText-response-messages) de l'`RecognizeText`API Amazon Lex V2.  
L'exemple suivant montre comment utiliser le `Content` champ dans un message de bienvenue.  

```
{
    "Messages":
    [
        {
            "Content": "Hello!",
            "ContentType": "PlainText"
        },
        {
            "ContentType": "ImageResponseCard",
            "ImageResponseCard":
            {
                "Title": "Hello! I'm BB, the Bank Bot.",
                "Subtitle": "I can help you with the following transactions",
                "Buttons":
                [
                    {
                        "Text": "Check balance",
                        "Value": "Check balance"
                    },
                    {
                        "Text": "Escalate to agent",
                        "Value": "Escalate to agent"
                    }
                ]
            }
        }
    ]
}
```
Pour une réponse en cas d'échec, le champ Contenu contient un message d'erreur et un code au format suivant :  

```
{
    "Code": error_code
}
```

**ContentType**  
Le `ContentType` fait référence au type de charge utile que contient le `Content` champ et doit être coché pour analyser le `Content` champ.   
Le bot Lex V2 utilise un autre`ContentType`.
`ContentType`est défini sur `application/amz-chime-lex-msgs` pour une réponse réussie ou `application/amz-chime-lex-error` une réponse d'échec.

**MessageAttribute**  
A *MessageAttribute*est une carte entre les clés de chaîne et les valeurs de chaîne. Une réponse provenant d'un `AppInstanceBot` contient les attributs de message suivants mappés à une réponse d'un bot Amazon Lex.   
+ **Chime.Lex.SessionState.Intent.name : nom de l'intention du bot Lex** que la demande a tenté de satisfaire.
+ **chime.lex.SessionState.Intent.State — État actuel de l'intention.** Les valeurs possibles sont les suivantes : `Fulfilled``InProgress`, et`Failed`. 
+ **chime.lex. SessionState. originatingRequestId** — Un identifiant unique pour une demande spécifique adressée au bot Amazon Lex. Ce paramètre est défini sur le `MessageId` message utilisateur d'origine qui a déclenché le AppInstanceBot.
+ **chime.lex.SessionState.SessionId — Identifiant** unique pour une conversation entre l'utilisateur et le bot. Lorsqu'un utilisateur lance une discussion avec votre bot, Amazon Lex crée une session.
Pour plus d'informations sur les sessions et les états de session Amazon Lex, reportez-vous [https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_SessionState.html](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_SessionState.html)à la *référence des API Amazon Lex* et à la [gestion des sessions](https://docs.aws.amazon.com/lexv2/latest/dg/using-sessions.html) *dans le guide du développeur Amazon Lex V2*  
Pour plus d'informations sur les attributs renvoyés par Amazon Lex V2, consultez [Amazon Lex Runtime V2](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_Operations_Amazon_Lex_Runtime_V2.html) APIs.

# Utilisation de règles pour envoyer des événements à Amazon EventBridge pour la messagerie du SDK Amazon Chime
<a name="event-bridge-alerts"></a>

Le SDK Amazon Chime génère des EventBridge événements lorsqu'une erreur l'empêche d'appeler le bot Amazon Lex V2. Vous pouvez créer des EventBridge règles qui reconnaissent ces événements et prennent automatiquement des mesures lorsque la règle correspond. Pour plus d'informations, consultez les [ EventBridge règles Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html) dans le *guide de EventBridge l'utilisateur Amazon*.

L'exemple suivant illustre un événement de défaillance typique.

```
{
  version: '0',
  id: '12345678-1234-1234-1234-111122223333',
  'detail-type': 'Chime Messaging AppInstanceBot Lex Failure',
  source: 'aws.chime',
  account: 'aws-account-id',
  time: 'yyyy-mm-ddThh:mm:ssZ',
  region: "region",
  resources: [],
  detail: {    
    resourceArn: 'arn:aws:chime:region:aws-account-id:app-instance/app-instance-id/bot/app-instance-bot-id',
    failureReason: "1 validation error detected: Value at 'text' failed to satisfy constraint: Member must have length less than or equal to 1024 (Service: LexRuntimeV2, Status Code: 400, Request ID: request-id)"
  }
}
```

# Résolution des problèmes AppInstanceBots configurés avec les robots Amazon Lex V2 pour la messagerie du SDK Amazon Chime
<a name="troubleshoot-lex-bots"></a>

Les rubriques suivantes expliquent comment résoudre les problèmes courants liés à AppInstanceBots.

## Détecter les défaillances d'Amazon Lex V2
<a name="find-lex-failures"></a>

La messagerie du SDK Amazon Chime envoie des [ EventBridge événements Amazon](https://docs.aws.amazon.com/chime-sdk/latest/dg/event-bridge-alerts.html) lorsqu'une erreur l'empêche d'appeler le bot Amazon Lex V2. Pour plus d'informations sur la mise en place de règles et la configuration des cibles de notification, consultez la section [Getting started with Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-get-started.html) dans le *guide de EventBridge l'utilisateur Amazon*.

Si vous recevez des EventBridge événements dans AWS CloudWatch Logs, vous pouvez utiliser AWS CloudWatch Logs Insights pour interroger les EventBridge événements en fonction du type de message détaillé du SDK Amazon Chime. `failureReason`Répertorie la cause de l'échec. 

L'exemple suivant montre une requête typique.

```
fields @timestamp, @message
| filter `detail-type` = "Chime Messaging AppInstanceBot Lex Failure"
| sort @timestamp desc
```

Si Amazon Chime SDK Messaging peut appeler votre bot Amazon Lex V2, le SDK envoie des `CONTROL` messages contenant un message d'erreur.

## Résolution des erreurs d'autorisation du bot Amazon Lex V2
<a name="lex-permission-errors"></a>

 AppInstanceBot Pour pouvoir invoquer un bot Amazon Lex V2, le responsable du service de messagerie Amazon Chime SDK doit être autorisé à appeler la ressource Amazon Lex V2 Bot. Assurez-vous également que la condition `AWS:SourceArn` de politique de ressources correspond à l'ARN du AppInstanceBot.

Pour plus d'informations sur la configuration d'un robot Amazon Lex V2 AppInstanceBot pour appeler un bot Amazon Lex V2[Création d'un bot Amazon Lex V2 pour la messagerie du SDK Amazon Chime](create-lex-bot.md), reportez-vous à la section précédente de cette section.

## Résolution des problèmes liés à la régulation des bots Amazon Lex V2
<a name="lex-throttling"></a>

Amazon Lex dispose d'un quota de service pour le nombre maximum de conversations simultanées en mode texte par alias de bot. Vous pouvez contacter l'équipe du service Amazon Lex pour obtenir des augmentations de quotas. Pour plus d'informations, reportez-vous aux [directives et aux quotas Amazon Lex](https://docs.aws.amazon.com/lexv2/latest/dg/quotas.html) dans le *manuel du développeur Amazon Lex*.