

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.

# StartBotConversation
<a name="start-bot-conversation"></a>

L'`StartBotConversation`action établit une conversation vocale entre un utilisateur final et votre bot Amazon Lex v2. L'utilisateur fournit les informations requises au bot. Le bot renvoie ensuite les informations à la fonction Lambda audio du réseau téléphonique public commuté (PSTN), qui exécute les tâches demandées.

Par exemple, le bot peut diffuser un message de bienvenue facultatif au début d'une conversation pour décrire brièvement la tâche que la fonction Lambda audio PSTN peut effectuer. La conversation va et vient entre l'utilisateur et le bot jusqu'à ce que le bot recueille les informations requises. Une fois la conversation terminée, le SDK Amazon Chime appelle votre fonction Lambda audio PSTN avec un événement de réussite de l'action, qui contient les informations recueillies par le bot. Votre fonction Lambda audio PSTN traite les informations et exécute la tâche demandée.

Le service audio permet une interaction conversationnelle réaliste avec vos utilisateurs. Par exemple, les utilisateurs peuvent interrompre le bot et répondre à une question avant la fin de l'invite audio. De plus, les utilisateurs peuvent utiliser n'importe quelle combinaison de chiffres vocaux et DTMF pour fournir des informations. Le bot attend que l'utilisateur fournisse des informations avant de répondre. Vous pouvez configurer la durée pendant laquelle le bot attend que l'utilisateur ait fini de parler avant d'interpréter une entrée vocale. L'utilisateur peut également demander au bot d'attendre s'il a besoin de temps pour récupérer des informations supplémentaires lors d'un appel, telles que les numéros de carte de crédit.

L'`StartBotConversation`action utilise Amazon Lex et Amazon Polly pendant la durée de la conversation avec le bot. Les frais Amazon Lex et Amazon Polly standard s'appliquent. Pour plus d'informations sur les tarifs, consultez les pages de [tarification des conversations en streaming Amazon Lex](https://aws.amazon.com/lex/pricing/) et de [tarification d'Amazon Polly](https://aws.amazon.com/polly/pricing/).

**Note**  
Vous ne pouvez pas exécuter cette action sur un appel ponté ou sur un appel qui a rejoint une réunion du SDK Amazon Chime.

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

**Topics**
+ [Syntaxe de StartBotConversation](#startbot-syntax)
+ [Utilisation de l'StartBotConversationaction](#using-startbot)
+ [Gestion des ACTION\$1SUCCESSFUL événements](#bot-action-success)
+ [Gestion des ACTION\$1FAILED événements](#bot-action-fail)
+ [Octroi d'autorisations pour utiliser un bot](#bot-permissions)
+ [Configuration des délais d'attente vocaux et DTMF](#bot-timeouts)
+ [Utilisation des entrées DTMF pendant une conversation](#bot-dtmf)
+ [Quotas de facturation et de service](#bot-billing)

## Syntaxe de StartBotConversation
<a name="startbot-syntax"></a>

L'exemple suivant montre une `StartBotConversation` syntaxe typique.

```
{
  "SchemaVersion": "1.0",
  "Actions":[
    {
      "Type": "StartBotConversation",
      "Parameters": {
        "CallId": "string",
        "ParticipantTag": "string",
        "BotAliasArn": "string",
        "LocaleId": "string",
        "Configuration": {
          "SessionState": {
             "SessionAttributes": {
                "string": "string" 
             },
             "DialogAction" : {
               "Type": "string"
             }
          },
          "WelcomeMessages": [
            {
              "Content": "string",
              "ContentType": "string" 
            }
          ]
        }
      }
    }
  ]
}
```

**CallId**  
*Description* — Le nom `CallID` d'un participant à l'invocation `CallDetails` de la AWS Lambda fonction. L'`StartBotConversation`action utilise cet identifiant comme celui du bot`SessionId`. Toutes les conversations de bot qui ont lieu lors d'un appel partagent la même session de conversation. Vous pouvez modifier l'état de session entre votre utilisateur et votre bot à l'aide de l'PutSessionAPI [Amazon Lex](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_PutSession.html). Pour plus d'informations, consultez [la section Gestion des sessions avec l'API Amazon Lex v2](https://docs.aws.amazon.com/lexv2/latest/dg/using-sessions.html) dans le manuel *Amazon Lex Developer Guide*.  
*Valeurs autorisées* : un identifiant d'appel valide.  
*Obligatoire* — Non, s'`ParticipantTag`il est présent.  
*Valeur par défaut* : aucune.

**ParticipantTag**  
*Description* — Celui `ParticipantTag` de l'un des participants connectés au`CallDetails`.  
*Valeurs autorisées* —`LEG-A`.  
*Obligatoire* — Non, s'`CallId`il est présent.  
*Valeur par défaut* — `ParticipantTag` de l'invoqué`callLeg`. Ignoré si vous le spécifiez`CallDetails`.

**BotAliasArn**  
*Description* — L'alias ARN de votre robot Lex. Vous devez créer le bot dans la même région AWS que votre application audio PSTN. Un alias de bot Amazon Lex valide a le format suivant :`arn:aws:lex:region:awsAccountId:bot-alias/botId/botAliasId`, où se *`region`* trouve la région AWS dans laquelle réside votre bot. `awsAccountId`Il s'agit de l'ID de compte AWS dans lequel votre bot Amazon Lex a été créé. La `botId` valeur est l'identifiant attribué au bot lorsque vous l'avez créé. Vous pouvez trouver l'ID du bot dans la console Amazon Lex sur la page de **détails du bot**. `botAliasId`Il s'agit de l'identifiant attribué à l'alias du bot lorsque vous l'avez créé. Vous pouvez trouver l'ID d'alias du bot sur la console Amazon Lex sur la page **Alias**.   
*Valeurs autorisées* : un ARN de bot valide.  
*Obligatoire* —Oui.  
*Valeur par défaut* : aucune.

**LocaleId**  
*Description* — L'identifiant de la localisation que vous avez utilisée pour votre bot. Pour obtenir la liste des paramètres régionaux et des codes de langue, consultez la section [Langues et paramètres régionaux pris en charge par Amazon Lex](https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).  
*Valeurs autorisées* : [langues et paramètres régionaux pris en charge par Amazon Lex.](https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html)  
*Obligatoire* — Non  
*Valeur par défaut* —`en_US`.

**Configuration**  
*Description* — Configuration de la conversation, y compris l'état de la session et les messages de bienvenue. La taille totale de la représentation sous forme de chaîne JSON de l'`Configuration`objet est limitée à 10 Ko.  
*Valeurs autorisées* : `Configuration` objet.  
*Obligatoire* — Non  
*Valeur par défaut* : aucune.

**Configuration.SessionState**  
*Description* — État de la session de l'utilisateur avec Amazon Lex v2.  
*Valeurs autorisées* : `SessionState` objet.  
*Obligatoire* — Non  
*Valeur par défaut* : aucune.

**Configuration.SessionState.SessionAttributes**  
*Description* — Carte des key/value paires représentant les informations contextuelles spécifiques à la session. Cette carte contient les informations d'application transmises entre Amazon Lex v2 et une application cliente.  
*Valeurs autorisées* : mappage de chaîne à chaîne.  
*Obligatoire* — Non  
*Valeur par défaut* : aucune.

**Configuration.SessionState.DialogAction.Type**  
*Description* — L'action suivante que le bot entreprend lors de ses interactions avec l'utilisateur. Valeurs possibles :  
+ *Le délégué* Amazon Lex v2 détermine l'action suivante.
+ *ElicitIntent*L'action suivante suscite une intention de la part de l'utilisateur.
*Valeurs autorisées* — `Delegate` \$1`ElicitIntent`.  
*Obligatoire* — Non  
*Valeur par défaut* : aucune.

**Configuration.WelcomeMessages**  
*Description* — Liste des messages à envoyer à l'utilisateur au début de la conversation. Si vous définissez le `welcomeMessage` champ, vous devez définir la `DialogAction.Type` valeur sur`ElicitIntent`.  
*Valeurs autorisées* — Objet du message  
*Obligatoire* — Non  
*Valeur par défaut* : aucune.

**Configuration.WelcomeMessages.Content**  
*Description* — Le texte du message de bienvenue.  
*Valeurs autorisées* : chaîne.  
*Obligatoire* — Non  
*Valeur par défaut* : aucune.

**Configuration.WelcomeMessages.ContentType**  
*Description* — Indique le type de message de bienvenue.  
*Valeurs autorisées* — ` PlainText` \$1 `SSML`  
+ *PlainText*— Le message contient du texte UTF-8 brut. 
+ *SSML* — Le message contient du texte formaté pour la sortie vocale.
*Obligatoire* — Oui.  
*Valeur par défaut* : aucune.

## Utilisation de l'StartBotConversationaction
<a name="using-startbot"></a>

L'exemple suivant montre une `StartBotConversation` action typique.

```
{
  "SchemaVersion": "1.0",
  "Actions":[
    {
      "Type": "StartBotConversation",
      "Parameters": {
        "CallId": "call-id-1",
        "BotAliasArn": "arn:aws:lex:us-east-1:123456789012:bot-alias/ABCDEFGHIH/MNOPQRSTUV",
        "LocaleId": "en_US",
        "Configuration": {
          "SessionState": {
             "SessionAttributes": {
                "mykey1": "myvalue1" 
             },
             "DialogAction" : {
               "Type": "ElicitIntent"
             }
          },
          "WelcomeMessages": [
            {
              "Content": "Welcome. How can I help you?",
              "ContentType": "PlainText" 
            }
          ]
        }
      }
    }
  ]
}
```

## Gestion des ACTION\$1SUCCESSFUL événements
<a name="bot-action-success"></a>

L'exemple suivant montre un `ACTION_SUCCESSFUL` événement typique de l'`StartBotConversation`action.

```
{
    "SchemaVersion": "1.0",
    "Sequence": number,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData":
    {
        "CallId": "string",
        "Type": "StartBotConversation",
        "Parameters": {
            // parameters provided in the StartBotConversation action.
        },
        "CallDetails": {
            // Information about the call associated with the AWS Lambda invocation.
        },
        "IntentResult": {
            "SessionId": "string",
            "SessionState": {
                "SessionAttributes": {
                    "string": "string"
                },
                "Intent": {
                    "Name": "string",
                    "Slots":  {
                        "string": {
                            "Value": {
                                "OriginalValue": "string",
                                "InterpretedValue": "string",
                                "ResolvedValues": ["string"]
                            },
                            "Values": []
                        }
                    },
                    "State": "string",
                    "ConfirmationState": "string"
                }
            },
            "Interpretations": [
                {
                    "NluConfidence": {
                        "Score": number
                    },
                    "Intent": {
                        "Name": "string",
                        "Slots": {
                            "string": {
                                "Value": {
                                    "OriginalValue": "string",
                                    "InterpretedValue": "string",
                                    "ResolvedValues": ["string"]
                                },
                                "Values": []
                            }
                        },
                        "State": "string",
                        "ConfirmationState": "string"
                    }
                }
            ]
        }
    }
}
```

**IntentResult**  
Le résultat de la conversation entre l'utilisateur et le bot.

**SessionId**  
Identifiant de la session de conversation du bot. Lorsqu'un utilisateur entame une conversation avec votre bot, Amazon Lex crée une session. Une session encapsule les informations échangées entre votre utilisateur et le bot. L'`StartBotConversation`action utilise l'identifiant d'appel comme celui du bot`SessionId`. Vous pouvez modifier l'état de session entre votre utilisateur et votre bot à l'aide de l'[https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_PutSession.html](https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_PutSession.html)API Lex. Pour plus d'informations, consultez [la section Gestion des sessions avec l'API Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/using-sessions.html) dans le *manuel du développeur Amazon Lex*.

**SessionState**  
État de la session Amazon Lex v2 de l'utilisateur. 

**SessionState.SessionAttributes**  
Carte des key/value paires représentant les informations contextuelles spécifiques à la session. La carte contient les informations de conversation transmises entre la fonction Lambda attachée à votre robot et la fonction Lambda audio PSTN.

**Interprétations**  
Une liste d'intentions dérivée par Amazon Lex qui peuvent satisfaire l'énoncé du client. L'intention ayant obtenu le `NluConfidence` score le plus élevé devient l'intention du`SessionState`. 

**Interprétations. NluConfidence.Note**  
Un score qui indique dans quelle mesure Amazon Lex v2 est certain qu'une intention répond à celle de l'utilisateur. Varie entre 0,00 et 1,00. Des scores plus élevés indiquent une plus grande confiance. 

**Intent**  
L'action que l'utilisateur souhaite effectuer.

**Intent.Name**  
Nom de l'intention.

**Intent.Slots**  
Une carte de tous les emplacements correspondant à l'intention. Le nom de l'emplacement correspond à la valeur de l'emplacement. Si un emplacement n'est pas rempli, la valeur est nulle.

**Intent.Slots.Value**  
La valeur de l'emplacement.

**Intent.Slots.Values**  
Liste d'une ou de plusieurs valeurs fournies par l'utilisateur pour le slot.

**Intent.Slots.Value.OriginalValue**  
Le texte de la réponse de l'utilisateur, saisi pour le créneau.

**Intent.Slots.Value.InterpretedValue**  
*Description* — La valeur qu'Amazon Lex v2 détermine pour l'emplacement. La valeur réelle dépend du paramétrage de la stratégie de sélection de valeur du bot. Vous pouvez choisir d'utiliser la valeur saisie par l'utilisateur ou demander à Amazon Lex v2 de choisir la première valeur de la `resolvedValues` liste.

**Intent.Slots.Value.ResolvedValues**  
Liste des valeurs supplémentaires reconnues par Amazon Lex v2 pour le slot.

**Intent.State**  
*Description* — Informations d'exécution correspondant à l'intention. Valeurs possibles :  
+ `Failed`— La fonction Lambda n'a pas répondu à l'intention.
+ `Fulfilled`— La fonction Lambda a répondu à l'objectif.
+ `ReadyForFulfillment`— Les informations relatives à l'intention sont présentes et votre fonction Lambda peut répondre à l'intention. 

**Intent.ConfirmationState**  
*Description* — Indique la confirmation de l'intention. Valeurs possibles :  
+ *Confirmé* — L'intention est remplie.
+ *Refusé* — L'utilisateur a répondu « non » à l'invite de confirmation.
+ *Aucune* : l'utilisateur n'a pas été invité à confirmer, ou l'utilisateur a été invité mais n'a pas confirmé ou refusé l'invite.

## Gestion des ACTION\$1FAILED événements
<a name="bot-action-fail"></a>

L'exemple suivant montre un `ACTION_FAILED` événement typique de l'`StartBotConversation`action.

```
{
    "SchemaVersion": "1.0",
    "Sequence": number,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData":{
        "CallId": "string",
        "Type": "StartBotConversation",
        "Parameters": {
            // parameters provided in the StartBotConversation action
        },
        "ErrorType": "string",
        "ErrorMessage": "string"
    },
    "CallDetails":{
    }
}
```

**ErrorType**  
Chaîne qui identifie de manière unique une condition d'erreur.

**ErrorMessage**  
Description générique de la condition d'erreur.

### Codes d’erreur
<a name="action-errors"></a>

Le tableau suivant répertorie les messages d'erreur qu'une fonction Lambda peut renvoyer lors d'un `ACTION_FAILED` événement.


| Erreur | Description | 
| --- | --- | 
|  `InvalidActionParameter` | Un ou plusieurs paramètres d'action ne sont pas valides. Le message d'erreur décrit le paramètre non valide. | 
| `SystemException` | Une erreur système s'est produite lors de l'exécution d'une action. | 
| `ResourceNotFound` | Le bot spécifié est introuvable. | 
| `ResourceAccessDenied` | L'accès au bot est refusé. | 
| `ActionExecutionThrottled` | La limite du service de conversation avec les robots est dépassée. Le message d'erreur décrit la limite de service spécifique dépassée. | 

## Octroi d'autorisations pour utiliser un bot
<a name="bot-permissions"></a>

L'exemple suivant autorise le SDK Amazon Chime à appeler Amazon Lex. [https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_StartConversation.html](https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_StartConversation.html) APIs Vous devez explicitement autoriser le service audio à utiliser votre bot. Le bloc de condition est obligatoire pour les principaux de service. Le bloc de conditions doit utiliser les clés de contexte globales `AWS:SourceAccount` et`AWS:SourceArn`. `AWS:SourceAccount`Il s'agit de votre identifiant de compte AWS. `AWS:SourceArn`Il s'agit de l'ARN de la ressource de l'application audio PSTN qui invoque le bot Lex.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowChimePstnAudioUseBot",
      "Effect": "Allow",
      "Principal": {
        "Service": "voiceconnector.chime.amazonaws.com"
      },
      "Action": "lex:StartConversation",
  "Resource": "arn:aws:lex:us-east-1:123456789012:bot-alias/botId/aliasId",
      "Condition": {
        "StringEquals": {
          "AWS:SourceAccount": "123456789012"
        },
        "ArnEquals": {
        "AWS:SourceArn": "arn:aws:chime:us-east-1:123456789012:sma/smaId"
        }
      }
    }
  ]
}
```

------

## Configuration des délais d'attente vocaux et DTMF
<a name="bot-timeouts"></a>

Vous pouvez configurer les délais d'expiration de la voix et du DTMF lors de la capture des entrées utilisateur. Vous pouvez configurer les délais d'expiration via les attributs de session lorsque vous démarrez une conversation avec un bot, et les remplacer dans la fonction Lambda de votre robot Lex si nécessaire. Amazon Lex vous permet de définir plusieurs emplacements pour une intention ou des robots. Étant donné que vous pouvez spécifier que les attributs de session s'appliquent au niveau de l'intention et de l'emplacement, vous pouvez spécifier que l'attribut est défini uniquement lorsque vous collectez un certain type d'entrée. Par exemple, vous pouvez spécifier un délai d'expiration plus long lorsque vous collectez un numéro de compte que lorsque vous collectez une date. Vous pouvez utiliser des caractères génériques dans la clé d'attribut de session. 

Par exemple, pour définir un délai d'attente vocal pour tous les créneaux à 4 000 millisecondes à toutes fins utiles, vous pouvez fournir un attribut de session en utilisant : `x-amz-lex:start-timeout-ms:*:*` comme nom d'attribut de session et `4000` comme valeur d'attribut de session. Pour plus d'informations, consultez la [section Configuration des délais d'expiration pour la capture des données saisies par les utilisateurs](https://docs.aws.amazon.com/lexv2/latest/dg/session-attribs-speech.htm) dans le manuel *Amazon Lex Developer Guide*. 

## Utilisation des entrées DTMF pendant une conversation
<a name="bot-dtmf"></a>

Les robots Amazon Lex prennent en charge la saisie vocale et au clavier au cours d'une conversation. Les robots interprètent les entrées du clavier comme des chiffres DTMF. Vous pouvez demander à vos contacts de terminer leur saisie par une virgule (\$1) et d'annuler une conversation à l'aide de la touche étoile (\$1). Si vous n'invitez pas les clients à terminer leur saisie par la touche dièse, Lex arrête d'attendre que d'autres touches soient appuyées au bout de 5 secondes.

## Quotas de facturation et de service
<a name="bot-billing"></a>

AWS vous facture les frais suivants :
+ Utilisation du SDK Amazon Chime pour l'appel. Pour plus d'informations, consultez la tarification du [SDK Amazon Chime](https://aws.amazon.com/chime/chime-sdk/pricing/).
+ Utilisation d'Amazon Lex pour interpréter le discours des utilisateurs. Pour plus d'informations, consultez la [tarification des conversations en streaming Amazon Lex](https://aws.amazon.com/lex/pricing/).
+ Utilisation d'Amazon Polly pour synthétiser les réponses textuelles de votre bot. Pour plus d'informations, consultez les [tarifs d'Amazon Polly.](https://aws.amazon.com/polly/pricing/)

Vous devez également connaître les quotas de service suivants :
+ Le SDK Amazon Chime dispose d'un quota de service correspondant au nombre maximum de robots Amazon Lex que vous pouvez utiliser avec l'action audio PSTN. [StartBotConversation](#start-bot-conversation) Pour plus d'informations, reportez-vous à la section [Trunking SIP et quotas vocaux](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html#chm-sdk-pstn-quotas) dans le manuel de *référence AWS général*.
+ Amazon Lex dispose d'un quota de service pour le nombre maximum de conversations vocales simultanées par bot Lex. Vous pouvez contacter l'équipe du service Amazon Lex pour obtenir des augmentations de quotas. Pour plus d'informations, consultez les [directives Amazon Lex et les quotas](https://docs.aws.amazon.com/lexv2/latest/dg/quotas.html) dans le *guide du développeur Amazon Lex*.
+ Amazon Polly dispose d'un quota de service pour la synthèse des réponses textuelles. Vous pouvez contacter l'équipe du service Amazon Polly pour obtenir des augmentations de quotas. Pour plus d'informations sur les quotas de service Amazon Polly, consultez la section [Quotas dans Amazon Polly](https://docs.aws.amazon.com/polly/latest/dg/limits.html), dans le manuel du développeur Amazon *Polly.*