Preguntas más frecuentes generales de Bot Framework

En este artículo se responden las preguntas generales más frecuentes.

Se aplica a: SDK v4

¿Por qué la actividad de escritura no hace nada?

Algunos canales no admiten actualizaciones de escritura transitorias en su cliente.

¿Cuál es la diferencia entre la biblioteca del conector y la biblioteca builder en el SDK?

La biblioteca connector es la exposición de la API REST. La biblioteca Builder agrega el modelo de programación de diálogos conversacionales y otras características, como avisos, cascadas, cadenas y finalización de formularios guiados. La biblioteca Builder también proporciona acceso a Servicios de Azure AI, como la comprensión del lenguaje natural.

¿Cómo se relacionan los mensajes de usuario con las llamadas de método HTTPS?

Cuando el usuario envía un mensaje a través de un canal, el servicio web de Bot Framework emitirá una solicitud HTTPS POST al punto de conexión de servicio web del bot. El bot puede enviar cero, uno o varios mensajes al usuario en ese canal mediante la emisión de una solicitud HTTPS POST independiente a Bot Framework para cada mensaje que envía.

¿Cuál es la diferencia entre "proactivo" y "reactivo"?

Desde la perspectiva del bot, "reactivo" significa que el usuario inicia la conversación mediante el envío de un mensaje al bot y el bot reacciona respondiendo a ese mensaje. En cambio, "proactivo" significa que el bot inicia la conversación enviando el primer mensaje al usuario. Por ejemplo, un bot puede enviar un mensaje proactivo para notificar a un usuario cuándo expira un temporizador o se produce un evento.

¿Cómo puedo enviar mensajes proactivos al usuario?

Para ver ejemplos que muestran cómo enviar mensajes proactivos, consulte los ejemplos de C# V4 y los ejemplos deNode.js V4 en el repositorio de BotBuilder-Samples en GitHub.

¿Qué es un ETag? ¿Cómo se relaciona con el almacenamiento del contenedor de datos del bot?

Una ETag es un mecanismo para el control de simultaneidad optimista. El almacenamiento de la bolsa de datos del bot usa ETags para evitar actualizaciones conflictivas de los datos. Un error de ETag con el código de estado HTTP 412 "Error de condición previa" indica que había varios mensajes recibidos en paralelo antes de que el bot pudiera finalizar su primera operación. La pila de diálogos y el estado se almacenan en los contenedores de datos del bot. Por ejemplo, es posible que vea el error ETag "Precondition Failed" si el bot sigue procesando un mensaje anterior cuando recibe un mensaje nuevo de esa conversación.

¿Qué es la limitación de frecuencia?

El servicio Bot Framework debe protegerse a sí mismo y a sus clientes frente a patrones de llamadas abusivos (por ejemplo, un ataque por denegación de servicio), de modo que ningún bot pueda afectar negativamente al rendimiento de otros bots. Para lograr este tipo de protección, se han agregado límites de velocidad (también conocidos como limitaciones) a los puntos de conexión. Al aplicar un límite de velocidad, podemos restringir la frecuencia con la que un cliente o bot puede realizar una llamada específica. Por ejemplo: con la limitación de velocidad habilitada, si un bot quería publicar un gran número de actividades, tendría que espaciarlos durante un período de tiempo. El propósito de la limitación de velocidad no es limitar el volumen total de un bot. Está diseñado para evitar el abuso de la infraestructura conversacional que no sigue patrones de conversación humanos. Por ejemplo, llenar dos conversaciones con más contenido del que dos seres humanos podrían consumir jamás.

¿Cuáles son los límites de velocidad?

Estamos ajustando continuamente los límites de velocidad para que sean lo más flexibles posible, al mismo tiempo que protegemos nuestro servicio y nuestros usuarios. Dado que los umbrales cambiarán ocasionalmente, no estamos publicando los números en este momento. Por último, si aloja el bot en App Service, el bot está sujeto a las limitaciones de App Service. Para obtener más información, consulte Resumen del Acuerdo de Nivel de Servicio para Azure servicios Si se ve afectado por la limitación de velocidad, no dude en ponerse en contacto con nosotros en bf-reports@microsoft.com.

¿Cuál es el límite de tamaño de un archivo transferido mediante canales?

Algunos canales tienen límites en el tamaño o el tipo de archivos que se pueden enviar. Por ejemplo, Direct Line limita las cargas de actividad a 4 194 304 bytes (4 MB), mientras que Bot Framework Emulator no tiene límite. Estos límites se imponen por el canal. Si envía un mensaje que supera este límite, puede obtener un error, como: La longitud del contenido de la solicitud superó el límite de 4.194.304 bytes. Sin embargo, puede proporcionar un enlace al recurso como archivo adjunto de Internet. Para obtener más información sobre el envío de datos adjuntos, vea cómo agregar elementos multimedia a los mensajes.

¿Cómo sabré si me afecta la limitación de velocidad?

Es poco probable que experimente una limitación de volumen, incluso en grandes volúmenes. La mayoría de las limitaciones de velocidad solo se producirían debido al envío masivo de actividades (desde un bot o desde un cliente), pruebas de carga extrema o un error. Cuando se limita una solicitud, se devuelve una respuesta HTTP 429 (demasiadas solicitudes) junto con un encabezado Retry-After que indica el tiempo (en segundos) que se debe esperar para que el reintento de la solicitud se realice correctamente. Para recopilar esta información, habilite el análisis del bot a través de Aplicación de Azure Insights. O bien, puede agregar código en el bot para registrar mensajes.

¿Cómo se produce la limitación de velocidad?

La limitación de velocidad se debe a cualquiera de las condiciones siguientes:

  • Un bot envía mensajes con demasiada frecuencia
  • Un cliente de un bot envía mensajes con demasiada frecuencia
  • Direct Line clientes solicitan un nuevo socket web con demasiada frecuencia

¿Cómo implementar la transferencia a humano?

En ocasiones, es necesario transferir (entregar) una conversación de un bot a un ser humano, como cuando el bot no entiende al usuario o la solicitud no se puede automatizar. En estos casos, el bot proporciona una transición a los seres humanos. Bot Framework SDK admite la entrega a un usuario. Hay algunos tipos de eventos para indicar las operaciones de entrega. Estos eventos se intercambian entre un bot y un centro de agentes, también denominado centro de involucración. Este centro de agentes se define como una aplicación o un sistema que permite a los agentes, normalmente humanos, recibir y controlar solicitudes de usuarios y solicitudes de escalación de bots. Para obtener información detallada, consulte el artículo Transición de conversaciones de bot a humano .