

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Utilización AppInstanceBots como agentes de canal inteligentes para la mensajería del SDK de Amazon Chime
<a name="appinstance-bots"></a>

Se puede utilizar `AppInstanceBots` como agentes de canal inteligentes. Los agentes reconocen las frases clave enviadas mediante `ChannelMessages` por los miembros del canal. El modelo de comprensión del lenguaje natural del bot resuelve los mensajes. A su vez, esto permite a uno o más miembros del canal entablar un diálogo en lenguaje natural definido por el modelo del bot. Usted suministra los bots para controlar la profundidad del diálogo y la integración con los sistemas de su empresa.

**Requisitos previos**
+ Conocimiento de las funciones básicas de Amazon Chime SDK, como la creación de `AppInstanceUsers` y administración de canales y el envío y la recepción de mensajes.
+ La capacidad de invocar la mensajería del SDK de Amazon Chime. APIs
+ Conocimiento de las funciones básicas de Amazon Lex V2, como la creación de un bot de Amazon Lex V2, el modelado de intenciones y ranuras, la creación de versiones de bots y alias, el uso del estado de sesión y la integración de enlaces de Lambda.

**importante**  
El uso de Amazon Lex V2 está sujeto a las [condiciones de servicio de AWS](https://aws.amazon.com/service-terms/), incluidas las condiciones específicas de los servicios de AWS Machine Learning e Inteligencia Artificial.

**Topics**
+ [Creación de un bot de Amazon Lex V2 para la mensajería de Amazon Chime SDK](create-lex-bot.md)
+ [Configuración de AppInstance bots para la mensajería del SDK de Amazon Chime](appinstance-bot-setup.md)
+ [Crear una membresía de canal AppInstanceBot para una mensajería del SDK de Amazon Chime](channel-membership.md)
+ [Enviar mensajes a o AppInstanceBot para enviar mensajes del SDK de Amazon Chime](message-appinstancebot.md)
+ [Procesamiento de mensajes desde Amazon Lex para la mensajería de Amazon Chime SDK](process-from-lexv2.md)
+ [Procesar las respuestas desde y AppInstanceBot para los mensajes del SDK de Amazon Chime](process-response.md)
+ [Uso de reglas para enviar eventos a Amazon EventBridge para la mensajería del SDK de Amazon Chime](event-bridge-alerts.md)
+ [Solución de problemas AppInstanceBots configurados con los bots de Amazon Lex V2 para la mensajería del SDK de Amazon Chime](troubleshoot-lex-bots.md)

# Creación de un bot de Amazon Lex V2 para la mensajería de Amazon Chime SDK
<a name="create-lex-bot"></a>

Para usar AppInstance bots como agentes, primero debe crear un bot de Amazon Lex V2 para gestionar la interacción del diálogo en un escenario de agente inteligente. Para empezar a crear un bot de Amazon Lex V2, consulte [Introducción a Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/getting-started.html) en la *Guía para desarrolladores de Amazon Lex V2*. Para obtener información sobre la migración de un bot Amazon Lex V1 a Amazon Lex V2, consulte la [guía de migración de Amazon Lex V1 a V2](https://docs.aws.amazon.com/lexv2/latest/dg/migration.html).

**Topics**
+ [Requisitos previos](#lex-prereqs)
+ [Concesión de permisos de invocación](#invocation-perms)
+ [Creación de una instancia de bienvenida para la mensajería de Amazon Chime SDK](welcome-intent.md)
+ [Creación de versiones de bot de Amazon Lex V2 para la mensajería de Amazon Chime SDK](lex-versions.md)
+ [Creación de alias de bot de Amazon Lex V2 para la mensajería de Amazon Chime SDK](lex-aliases.md)

## Requisitos previos
<a name="lex-prereqs"></a>

Su bot Amazon Lex V2 debe cumplir los siguientes requisitos previos.
+ Debe crear el bot en una AWS región que admita los puntos de enlace de tiempo de ejecución de Amazon Lex V2.
+ Debe crear el bot en la misma AWS cuenta y región que `AppInstance` y`AppInstanceBot`.
+ El bot debe conceder permisos de invocación a la entidad principal del servicio de `messaging.chime.amazonaws.com` mediante una política basada en los recursos.
+ El bot puede modelar una intención de bienvenida. Esto permite que `AppInstanceBot` se presente y explique sus capacidades al ser miembro de un canal.
+ El bot debe tener una versión de producción y alias para poder configurar el `AppInstanceBot`.
+ El bot debe usar un idioma y una configuración regional compatibles. Para obtener más información sobre los idiomas y las configuraciones regionales, consulte [Idiomas y configuraciones regionales compatibles con Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html) en la *Guía para desarrolladores de Amazon Lex V2*.

## Concesión de permisos de invocación
<a name="invocation-perms"></a>

Para que `AppInstanceBot` invoque un bot Amazon Lex V2, la entidad principal del servicio de mensajería de Amazon Chime SDK debe tener permiso para invocar el recurso Amazon Lex Bot. Para obtener más información sobre los permisos de políticas basadas en recursos de Amazon Lex V2, consulte los ejemplos de [políticas basadas en recursos para Amazon Lex V2 en la Guía para desarrolladores de *Amazon Lex* V2](https://docs.aws.amazon.com/lexv2/latest/dg/security_iam_resource-based-policy-examples.html).

El siguiente ejemplo muestra una política basada en 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 `AppInstanceBot` se invoque un bot de Amazon Lex V2, utilice su ID. AppInstanceBot Para permitir que todos los `AppInstanceBots` que estén dentro de un `AppInstance` invoquen un bot de Amazon Lex V2, utilice un comodín. Por ejemplo:  
`arn:aws:chime:region:aws-account-id:app-instance/app-instance-id/bot/*`

# Creación de una instancia de bienvenida para la mensajería de Amazon Chime SDK
<a name="welcome-intent"></a>

Si añade una intención de bienvenida opcional a su modelo de bot de Amazon Lex V2, `AppInstanceBot` podrá presentarse y explicar sus capacidades cuando se una a un canal. La intención de bienvenida puede mostrar un mensaje o iniciar un diálogo con los miembros del canal. El nombre de la intención de bienvenida puede variar y tú lo defines en AppInstanceBot la configuración.

Para obtener más información sobre las intenciones, consulte [Adición de intenciones](https://docs.aws.amazon.com/lexv2/latest/dg/build-intents.html) en la *Guía para desarrolladores de Amazon Lex V2*.

# Creación de versiones de bot de Amazon Lex V2 para la mensajería de Amazon Chime SDK
<a name="lex-versions"></a>

Cuando crea un bot Amazon Lex V2, solo crea una versión *preliminar*. El borrador es una copia funcional del bot que puede actualizar. De forma predeterminada, la versión preliminar está asociada a un alias llamado `TestBotAlias`, y solo debe usar el borrador del bot para realizar pruebas manuales.

Una vez que termine de modelar el diálogo y crear el bot de borrador, cree una o más *versiones*, instantáneas numeradas del borrador del bot Lex. Las versiones le permiten controlar la implementación que utilizan las aplicaciones de sus clientes. Por ejemplo, puede publicar versiones para utilizarlas en diferentes partes de su flujo de trabajo, como el desarrollo, la implementación beta y la producción.

Para obtener más información sobre el control de versiones de los bots Lex, consulte [Creación de versiones](https://docs.aws.amazon.com/lexv2/latest/dg/versions.html) en la *Guía para desarrolladores de Amazon Lex V2*.

# Creación de alias de bot de Amazon Lex V2 para la mensajería de Amazon Chime SDK
<a name="lex-aliases"></a>

Una vez que haya creado una o más versiones de un bot de Amazon Lex V2, creará los *alias*. Los alias actúan como indicadores con nombre de las versiones de un bot de Amazon Lex V2. Por ejemplo, solo puede asociar un alias a una versión a la vez.

Para obtener más información sobre los alias de bots de Lex, consulte [Creación de alias](https://docs.aws.amazon.com/lexv2/latest/dg/aliases.html) en la *Guía del desarrollador de Lex V2*.

# Configuración de AppInstance bots para la mensajería del SDK de Amazon Chime
<a name="appinstance-bot-setup"></a>

Una vez que tenga un bot de Amazon Lex V2 con un modelo, una versión y un alias, utilizará la mensajería del SDK de Amazon Chime APIs o la CLI para crear un. AppInstanceBot Para obtener más información sobre el uso de APIs, consulte la documentación de la [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.

**nota**  
El atributo de `InvokedBy` se utiliza para configurar el comportamiento de interacción del diálogo de `AppInstanceBot`. Puede configurar los tipos de mensajes que activan un bot, como los mensajes estándar o los mensajes segmentados.

El siguiente ejemplo muestra cómo usar la AWS CLI para crear una AppInstanceBot que puedan invocar todos los `MENTIONS` mensajes estándar y los mensajes de destino.

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

# Crear una membresía de canal AppInstanceBot para una mensajería del SDK de Amazon Chime
<a name="channel-membership"></a>

Una vez que lo AppInstanceBot crees, lo agregas como miembro a un canal nuevo o existente. Para obtener más información, consulte [CreateChannel](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html)la [ CreateChannelMembership](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html)documentación de la *API de mensajería del SDK de Amazon Chime*.

El siguiente ejemplo muestra cómo usar la AWS CLI para crear un canal y agregar `AppInstanceBot` uno como miembro.

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

El siguiente ejemplo muestra cómo usar la AWS CLI para agregar una `AppInstanceBot` a un 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
```

# Enviar mensajes a o AppInstanceBot para enviar mensajes del SDK de Amazon Chime
<a name="message-appinstancebot"></a>

Usas la [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 mensajes a un AppInstanceBot. Envías los mensajes al canal del que AppInstanceBot es miembro. Si el [modelo de comprensión del lenguaje natural](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html) reconoce el contenido del mensaje y suscita una intención de Amazon Lex, AppInstanceBot responde con un mensaje de canal e inicia un diálogo.

También puede enviar mensajes segmentados a un miembro del canal, que puede ser un o un AppInstanceUser . AppInstanceBot Solo el destinatario y el remitente pueden ver los mensajes segmentados. Solo los usuarios que pueden ver los mensajes segmentados pueden realizar acciones al respecto. Sin embargo, los administradores pueden eliminar los mensajes segmentados que no pueden ver. 

El siguiente ejemplo muestra cómo usar la AWS CLI para enviar un mensaje 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
```

# Procesamiento de mensajes desde Amazon Lex para la mensajería de Amazon Chime SDK
<a name="process-from-lexv2"></a>

Al enviar mensajes a Amazon Lex, la mensajería de Amazon Chime SDK rellena la `CHIME.channel.arn` y `CHIME.sender.arn` con la información del ARN del remitente y del canal como atributos de solicitud. Puede usar los atributos para determinar quién envió un mensaje y el canal al que pertenece el remitente. Para obtener más información, consulte [Habilitación de la lógica personalizada con funciones de AWS Lambda](https://docs.aws.amazon.com/lexv2/latest/dg/lambda.html) en la Guía para *desarrolladores de Amazon Lex*.

# Procesar las respuestas desde y AppInstanceBot para los mensajes del SDK de Amazon Chime
<a name="process-response"></a>

Cuando un usuario envía un mensaje, AppInstanceBot responde con un mensaje de canal. Puede hacer una lista de los mensajes del canal para obtener la respuesta del bot. 

En el siguiente ejemplo, se muestra cómo usar la CLI para enumerar mensajes de canal.

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

Las respuestas correctas de un usuario AppInstanceBot pueden tener el siguiente 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**  
El campo `Content` contiene una lista de mensajes que se originan en el bot Amazon Lex V2. Para obtener más información sobre estos mensajes, consulte los [mensajes](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html#lexv2-runtime_RecognizeText-response-messages) de la API `RecognizeText` de Amazon Lex V2.  
En el siguiente ejemplo, se muestra cómo utilizar el campo `Content` en un mensaje de bienvenida.  

```
{
    "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"
                    }
                ]
            }
        }
    ]
}
```
En el caso de una respuesta de error, el campo Contenido contiene un mensaje de error y un código con el siguiente formato:  

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

**ContentType**  
`ContentType` se refiere al tipo de carga útil que contiene el campo `Content` y debe marcarse para analizar el campo `Content`.   
El bot Lex V2 usa un `ContentType` diferente.
`ContentType` está configurado en `application/amz-chime-lex-msgs` para una respuesta correcta o `application/amz-chime-lex-error` para una respuesta fallida.

**MessageAttribute**  
A *MessageAttribute*es un mapa de claves de cadena a valores de cadena. Una respuesta de un `AppInstanceBot` contiene los siguientes atributos de mensaje asignados a una respuesta de un bot de Amazon Lex.   
+ **CHIME.LEX.sessionState.intent.name**: el nombre de la intención del bot Lex que la solicitud ha intentado cumplir.
+ **Chime.lex.sessionState.Intent.State**: el estado actual de la intención. Entre los valores posibles se incluyen: `Fulfilled`, `InProgress` y `Failed`. 
+ **chime.lex.sessionState. originatingRequestId** — Un identificador único para una solicitud específica al bot Amazon Lex. Se establece en el mensaje `MessageId` del usuario de origen que activó el AppInstanceBot.
+ **CHIME.LEX.sessionState.sessionId**: un identificador único para una conversación entre el usuario y el bot. Cuando un usuario inicia una conversación con un bot, Amazon Lex crea una sesión.
Para obtener más información sobre las sesiones y los estados de las sesiones de 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) en la *referencia de la API de Amazon Lex* y [Administración de sesiones](https://docs.aws.amazon.com/lexv2/latest/dg/using-sessions.html) en la *Guía para desarrolladores de Amazon Lex V2*.  
Para obtener más información sobre los atributos que devuelve Amazon Lex V2, consulte [Amazon Lex Runtime V2](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_Operations_Amazon_Lex_Runtime_V2.html) APIs.

# Uso de reglas para enviar eventos a Amazon EventBridge para la mensajería del SDK de Amazon Chime
<a name="event-bridge-alerts"></a>

El SDK de Amazon Chime muestra EventBridge eventos cuando un error le impide invocar el bot Amazon Lex V2. Puede crear EventBridge reglas que reconozcan esos eventos y tomar medidas automáticamente cuando la regla coincida. Para obtener más información, consulta [ EventBridge las normas de Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html) en la *Guía del EventBridge usuario de Amazon*.

En el siguiente ejemplo, se muestra un evento típico de fallo.

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

# Solución de problemas AppInstanceBots configurados con los bots de Amazon Lex V2 para la mensajería del SDK de Amazon Chime
<a name="troubleshoot-lex-bots"></a>

En los siguientes temas se explica cómo solucionar problemas comunes con. AppInstanceBots

## Búsqueda de errores de Amazon Lex V2
<a name="find-lex-failures"></a>

La mensajería del SDK de Amazon Chime muestra [ EventBridge eventos de Amazon](https://docs.aws.amazon.com/chime-sdk/latest/dg/event-bridge-alerts.html) cuando un error impide que se invoque el bot Amazon Lex V2. Para obtener más información sobre la configuración de las reglas y los objetivos de las notificaciones, consulta [Cómo empezar con Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-get-started.html) en la *Guía del EventBridge usuario de Amazon*.

Si recibe EventBridge eventos en AWS CloudWatch Logs, puede usar AWS CloudWatch Logs Insights para consultar EventBridge eventos en función del tipo de detalle de los mensajes del SDK de Amazon Chime. En `failureReason` se indica la causa del error. 

En el siguiente ejemplo, se muestra una consulta típica.

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

Si la mensajería de Amazon Chime SDK puede invocar su bot Amazon Lex V2, el SDK envía mensajes de `CONTROL` con un mensaje de error.

## Solución de errores de permisos de bots de Amazon Lex V2
<a name="lex-permission-errors"></a>

Para AppInstanceBot invocar un bot Amazon Lex V2, el director del servicio de mensajería del SDK de Amazon Chime debe tener permiso para invocar el recurso del bot Amazon Lex V2. Además, asegúrese `AWS:SourceArn` de que la condición de la política de recursos coincida con el ARN del. AppInstanceBot

Para obtener más información sobre la configuración y AppInstanceBot la invocación de un bot de Amazon Lex V2[Creación de un bot de Amazon Lex V2 para la mensajería de Amazon Chime SDK](create-lex-bot.md), consulte la sección anterior.

## Solución de problemas de limitación de bots de Amazon Lex V2
<a name="lex-throttling"></a>

Amazon Lex tiene una Service Quota para el número máximo de conversaciones simultáneas en modo texto por alias de bot. Puede ponerse en contacto con el equipo de servicio de Amazon Lex para obtener más cuotas. Para obtener más información, consulte las [directrices y cuotas de Amazon Lex](https://docs.aws.amazon.com/lexv2/latest/dg/quotas.html) en la *Guía para desarrolladores de Amazon Lex*.