Botframework-solutions: No se puede finalizar correctamente la habilidad cuando el usuario se cancela cuando la habilidad se inicia desde el cuadro de diálogo secundario en VA

Creado en 1 jun. 2020  ·  16Comentarios  ·  Fuente: microsoft/botframework-solutions

¿Qué proyecto se ve afectado?

Asistente virtual

¿En qué idioma es esto?

Mecanografiado

¿Lo que sucede?

Cuando inicia un diálogo, luego inicia una habilidad desde ese diálogo, no se registra correctamente en la pila. Cuando el usuario usa la interrupción "cancelar", la habilidad nunca recibe el final de la conversación para reiniciar.

¿Cuáles son los pasos para reproducir este problema?

Crea una VA y una habilidad. inicie la habilidad desde el "diálogo de abordaje del VA. Intente cancelar la habilidad usando la interrupción y verifique si la habilidad recibe el final de la conversación

¿Qué esperabas que sucediera?

¿Puede compartir algún registro, salida de error, etc.?

La pila de diálogos de la habilidad se inició en un subdiálogo
[{id: 'MainDialog',
estado: {opciones: {}, valores: [Objeto], stepIndex: 1}},
{id: 'TextPrompt', estado: {opciones: [Objeto], estado: {}}},
{id: 'TransferDialog2',
estado: {diálogos: [Objeto]},
versión: '-43530585'}]

pila de diálogo de habilidades comenzada desde el diálogo principal
[{id: 'MainDialog',
estado: {opciones: {}, valores: [Objeto], stepIndex: 2}},
{id: 'dlpskill', estado: {}}]

¿Alguna captura de pantalla o contexto adicional?

Needs Triage Bug

Comentario más útil

Todos 16 comentarios

¡Gracias @ tomSauret847 por informar de este problema! Tan pronto como tengamos alguna actualización, te responderemos 😊.

¡Hola @ tomSauret847! No pudimos intentar reproducir este problema.

Tenemos algunas preguntas sobre sus pasos de reproducción.

  • ¿Está utilizando el [email protected] ?
  • ¿Está activando la habilidad enviando el enunciado durante el diálogo de
  • ¿Ha actualizado la VA para transmitir la intención a la Habilidad? Si es así, ¿qué modificaciones le ha hecho?
  • ¿Qué quieres decir con TransferDialog2 ? ¿Es un sinónimo de onboardingDialog ?

Notamos que hay una validación en el método interruptDialog del MainDialog del VA, que solo cambia a otra Skill si el diálogo actual pertenece a una Skill.
En el caso de onboardingDialog esto devuelve falso, por lo que no se interrumpe para iniciar la muestra de habilidad.

Este es nuestro entorno:

Realizamos los siguientes pasos para reproducir el problema:

  1. Implementar asistente virtual y habilidad
  2. Conecte el asistente virtual a la habilidad
  3. Ejecute ambos bots en Bot Emulator
  4. Envíe el enunciado de una habilidad durante el onboardingDialog del VA
  5. La habilidad no se inicializó porque onboardingDialog no se terminó

image

¡Gracias!

Actualmente tenemos nuestra transferencia de agente en vivo configurada como una habilidad para poder escalar a un agente en vivo si el bot no puede resolver el problema de los clientes (TransferDialog2). Necesitamos realizar alguna validación para asegurarnos de que el cliente sea transferido a la cola de chat correcta, por lo que lo hemos integrado en un cuadro de diálogo similar al cuadro de diálogo de incorporación. Llamo a la habilidad agenttransfer con el siguiente código en transferDialog.

    const identifiedSkill: IEnhancedBotFrameworkSkill | undefined = this.skillsConfig.skills.get('agenttransfer');
    if (identifiedSkill !== undefined) {
        await this.activeSkillProperty.set(sc.context, identifiedSkill);
        return sc.beginDialog('agenttransfer', skillDialogArgs);

El VA iniciará la habilidad y reenviará todos los mensajes de los clientes a la habilidad, pero si el cliente activa el "cuadro de diálogo Cancelar", interrumpa la VA no enviará el final de la conversación a la habilidad para permitirnos limpiar y finalizar la habilidad. Reprodujo los pasos pero no canceló la habilidad en su reproducción. Ahí es donde nuestro problema es poder recibir el EOC en la habilidad de limpiar los recursos usados ​​y cerrarlos.

Estoy usando un VA de TypeScript
Habilidad TypeScript
He actualizado ambos en función de los cambios que se publicaron en la rama "siguiente" del repositorio para asegurarme de que estén actualizados.
La habilidad se activa y funciona correctamente, simplemente no recibe la EOC cuando el cliente elige cancelar todos los diálogos activos.

Gracias @ tomSauret847 por toda la información 😊.
Continuaremos reproduciendo el problema y le informaremos de cualquier actualización.

@ tomSauret847 , queremos confirmarle que entendimos correctamente el problema.

Con base en lo que dijo en su último comentario, trabajaremos en recrear el siguiente escenario:

  1. Crear una muestra de asistente virtual
  2. Crear una muestra de habilidad
  3. Modifique onboardingDialog del VA para que llame al ejemplo de habilidad. Basaremos nuestras modificaciones en el fragmento compartido.
  4. Enviar cancelar una vez que la muestra de habilidad haya comenzado
  5. La cancelación de la muestra de habilidad debería fallar

Así es como se entiende su flujo de trabajo.
image

Gracias @VictorGrycuk Ese es el flujo de trabajo correcto del escenario que estamos implementando. Podemos hacer que la habilidad funcione correctamente durante la conversación, pero cuando el cliente cancela, la habilidad no se restablecerá ya que nunca recibe el fin de la conversación.

¿Fue útil esta página
0 / 5 - 0 calificaciones