

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usando AppInstanceBots como agentes de canal inteligentes para mensagens do Amazon Chime SDK
<a name="appinstance-bots"></a>

Pode-se usar `AppInstanceBots` como atendentes de canal inteligentes. Os atendentes reconhecem as frases-chave enviadas via `ChannelMessages` pelos membros do canal. O modelo de compreensão da linguagem natural do bot resolve as mensagens. Por sua vez, isso permite que um ou mais membros do canal participem de um diálogo em linguagem natural definido pelo modelo do bot. Você fornece os bots para controlar a profundidade do diálogo e da integração com seus sistemas corporativos.

**Pré-requisitos**
+ Conhecimento da funcionalidade básica do SDK do Amazon Chime, como criar `AppInstanceUsers`, gerenciar canais e enviar e receber mensagens.
+ A capacidade de invocar o Amazon Chime SDK Messaging. APIs
+ Conhecimento da funcionalidade básica do Amazon Lex V2, como criar um bot do Amazon Lex V2, modelar intenções e slots, criar versões do bot, aliases, usar o estado da sessão e integração com o hook do Lambda.

**Importante**  
O uso do Amazon Lex V2 está sujeito aos [Termos de Serviço da AWS](https://aws.amazon.com/service-terms/), incluindo os termos específicos dos Serviços de Machine Learning e Inteligência Artificial da AWS.

**Topics**
+ [Criar um bot do Amazon Lex V2 para o sistema de mensagens do SDK do Amazon Chime](create-lex-bot.md)
+ [Configuração de AppInstance bots para mensagens do Amazon Chime SDK](appinstance-bot-setup.md)
+ [Criação de uma associação de canal AppInstanceBot para um sistema de mensagens do Amazon Chime SDK](channel-membership.md)
+ [Envio de mensagens AppInstanceBot para um sistema de mensagens do Amazon Chime SDK](message-appinstancebot.md)
+ [Processar mensagens do Amazon Lex para o sistema de mensagens do SDK do Amazon Chime](process-from-lexv2.md)
+ [Processamento de respostas de um AppInstanceBot para mensagens do Amazon Chime SDK](process-response.md)
+ [Usando regras para enviar eventos para a Amazon EventBridge para mensagens do Amazon Chime SDK](event-bridge-alerts.md)
+ [Solução de problemas AppInstanceBots configurada com bots do Amazon Lex V2 para mensagens do Amazon Chime SDK](troubleshoot-lex-bots.md)

# Criar um bot do Amazon Lex V2 para o sistema de mensagens do SDK do Amazon Chime
<a name="create-lex-bot"></a>

Para usar AppInstance bots como agentes, primeiro você precisa criar um bot Amazon Lex V2 para gerenciar a interação de diálogo para um cenário de agente inteligente. Para começar a criar um bot do Amazon Lex V2, consulte [Conceitos básicos do Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/getting-started.html) no *Guia do desenvolvedor do Amazon Lex V2*. Para obter informações sobre a migração de um bot do Amazon Lex V1 para o Amazon Lex V2, consulte o [guia de migração do Amazon Lex V1 para V2](https://docs.aws.amazon.com/lexv2/latest/dg/migration.html).

**Topics**
+ [Pré-requisitos](#lex-prereqs)
+ [Conceder permissões de invocação](#invocation-perms)
+ [Criar uma intenção de boas-vindas para o sistema de mensagens do SDK do Amazon Chime](welcome-intent.md)
+ [Criar versões do bot do Amazon Lex V2 para o sistema de mensagens do SDK do Amazon Chime](lex-versions.md)
+ [Criar aliases do bot do Amazon Lex V2 para o sistema de mensagens do SDK do Amazon Chime](lex-aliases.md)

## Pré-requisitos
<a name="lex-prereqs"></a>

Seu bot do Amazon Lex V2 precisa atender aos seguintes pré-requisitos.
+ Você deve criar o bot em uma AWS região que ofereça suporte aos endpoints de tempo de execução do Amazon Lex V2.
+ Você deve criar o bot na mesma AWS conta e região do `AppInstance` `AppInstanceBot` e.
+ O bot deve conceder permissões de invocação por meio de uma política baseada em recursos à entidade principal de serviço `messaging.chime.amazonaws.com`.
+ O bot pode modelar uma intenção de boas-vindas. Isso permite que o `AppInstanceBot` anuncie a si mesmo e seus recursos ao se inscrever em um canal.
+ O bot deve ter uma versão de produção e aliases para configurar o `AppInstanceBot`.
+ O bot deve usar um idioma e uma localidade compatíveis. Para obter mais informações sobre idiomas e localidades, consulte [Idiomas e localidades compatíveis com o Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html) no *Guia do desenvolvedor do Amazon Lex V2*.

## Conceder permissões de invocação
<a name="invocation-perms"></a>

Para um `AppInstanceBot` invocar um Bot do Amazon Lex V2, a entidade principal de serviço de mensagens SDK do Amazon Chime deve ter permissão para invocar o recurso Bot do Amazon Lex. Para obter mais informações sobre as permissões de políticas baseadas em recursos do Amazon Lex V2, consulte [Exemplos de políticas baseadas em recursos para o Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/security_iam_resource-based-policy-examples.html) no *Guia do desenvolvedor do Amazon Lex V2*.

O exemplo a seguir mostra uma política baseada em recursos.

------
#### [ 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"
        }
      }
    }
  ]
}
```

------

**nota**  
Para permitir que alguém `AppInstanceBot` invoque um bot do Amazon Lex V2, use o ID AppInstanceBot do. Para permitir que todos os `AppInstanceBots` dentro de uma `AppInstance` invoquem um bot Amazon Lex V2, use um curinga (\$1). Por exemplo:  
`arn:aws:chime:region:aws-account-id:app-instance/app-instance-id/bot/*`

# Criar uma intenção de boas-vindas para o sistema de mensagens do SDK do Amazon Chime
<a name="welcome-intent"></a>

Se você adicionar uma intenção de boas-vindas opcional ao seu modelo de bot Amazon Lex V2, o `AppInstanceBot` poderá anunciar a si mesmo e seus recursos ao entrar em um canal. A intenção de boas-vindas pode exibir uma mensagem ou iniciar um diálogo com os membros do canal. O nome da intenção de boas-vindas pode variar e você a define na configuração AppInstanceBot da.

Para obter mais informações sobre intenções, consulte [Adicionar intenções](https://docs.aws.amazon.com/lexv2/latest/dg/build-intents.html) no *Guia do desenvolvedor do Amazon Lex V2*

# Criar versões do bot do Amazon Lex V2 para o sistema de mensagens do SDK do Amazon Chime
<a name="lex-versions"></a>

Ao criar um Bot do Amazon Lex V2 Bot, você só cria uma versão *rascunho*. O rascunho é uma cópia funcional do bot que você pode atualizar. Por padrão, a versão de rascunho está associada a um alias chamado `TestBotAlias`, e você só deve usar o bot de rascunho para testes manuais.

Depois de concluir a modelagem do diálogo e a criação do bot de rascunho, você cria uma ou mais *versões*, instantâneos numerados do rascunho do Bot Lex. As versões permitem que você controle a implementação que seus aplicativos cliente usam. Por exemplo, você pode publicar versões para uso em diferentes partes do seu fluxo de trabalho, como desenvolvimento, implantação beta e produção.

Para obter mais informações sobre o versionamento do Bot do Lex, consulte [Criação de versões](https://docs.aws.amazon.com/lexv2/latest/dg/versions.html) no *Guia do desenvolvedor do Amazon Lex V2*.

# Criar aliases do bot do Amazon Lex V2 para o sistema de mensagens do SDK do Amazon Chime
<a name="lex-aliases"></a>

Depois de criar uma ou mais versões de um bot do Amazon Lex V2, crie *aliases*. Os aliases atuam como indicadores nomeados para as versões de um bot do Amazon Lex V2. Por exemplo, você só pode associar um alias a uma versão de cada vez.

Para obter mais informações sobre aliases de Bot Lex, consulte [Criação de aliases](https://docs.aws.amazon.com/lexv2/latest/dg/aliases.html) no *Guia do desenvolvedor do Lex V2*.

# Configuração de AppInstance bots para mensagens do Amazon Chime SDK
<a name="appinstance-bot-setup"></a>

Depois de ter um bot do Amazon Lex V2 com um modelo, versão e alias, você usa o sistema de mensagens do Amazon Chime SDK APIs ou a CLI para criar um. AppInstanceBot Para obter mais informações sobre como usar o APIs, consulte a documentação [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)da API.

**nota**  
Use o atributo `InvokedBy` para configurar o comportamento de interação da caixa de diálogo do `AppInstanceBot`. Você pode configurar os tipos de mensagem que acionam um bot, como mensagens-padrão ou mensagens direcionadas.

O exemplo a seguir mostra como usar a AWS CLI para criar uma AppInstanceBot que todas as mensagens padrão e mensagens direcionadas possam invocar. `MENTIONS`

```
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"
   }
}
```

# Criação de uma associação de canal AppInstanceBot para um sistema de mensagens do Amazon Chime SDK
<a name="channel-membership"></a>

Depois de criar o AppInstanceBot, você o adiciona como membro a um canal novo ou existente. Para obter mais informações, consulte [CreateChannel](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html)e [ CreateChannelMembership](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html)na documentação da *API de mensagens do Amazon Chime SDK*.

O exemplo a seguir mostra como usar a AWS CLI para criar um canal e adicionar um `AppInstanceBot` como membro.

```
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"
]'
```

O exemplo a seguir mostra como usar a AWS CLI para adicionar um `AppInstanceBot` a um canal existente.

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

# Envio de mensagens AppInstanceBot para um sistema de mensagens do Amazon Chime SDK
<a name="message-appinstancebot"></a>

Você usa a [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 para enviar mensagens para um AppInstanceBot. Você envia as mensagens para o canal do qual AppInstanceBot é membro. Se o [modelo de compreensão da linguagem natural](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html) reconhecer o conteúdo da mensagem e extrair uma intenção do Amazon Lex, ele AppInstanceBot responderá com uma mensagem do canal e iniciará um diálogo.

Você também pode enviar mensagens de destino para um membro do canal, que pode ser um AppInstanceUser ou um AppInstanceBot. Somente o destino e o remetente podem ver as mensagens direcionadas. Somente usuários que podem ver mensagens direcionadas podem executar ações sobre elas. No entanto, os administradores podem excluir mensagens direcionadas que não conseguem ver. 

O exemplo a seguir mostra como usar a AWS CLI para enviar uma mensagem 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
```

# Processar mensagens do Amazon Lex para o sistema de mensagens do SDK do Amazon Chime
<a name="process-from-lexv2"></a>

Ao enviar mensagens para o Amazon Lex, o Mensagens do SDK do Amazon Chime preenche o `CHIME.channel.arn` e o `CHIME.sender.arn` com as informações de ARN do canal e do remetente como atributos da solicitação. Você pode usar os atributos para determinar quem enviou uma mensagem e ao canal ao qual o remetente pertence. Para obter mais informações, consulte [Habilitar a lógica personalizada com funções AWS Lambda no Guia](https://docs.aws.amazon.com/lexv2/latest/dg/lambda.html) do *desenvolvedor do Amazon Lex*.

# Processamento de respostas de um AppInstanceBot para mensagens do Amazon Chime SDK
<a name="process-response"></a>

Quando um usuário envia uma mensagem, ele AppInstanceBot responde com uma mensagem do canal. Você pode listar as mensagens do canal para obter a resposta do bot. 

O exemplo a seguir mostra como usar a CLI para listar mensagens do canal.

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

As respostas de sucesso de e AppInstanceBot assumem o seguinte formato. 

```
{
    "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**  
O campo `Content` contém uma lista de mensagens provenientes do bot do Amazon Lex V2. Para obter mais informações sobre essas mensagens, consulte as [mensagens](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html#lexv2-runtime_RecognizeText-response-messages) na API `RecognizeText` do Amazon Lex V2.  
O exemplo a seguir mostra como usar o campo `Content` em uma mensagem de boas-vindas.  

```
{
    "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"
                    }
                ]
            }
        }
    ]
}
```
Para uma resposta a falhas, o campo Conteúdo contém uma mensagem de erro e um código no seguinte formato:  

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

**ContentType**  
O `ContentType` se refere ao tipo de carga útil que o campo `Content` contém e deve ser verificado para analisar o campo `Content`.   
O bot do Lex V2 usa um `ContentType` diferente.
`ContentType` está definido como `application/amz-chime-lex-msgs` para uma resposta bem-sucedida ou como `application/amz-chime-lex-error` para uma resposta de falha.

**MessageAttribute**  
A *MessageAttribute*é um mapa de chaves de string para valores de string. Uma resposta de um `AppInstanceBot` contém os seguintes atributos da mensagem associados a uma resposta de um bot do Amazon Lex.   
+ **CHIME.LEX.sessionState.intent.name**: o nome da intenção do Bot Lex que a solicitação tentou atender.
+ **CHIME.LEX.sessionState.intent.state**: o estado atual da intenção. Os valores possíveis são: `Fulfilled`, `InProgress` e `Failed`. 
+ **chime.lex.SessionState. originatingRequestId** — Um identificador exclusivo para uma solicitação específica para o bot Amazon Lex. Isso é definido como a mensagem `MessageId` do usuário de origem que acionou o. AppInstanceBot
+ **CHIME.LEX.sessionState.sessionId**: um identificador exclusivo para uma conversa entre o usuário e o bot. Quando um usuário inicia um chat com seu bot, o Amazon Lex cria uma sessão.
Para ter mais informações sobre sessões e estados de sessão do Amazon Lex, consulte [https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_SessionState.html](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_SessionState.html) em *Amazon Lex API Reference* e [Managing sessions](https://docs.aws.amazon.com/lexv2/latest/dg/using-sessions.html) no *Guia do desenvolvedor do Amazon Lex V2*.  
Para obter mais informações sobre os atributos que o Amazon Lex V2 retorna, consulte o [Amazon Lex Runtime APIs V2](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_Operations_Amazon_Lex_Runtime_V2.html).

# Usando regras para enviar eventos para a Amazon EventBridge para mensagens do Amazon Chime SDK
<a name="event-bridge-alerts"></a>

O Amazon Chime SDK entrega EventBridge eventos quando um erro impede que ele invoque o Amazon Lex V2 Bot. Você pode criar EventBridge regras que reconheçam esses eventos e tomem medidas automaticamente quando a regra for correspondida. Para obter mais informações, consulte [ EventBridge as regras da Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html) no *Guia EventBridge do usuário da Amazon*.

O exemplo a seguir mostra um evento de falha típico.

```
{
  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)"
  }
}
```

# Solução de problemas AppInstanceBots configurada com bots do Amazon Lex V2 para mensagens do Amazon Chime SDK
<a name="troubleshoot-lex-bots"></a>

Os tópicos a seguir explicam como solucionar problemas comuns com o. AppInstanceBots

## Como descobrir falhas do Amazon Lex V2
<a name="find-lex-failures"></a>

O sistema de mensagens do Amazon Chime SDK entrega [ EventBridge eventos da Amazon](https://docs.aws.amazon.com/chime-sdk/latest/dg/event-bridge-alerts.html) quando um erro impede que ele invoque o bot Amazon Lex V2. Para obter mais informações sobre como configurar regras e metas de notificação, consulte [Introdução à Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-get-started.html) no *Guia do EventBridge usuário da Amazon*.

Se você receber EventBridge eventos no AWS CloudWatch Logs, poderá usar o AWS CloudWatch Logs Insights para consultar EventBridge eventos com base no tipo de detalhe de mensagens do Amazon Chime SDK. O `failureReason` lista a causa da falha. 

O exemplo a seguir mostra uma consulta típica.

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

Se mensagens do SDK do Amazon Chime puderem invocar seu bot do Amazon Lex V2, o SDK enviará mensagens `CONTROL` com uma mensagem de erro.

## Solucionar problemas de erros de permissão do Amazon Lex V2
<a name="lex-permission-errors"></a>

Para AppInstanceBot invocar um Amazon Lex V2 Bot, o responsável pelo serviço de mensagens Amazon Chime SDK deve ter permissão para invocar o recurso Amazon Lex V2 Bot. Além disso, certifique-se `AWS:SourceArn` de que a condição da política de recursos corresponda ao ARN do. AppInstanceBot

Para obter mais informações sobre como configurar um AppInstanceBot para invocar um bot Amazon Lex V2, consulte[Criar um bot do Amazon Lex V2 para o sistema de mensagens do SDK do Amazon Chime](create-lex-bot.md), anteriormente nesta seção.

## Solucionar problemas de controle de utilização de bots do Amazon Lex V2
<a name="lex-throttling"></a>

O Amazon Lex tem uma service quota para o número máximo de conversas simultâneas no modo de texto por alias de bot. Entre em contato com a equipe de atendimento do Amazon Lex para obter aumentos de cota. Para ter mais informações, consulte [Amazon Lex guidelines and quotas](https://docs.aws.amazon.com/lexv2/latest/dg/quotas.html) no *Guia do desenvolvedor do Amazon Lex*.