Con este articulo espero poder convencerte de utilizar el Menú de Tokens para tus próximas experiencias interactivas que requieran una interfaz conversacional. — Eibriel
Tabla de contenidos
Inspiración
Cuando era pequeño estaba fascinado con los chatbots, la idea de poder mantener una conversación con una máquina despertaba mi imaginación.
A temprana edad tipeé línea por línea el código de ELIZA, copiándolo de una revista de informática a una CZ Spectrum. No quedé muy impresionado por el resultado.
La primera vez que sentí que realmente estaba conversando con una computadora fue, por raro que parezca, al configurar un software para el sistema operativo Microsoft DOS, se veía algo así:
No recuerdo cual era el nombre del programa, pero recuerdo perfectamente la sensación de estar hablando con la máquina. Recuerdo sospechar que la máquina me comprendía. Todo eso sin necesidad de que yo escriba palabras en el teclado.
El programa comentaba mis opciones, yo le respondía, y juntos logramos llevar a cabo la configuración. Nunca volví a sentir esa conexión con un programa.
Propuesto a recrear esta experiencia es que diseñé una nueva manera de interactuar con las máquinas.
Las interfaces conversacionales no funcionan
A pesar de los avances en la velocidad de procesamiento y la conectividad, los usuarios de asistentes automatizados inteligentes se ven limitados a la hora de ingresar comandos para brindar información, ejecutar acciones, crear rutinas personalizadas y realizar consultas complejas.
Tres áreas han avanzado tecnológicamente: la conversión de señales sonoras a texto, la identificación de la intensión en el texto, y el reconocimiento de entidades en el texto. A pesar de que el progreso en el primer área ha sido notable, los dos áreas restantes aún plantean grandes dificultades, en gran parte debido a la incapacidad de los modelos modernos de aprendizaje profundo de trabajar a nivel semántico de manera eficiente.
Algunas limitaciones en el procesamiento del lenguaje natural son: entender cuál es la necesidad real del usuario cuando una expresión en posee más de una interpretación, a su vez la adquisición de la información plantea serios problemas debido al gran número de unidades léxicas de las lenguas naturales.
A su vez el uso de sistemas de análisis de lenguaje natural a través de modelos de aprendizaje profundo requiere la recolección de grandes cantidades de datos y su consiguiente procesamiento en servidores corporativos, fuera del control del usuario, resultando en la mayoría de los casos en un detrimento en la privacidad y seguridad del usuario, y en una limitación en la calidad de datos personales que la interfaz puede manejar.
Estas limitaciones resultan en una interfaz que no contextualiza las consultas, no almacena un modelo interno suficientemente complejo del usuario y sus intereses, y no permite al usuario personalizarlo ni programarlo según sus necesidades. Derivando en una experiencia pobre para el usuario. El cual se ve limitado si la interfaz tan solo le permite seleccionar comandos predeterminadas, o frustrado cuando es libre de articular vía texto o voz una cantidad ilimitada de comandos, solo para descubrir que la mayoría resulta en un mensaje de error.
Una solución poco convencional
Hay dos maneras de resolver el problema de la comunicación entre seres humanos y programas de computación.
- Haciendo que los programas entiendan el lenguaje natural. Algo que aún no es posible.
- Haciendo que los humanos se comuniquen utilizando lenguaje formal (código de programación). Algo que no todos pueden hacer.
Yo propongo una tercera solución: Utilizar el diseño de interfaz de usuario para permitir una comunicación que luzca como lenguaje natural para los seres humanos, y que luzca como lenguaje formal para el programa de computación.
Inspirado en la idea de encontrar éste punto intermedio desarrollé un nuevo elemento de interfaz de usuario. Un menú que permite ingresar comandos a un programa sin tener que escribirlos de manera completa.
El usuario selecciona componentes léxicos (concepto / palabra / token) de una lista, y el programa sugiere los comandos que mejor hacen uso de esos componentes léxicos. Permitiendo una comunicación colaborativa.
Menú de Tokens
La siguiente propuesta soluciona estas limitaciones apartándose del camino del reconocimiento de patrones y análisis del lenguaje natural. En su lugar propone la utilización de comandos en lenguaje formal acompañados de una interfaz de usuario basada en la selección de secuencias de componentes léxicos que ayude al usuario a programar dichos comandos de la manera más sencilla e intuitiva posible.
Ésto permite al usuario ingresar consultas más elaboradas e incluso programar sus propias rutinas. Al no utilizar costosos algoritmos de procesamiento del lenguaje natural toda la información puede mantenerse en el dispositivo del usuario, protegiendo su privacidad y permitiéndole almacenar y manipular información sensible de manera segura.
El Menú de Tokens es capaz de presentarle al usuario una lista de comandos a partir de que el usuario seleccione uno o más componentes léxicos, permitiendo al usuario ingresar comandos en lenguaje formal sin necesidad de conocer su sintaxis y sin necesidad de utilizar el lenguaje natural. Evitando sus problemas y limitaciones.
Esto amplía significativamente el rango de acciones que la interfaz puede permitir al usuario, impidiendo al mismo tiempo que el usuario seleccione un comando que resulte en una situación de error.
El Menú de Tokens le permite al usuario ejecutar un comando sin tener que escribirlo palabra por palabra, sin tener que llenar un formulario, seleccionarlo de una lista de opciones predeterminada y sin tener que utilizar lenguaje natural.
El usuario puede recorrer el espacio de comandos de manera más sencilla, sin necesidad de aprender una sintaxis determinada, sin verse limitado por la estructura de un formulario o lista y sin verse obligado a memorizar las frases correctas a pronunciar. Más aún, permite al usuario descubrir nuevos comandos al tiempo que busca los comandos ya conocidos.
Elon4.me
Estoy desarrollando un chatbot de demostración, una versión virtual de Elon Musk al que se le pueden realizar diferentes consultas sobre Tesla, SpaceX y Inteligencia Artificial. Aún está en desarrollo, pero se puede probar en Elon4.me.
Si tenés consultas o feedback sobre el proyecto te invito a unirte a mi grupo de Telegram: https://t.me/EibrielCommunity
Eibriel
eibriel.com