Prueba y depura con Emulator

SE APLICA A: SDK v4

Bot Framework Emulator es una aplicación de escritorio que permite que los desarrolladores de bots prueben y depuren bots de manera local o remota. Con el emulador, puede chatear con el bot e inspeccionar los mensajes que este envía y recibe. El emulador muestra los mensajes tal como aparecerían en la interfaz de usuario de un chat web y registra las respuestas y las solicitudes JSON a medida que intercambia mensajes con su bot. Antes de implementar el bot en la nube, ejecútelo localmente y pruébelo con el emulador. Puedes probar el bot con Emulator incluso si todavía no lo has creado con el servicio de Bot de Azure AI ni lo has configurado para que se ejecute en ningún canal.

Nota:

Los SDK de JavaScript, C# y Python de Bot Framework seguirán siendo compatibles, pero el SDK de Java se va a retirar con la compatibilidad final a largo plazo que finaliza en noviembre de 2023. Solo se realizarán correcciones críticas de seguridad y errores dentro de este repositorio.

Los bots existentes creados con el SDK de Java seguirán funcionando.

Para la creación de nuevos bots, considera el uso de Power Virtual Agents y lee sobre cómo elegir la solución de bot de chat adecuada.

Para obtener más información, consulta El futuro de la creación de bots.

Requisitos previos

Ejecución local de un bot

Antes de conectar el bot a Bot Framework Emulator, debe ejecutar el bot localmente. Puede usar Visual Studio o Visual Studio Code para ejecutar el bot, o bien usar la línea de comandos. Para ejecutar un bot mediante la línea de comandos, haga lo siguiente:

  • En el símbolo del sistema, cambie el directorio al del proyecto del bot.

  • Para iniciar el bot, ejecute el siguiente comando:

    dotnet run
    
  • Copia el número de puerto en la línea antes de Aplicación iniciada. Presionar CTRL+C para apagar.

    C# port number

En este momento, el bot se ejecuta de forma local.

Una conexión a un bot que se ejecuta en un host local.

Configuración de los valores de proxy

Al desarrollar detrás de un proxy corporativo, Emulator usará las variables de entorno configuradas HTTP_PROXY y HTTPS_PROXY, que especifican la ruta de dirección URL del proxy para las solicitudes HTTP y HTTPs respectivamente.

Si te conectas a un bot que se ejecuta en localhost, Emulator primero intentará enrutar a través del proxy antes de conectarse a localhost. Normalmente, el proxy bloqueará la conexión a menos que especifiques que se debe omitir para localhost.

Para omitir la configuración HTTP_PROXY y HTTPS_PROXY y permitir que Emulator se conecte a localhost, en la máquina local debes definir la siguiente variable de entorno:

NO_PROXY=localhost

Configuración de Emulator para autenticación

Si un bot requiere autenticación y muestra un cuadro de diálogo de inicio de sesión, debes configurar Emulator tal y como se muestra a continuación.

Uso de un código de verificación de inicio de sesión

  1. Inicie el emulador.
  2. En Emulator, selecciona Configuración (el icono de engranaje) en el panel izquierdo.
  3. Habilita Bypass ngrok para las direcciones locales.
  4. Activa la casilla Usar un código de verificación de inicio de sesión para OAuthCards.
  5. Seleccione Guardar.

Al hacer clic en el botón de inicio de sesión que muestra el bot, se generará un código de validación. El código se escribe en el cuadro de chat de entrada del bot para que tenga lugar la autenticación. Después, puede realizar las operaciones permitidas.

También tiene la opción de realizar los pasos que se describen a continuación.

Uso de tokens de autenticación

  1. Inicie el emulador.
  2. En Emulator, selecciona Configuración (el icono de engranaje) en el panel izquierdo.
  3. Escribe la ruta de acceso local a ngrok. Para obtener más información sobre ngrok, consulta ngrok.
  4. Habilita Ejecutar ngrok cuando se inicie Emulator.
  5. Habilita Usar tokens de autenticación de la versión 1.0.
  6. Seleccione Guardar.

Al hacer clic en el botón de inicio de sesión que muestra el bot, se te pedirá que escribas tus credenciales. Se genera un token de autenticación. Después, puede realizar las operaciones permitidas.

Emulator startup window

Para conectarte a un bot que se ejecuta localmente, selecciona Abrir bot. Agregue el número de puerto que copió anteriormente en la siguiente dirección URL y pegue la dirección URL actualizada en la barra de direcciones URL del bot:

http://localhost:<port number>/api/messages

Emulator open-a-bot dialog

Si el bot se está ejecutando con credenciales de una cuenta Microsoft (MSA), escriba también estas credenciales.

Usar credenciales de bot

Cuando abra el bot, establezca el id. de aplicación de Microsoft y la contraseña de aplicación de Microsoft si su bot se ejecuta con credenciales. Si has creado tu bot con el servicio de Bot de Azure AI, las credenciales están disponibles en la App Service del bot, en la sección Ajustes > Configuración. Si no conoces los valores, puedes quitarlos del archivo de configuración del bot que se ejecuta localmente y luego ejecutar el bot en Emulator. Si el bot no se ejecuta con esta configuración, tampoco es necesario ejecutar Emulator con la configuración.

Al crear una aplicación de proveedor de identidades de AD, recuerde lo siguiente:

  • Cuando los tipos de cuenta admitidos se establecen en un solo inquilino, si se usa una suscripción personal en lugar de una cuenta de Microsoft, Emulator emitirá el error: El identificador de aplicación de Microsoft o la contraseña de la app de Microsoft del bot es incorrecto.
  • En este caso, los tipos de cuenta admitidos se deben establecer en Cuentas en cualquier directorio organizativo (cualquier directorio de Microsoft Entra ID: multiinquilino) y cuentas de Microsoft personales (como Xbox).

Para obtener más información, consulta Creación de una aplicación de proveedor de identidades de Microsoft Entra ID y Registro de una nueva aplicación mediante Azure Portal.

Vista detallada de las actividades de mensaje con el inspector

Envíe un mensaje al bot y este debería responder. Puede seleccionar la burbuja de mensaje dentro de la ventana de la conversación e inspeccionar la actividad JSON sin formato con la característica INSPECTOR que se encuentra a la derecha de la ventana. Cuando se selecciona, la burbuja de mensaje cambia a color amarillo y el objeto JSON de la actividad se mostrará a la izquierda de la ventana del chat. Esta información de JSON incluye metadatos de clave que incluyen el identificador de canal, el tipo de actividad, el identificador de la conversación, el mensaje de texto, la dirección URL del punto de conexión, etc. Puedes inspeccionar las actividades de inspección enviadas desde el usuario y las actividades con las que responde el bot.

Emulator message activity JSON

Sugerencia

Para depurar los cambios de estado en un bot conectado a un canal, puede agregar middleware de inspección al bot.

Inspección de servicios

Nota:

Azure AI QnA Maker se retirará el 31 de marzo de 2025. A partir del 1 de octubre de 2022, no podrá crear nuevos recursos o bases de conocimiento de QnA Maker. Ya hay disponible una versión más reciente de la funcionalidad de preguntas y respuestas como parte de Lenguaje de Azure AI.

La respuesta a preguntas personalizadas, una característica de Lenguaje de Azure AI, es la versión actualizada del servicio QnA Maker. Para obtener más información sobre la compatibilidad con preguntas y respuestas en Bot Framework SDK, consulte Comprensión del lenguaje natural.

Nota:

Reconocimiento del lenguaje (LUIS) se retirará el 1 de octubre de 2025. A partir del 1 de abril de 2023, no podrás crear nuevos recursos de LUIS. Hay disponible una versión más reciente de las funcionalidades de reconocimiento del lenguaje como parte del Lenguaje de Azure AI.

Reconocimiento del lenguaje conversacional (CLU), una característica del lenguaje de Azure AI, es la versión actualizada de LUIS. Para obtener más información sobre la compatibilidad con reconocimiento del lenguaje en Bot Framework SDK, consulte reconocimiento natural del lenguaje.

Con Emulator también puedes inspeccionar las respuestas de JSON provenientes de LUIS y QnA Maker. Mediante un bot con un servicio de lenguaje conectado, puede seleccionar trace en la ventana LOG (Registro) en la esquina inferior derecha. Esta herramienta nueva también proporciona características para actualizar los servicios de lenguaje directamente desde Emulator.

LUIS Inspector

Con un servicio de LUIS conectado, el vínculo de seguimiento especifica el seguimiento de LUIS. Cuando se seleccione, se mostrará la respuesta sin formato proveniente del servicio de LUIS, que incluye intenciones y entidades junto con sus puntuaciones especificadas. Puedes reasignar intenciones para las expresiones de usuario.

QnA Inspector

Con un servicio QnA Maker conectado, el registro mostrará el seguimiento de QnA. Cuando esté seleccionado, podrás obtener una vista previa del par de pregunta y respuesta asociado con esa actividad, junto con una puntuación de confianza. Desde aquí, puede agregar frases de preguntas alternativas para una respuesta.

Inicio de sesión en Azure

Puedes usar Emulator para iniciar sesión en la cuenta de Azure. Esto es útil para agregar y administrar los servicios de los que depende el bot. Para iniciar sesión:

  1. Selecciona Archivo y, a continuación, Inicie sesión con Azure.

    Emulator sign in with Azure

  2. En la pantalla de Inicio de sesión, selecciona Iniciar sesión con mi cuenta de Azure. Puedes hacer que Emulator conserve tu sesión iniciada entre varios reinicios de esta aplicación.

    Emulator Azure sign-in success

Deshabilitación de la recopilación de datos

Si decide que ya no desea permitir que Emulator recopile datos de uso, puede deshabilitar fácilmente la recopilación de datos siguiendo estos pasos:

  1. En Emulator, selecciona Configuración (el icono de engranaje) en el panel izquierdo.

    Emulator settings button

  2. En Recopilación de datos, desactiva la casilla denominada Ayúdanos a mejorar Emulator permitiéndonos recopilar datos de uso.

  3. Seleccione Guardar.

Si cambias de opinión, puedes volver a habilitar la recopilación de datos más adelante.

Recursos adicionales

Bot Framework Emulator es de código abierto. También puede colaborar en el desarrollo y enviar errores y sugerencias.

Para solucionar el problema, consulte cómo solucionar problemas generales y otros artículos de solución de problemas en esa sección.

Paso siguiente

Use el middleware de inspección para depurar un bot conectado a un canal.