Asistente virtual
Mecanografiado
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.
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
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: {}}]
¡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.
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:
onboardingDialog
del VAonboardingDialog
no se terminó¡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:
onboardingDialog
del VA para que llame al ejemplo de habilidad. Basaremos nuestras modificaciones en el fragmento compartido.Así es como se entiende su flujo de trabajo.
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.
Comentario más útil