.. para un servicio de ayuda telefónica. Por lo general, el cliente llama por teléfono y el operador de ayuda detallará una serie de preguntas y pares de respuestas para refinar el problema del cliente y, finalmente, llegar a una solución.
¿Hay algoritmos o plantillas disponibles para este tipo de interfaz de usuario?
Cualquier otra idea sobre cómo implementar esto de manera eficiente será bienvenida.
Me gustaría proponer el uso del patrón Structured Matcher y su implementación.
Un Structured Matcher es útil cuando se toman decisiones de un conjunto pequeño y discreto de alternativas. Descompone una decisión compleja en decisiones más simples sobre factores relevantes y luego usa decisiones sobre estos factores para tomar la decisión.
Creo que es posible mostrar cada tipo de decisión como vista (control de IU, página web, formulario, etc.). Debe tener un árbol de decisión (predefinido) o recopilar toda la información para construir este árbol de decisión durante su trabajo (el de su cliente). En el segundo caso, puede usar Sponsor-Selector patrón (por ejemplo) para seleccionar la mejor decisión utilizando estadísticas creadas sobre las anteriores.
Por favor, revise para más detalles .
Parece que necesitas un sistema experto.
Ha pasado un tiempo desde que hice algo al respecto, pero comienzas con la pregunta más básica y trabajas desde allí, muy parecido al juego "20 preguntas".
El método que preferiría es similar a un sitio de comercio electrónico, donde aplica varios filtros para refinar los resultados.
Tenga en cuenta que al principio (antes de que se haga una sola pregunta), todas las soluciones en su base de datos pueden caber.
Una vez que responda una pregunta (supongo que las respuestas son "sí/no" o un pequeño número finito), eso reduce la lista de la solución. Responda unas pocas más y acóplelo aún más.
Visualmente lo imagino como dos columnas, una con las preguntas (y las posibles respuestas, de las cuales selecciona una por pregunta) y la segunda con las posibles soluciones.
Beneficios:
Volviendo a la analogía, imagine que está comprando un televisor en línea y puede elegir el tamaño de pantalla deseado. En este modelo, la pregunta sería "cuál es el tamaño de pantalla deseado" y los distintos tamaños serían sus respuestas.
Un enfoque diferente sería como los solucionadores de problemas en Windows: hacen una sugerencia o hacen una pregunta y luego puede indicar si esto ayudó o no. De acuerdo con esto, el solucionador de problemas hace las siguientes preguntas o sugiere otra solución.
La desventaja es que si omite un paso que generalmente no puede regresar, no sabe exactamente dónde se encuentra en el proceso (cuántas preguntas quedan) los resultados (las posibles soluciones) se sugieren uno por uno.
Como lo indica en su título, es una pregunta dual sobre una interfaz de usuario y un algoritmo.
Creo que, como sus operadores de ayuda también pueden tener poco conocimiento, necesitan una IU extremadamente simple. Lo más simple es darles n asistente con una pregunta a la vez. Cada paso elimina algunas otras preguntas. El último paso es una lista de posibles soluciones, cuando no hay más preguntas.
La segunda parte está un poco fuera de tema, ya que es un algoritmo. Básicamente, en cada paso debe hacer la pregunta que potencialmente eliminará la mayoría de las otras preguntas. En realidad, la mejor pregunta es la que elimina la mitad de las preguntas restantes. Si la respuesta es 'sí', se elimina la mitad, si la respuesta es 'no', se elimina la otra mitad. Esto está inspirado en el modelo de árbol de decisión .