Prueba y depuración con el emulador

SE APLICA A: SDK v4

Bot Framework Emulator es una aplicación de escritorio que permite a los desarrolladores de bots probar y depurar bots, ya sea de forma 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. Puede probar el bot mediante el emulador incluso si aún no lo ha creado con Azure Bot Service o lo ha configurado para ejecutarse en cualquier canal.

Nota:

Los SDK de Python y Java de Bot Framework se están retirando con la compatibilidad final a largo plazo que finaliza en noviembre de 2023. Solo se realizarán correcciones de errores y seguridad críticas en este repositorio. Los bots existentes creados con estos SDK seguirán funcionando.

Para el nuevo desarrollo de bots, considere la posibilidad de usar Power Virtual Agents. Para más información, consulte El futuro de la compilación de bots.

Prerrequisitos

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
    
  • Copie el número de puerto que se indica la línea situada antes de Application started. Press CTRL+C to shut down. (Aplicación iniciada. Presione Ctrl+C para apagar).

    Número de puerto de C#

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, el emulador usará las variables HTTP_PROXY de entorno configuradas y HTTPS_PROXY, que especifican la ruta de dirección URL del proxy para las solicitudes HTTP y HTTPs, respectivamente.

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

Para omitir la HTTP_PROXY configuración y HTTPS_PROXY y permitir que el emulador se conecte a localhost, en el equipo local debe definir la siguiente variable de entorno:

NO_PROXY=localhost

Configuración del emulador para la autenticación

Si un bot requiere autenticación, mostrar un cuadro de diálogo de inicio de sesión, debe configurar el emulador 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 el Emulador, seleccione Configuración (el icono de engranaje) en el panel izquierdo.
  3. Habilite Bypass ngrok para las direcciones locales.
  4. Habilite Usar un código de verificación de inicio de sesión para OAuthCards.
  5. Seleccione Guardar.

Al seleccionar el botón de inicio de sesión que muestra el bot, se generará un código de validación. Escribirá el código 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 el Emulador, seleccione Configuración (el icono de engranaje) en el panel izquierdo.
  3. Escriba la ruta de acceso local a ngrok. Para obtener más información sobre ngrok, consulte ngrok.
  4. Habilite Ejecutar ngrok cuando se inicie el emulador.
  5. Habilite Use version 1.0 authentication tokens (Usar tokens de autenticación de la versión 1.0).
  6. Seleccione Guardar.

Al seleccionar el botón de inicio de sesión que muestra el bot, se le pedirá que escriba sus credenciales. Se genera un token de autenticación. Después, puede realizar las operaciones permitidas.

Ventana de inicio del emulador

Para conectarse a un bot que se ejecuta localmente, seleccione 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

Cuadro de diálogo abrir un bot del emulador

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 ha creado el bot con Azure Bot Service, las credenciales están disponibles en el App Service del bot, en la sección Configuración:> configuración. Si no conoce los valores, puede quitarlos del archivo de configuración del bot en ejecución local y, a continuación, ejecutar el bot en el emulador. Si el bot no se ejecuta con esta configuración, tampoco es necesario ejecutar el emulador con la configuración.

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

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

Para más información, consulte Creación de una aplicación de proveedor de identidades de Azure AD y Registro de una nueva aplicación mediante el Azure Portal.

Ver actividades detalladas de mensajes 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. Puede inspeccionar las actividades enviadas desde el usuario y las actividades con las que responde el bot.

JSON de actividad de mensaje del emulador

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 QnA Maker se retirará el 31 de marzo de 2025. A partir del 1 de octubre de 2022, no podrá crear nuevos recursos ni 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 Azure Cognitive Service for Language.

La respuesta a preguntas personalizada, una característica de Azure Cognitive Service for Language, es la versión actualizada del servicio QnA Maker. Para más información sobre la compatibilidad con preguntas y respuestas en Bot Framework SDK, consulte Reconocimiento del lenguaje natural.

Nota:

Language Understanding (LUIS) se retirará el 1 de octubre de 2025. A partir del 1 de abril de 2023, no podrá crear nuevos recursos de LUIS. Ahora hay disponible una versión más reciente de Language Understanding como parte de Azure Cognitive Service for Language.

Conversational Language Understanding (CLU), una característica de Azure Cognitive Service for Language, es la versión actualizada de LUIS. Para obtener más información sobre la compatibilidad con Language Understanding en Bot Framework SDK, consulte Comprensión del lenguaje natural.

Con el emulador, también puede inspeccionar las respuestas JSON 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 nueva herramienta también proporciona características para actualizar los servicios de lenguaje directamente desde el emulador.

Inspector de LUIS

Con un servicio de LUIS conectado, el vínculo de seguimiento especifica El seguimiento de Luis. Cuando se selecciona, se muestra la respuesta sin procesar del servicio luis, que incluye intenciones y entidades, junto con sus puntuaciones especificadas. Puede reasignar intenciones para las expresiones de usuario.

Inspector de QnA

Con un servicio QnA Maker conectado, el registro mostrará el seguimiento de QnA. Cuando se selecciona, puede obtener una vista previa del par de preguntas y respuestas asociado a 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

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

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

    Inicio de sesión del emulador con Azure

  2. En la pantalla de bienvenida , seleccione Iniciar sesión con su cuenta de Azure. Opcionalmente, puede hacer que emulator mantenga la sesión iniciada en los reinicios de la aplicación emulador.

    Correcto el inicio de sesión de Azure del emulador

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 el Emulador, seleccione Configuración (el icono de engranaje) en el panel izquierdo.

    Botón Configuración del emulador

  2. En Recopilación de datos, anule la selección de ayuda para mejorar el emulador, ya que nos permite recopilar datos de uso.

  3. Seleccione Guardar.

Si cambia de opinión, puede 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.