ChatGTP, un chatbot basado en lenguaje desarrollado por OpenAI, ha ganado mucho uso y atención desde su lanzamiento en 2022. Desde entonces, este y otros chatbots (programas diseñados para imitar el lenguaje y la conversación humanos) se han vuelto cada vez más comunes y utilizados. para brindar creación de contenido, marketing, programación, investigación, entretenimiento, servicio al cliente y más.
Los diseños de sistemas integrados también se ven afectados por el rápido desarrollo de la inteligencia artificial. Los microcontroladores tienen capacidad de procesamiento y memoria limitadas, los cuales son importantes para la velocidad, eficiencia y efectividad de los chatbots. Los microcontroladores no suelen ser ideales para ejecutar modelos avanzados de IA que impulsan la mayoría de los chatbots. Pero esto está cambiando.
Si bien ejecutar un chatbot directamente en un microcontrolador sigue siendo un concepto de nicho, es posible superar algunas de sus limitaciones. En este artículo, analizaremos el uso de chatbots en aplicaciones integradas, así como los métodos utilizados para ejecutar chatbots con microcontroladores o aplicaciones basadas en microcomputadoras.
¿Qué son los chatbots?
Los chatbots son programas informáticos que simulan conversaciones humanas en forma de texto o audio. Están diseñados para interpretar y responder a consultas, solicitudes o comandos de los usuarios. Los chatbots se han vuelto excelentes para interactuar con los usuarios para brindar información o completar una tarea digital.
Actualmente, existen tres tipos de tecnologías de chatbot.
1. Chatbots basados en reglas: siga un conjunto predefinido de reglas y palabras clave para generar respuestas.
2. Chatbots impulsados por IA: utilice el procesamiento del lenguaje natural (NLP) y el aprendizaje automático para comprender la intención del usuario y proporcionar respuestas dinámicas.
3. Chatbots híbridos: utilice enfoques de inteligencia artificial y basados en reglas para una mayor flexibilidad.
Los chatbots que funcionan como programas de computadora pueden brindar asistencia o servicios las 24 horas del día, los 7 días de la semana, en cualquier momento y en cualquier lugar. Son útiles para automatizar tareas, la interacción del usuario y mejorar la experiencia del usuario con la tecnología.
Aplicaciones en sistemas embebidos
Los chatbots proporcionan un medio útil para implementar PNL en aplicaciones integradas, mejorando las interacciones del usuario a través del lenguaje.
A continuación se muestran algunas aplicaciones típicas de chatbot con microcontroladores.
Reconocimiento de comandos de voz: uno de los usos más comunes de los chatbots en dispositivos integrados, que ahora se utiliza con frecuencia en sistemas domésticos inteligentes, dispositivos IoT y aplicaciones automotrices. Permite a los usuarios controlar, interactuar y configurar dispositivos a través del lenguaje hablado (como configurar una alarma o pedirle a Siri que reproduzca música con un comando de audio). Esto se aplica comúnmente en sistemas domésticos inteligentes, dispositivos IoT y aplicaciones automotrices.
Solución de problemas y asistencia: los chatbots pueden diagnosticar problemas comunes con dispositivos inteligentes y guiar a los usuarios a través de los pasos de solución de problemas. También pueden conectar a los usuarios con personal de soporte humano cuando sea necesario.
Personalización: los chatbots sirven como un medio activo para interactuar con los usuarios. Los chatbots basados en IA pueden "aprender" las preferencias del usuario. Pueden automatizar sistemas integrados o ajustar la configuración de los dispositivos inteligentes según el patrón de uso y el comportamiento del usuario. Esto puede conducir a una mayor eficiencia energética en los hogares, configurar automáticamente electrodomésticos (como cafeteras) o alarmas (en el hogar o la oficina) para mayor comodidad y seguridad, y mejorar la comodidad general del usuario (ajustando los termostatos u otros dispositivos según se desee).
Interfaces conversacionales: los chatbots con capacidades de PNL permiten que los dispositivos inteligentes integrados hablen e interactúen con los usuarios. Esto es útil para quioscos de servicio al cliente, pantallas interactivas y sistemas de recuperación de información.
Interfaz de máquina: además de recuperar o ejecutar tareas a través de la comunicación del usuario, los chatbots pueden simplificar las interacciones con máquinas industriales complejas. Los operadores de máquinas pueden utilizar interfaces impulsadas por chatbot para monitorear condiciones, emitir comandos, recibir información de diagnóstico o autorizar el acceso a máquinas críticas.
Capacitación y soporte: los chatbots se han vuelto útiles en la capacitación en el trabajo en algunas industrias. Los dispositivos integrados impulsados por chatbots pueden explicar ciertas tareas o procedimientos, enseñar a los usuarios pasos operativos específicos, brindar asistencia o soporte en tiempo real con nuevos equipos y ayudar con la resolución de problemas.
Mantenimiento predictivo: los chatbots pueden detectar posibles fallas en los equipos analizando los datos de los sensores y alertando al personal de mantenimiento antes de que ocurran fallas, minimizando el tiempo de inactividad. Dado que los chatbots pueden funcionar las 24 horas del día, los 7 días de la semana, pueden monitorear continuamente los equipos y potencialmente resolver problemas o sugerir soluciones para mejorar.
Traducción de idiomas: los chatbots pueden proporcionar servicios de traducción de idiomas (en formato de texto o audio) en tiempo real utilizando PNL, ayudando a los usuarios mientras viajan o aprenden un nuevo idioma.
Resumen de texto: puede resumir grandes volúmenes de texto, facilitando a los usuarios el consumo de información relevante. Esto puede resultar útil en sistemas integrados que admiten datos textuales, como lectores de noticias o resúmenes de documentos. Esto también es útil en aplicaciones de IoT que procesan y analizan grandes volúmenes de datos de sensores.
Recordatorios y notificaciones: los dispositivos inteligentes con chatbots se pueden programar para generar notificaciones y alertas. Por ejemplo, pueden recordar a los usuarios citas o medicamentos, generando advertencias en lenguaje natural.
Respuesta de emergencia: Los chatbots en dispositivos portátiles pueden brindar respuesta de emergencia y asistencia según sea necesario, como contactar a los servicios de emergencia, guiar a los usuarios a través de procedimientos de primeros auxilios o brindar apoyo emocional.
Análisis de sentimientos: una herramienta que los sistemas integrados pueden emplear para interpretar y reaccionar a las respuestas emocionales de la entrada humana. Esto se aplica a robots sociales, sistemas de análisis de retroalimentación o dispositivos sensibles a las emociones.
Integración de gestos y lenguaje: admite un sistema integrado para interpretar comandos hablados y gestos para controlar un dispositivo o sistema.
Búsqueda y recuperación basada en texto: las funciones de búsqueda basadas en PNL permiten a los usuarios interactuar con sistemas integrados mediante consultas en lenguaje natural. Esto beneficia a aplicaciones como motores de búsqueda inteligentes, sistemas de recuperación de contenido e interfaces basadas en conocimiento.
Seguimiento de la salud y el estado físico: los chatbots pueden proporcionar comentarios personalizados sobre los niveles de actividad, sugerir rutinas de ejercicio basadas en ciertos objetivos y responder preguntas sobre datos de salud.
Texto a voz (TTS) y voz a texto (STT): utilizando chatbots basados en inteligencia artificial, los sistemas integrados pueden convertir el lenguaje hablado en texto escrito (STT) y viceversa (TTS). Esto resulta útil en aplicaciones como asistentes de voz, herramientas de accesibilidad y dispositivos de comunicación.
Interacción con robots: ayudar a los robots a "comprender" las órdenes e intenciones humanas, lo que lleva a interacciones más intuitivas y naturales.
Herramientas educativas interactivas: los chatbots en dispositivos educativos pueden facilitar las interacciones en lenguaje natural con fines de aprendizaje. Pueden guiar a los estudiantes en actividades educativas, contar historias, jugar o hacer que los robots compañeros sean más atractivos e interactivos. Los chatbots también son útiles como tutores de idiomas o herramientas de aprendizaje de idiomas.
Seguridad y control de acceso: Se utiliza para aumentar la seguridad mediante la implementación de sistemas de control de acceso basados en voz. Los usuarios pueden utilizar la voz como método de autenticación seguro para dispositivos integrados.
Accesibilidad y asistencia : los chatbots pueden ayudar a las personas con discapacidades a controlar robots mediante comandos de voz, ayudar con las actividades diarias o brindar compañía.
Ejecutando chatbots con microcontroladores
No es posible ejecutar chatbots directamente en microcontroladores, aunque muchos pueden ejecutar modelos LLM más pequeños y marcos personalizados para dispositivos de alta gama. Sin embargo, se utilizan enfoques alternativos para implementar chatbots en la mayoría de las aplicaciones integradas y de IoT.
A continuación se muestran algunas prácticas para implementar chatbots con microcontroladores.
Chatbots basados en reglas: confíe en un conjunto de reglas y palabras clave predefinidas para responder a las entradas del usuario. Estos chatbots livianos pueden ejecutarse en microcontroladores básicos, proporcionando capacidades básicas de PNL en un dispositivo inteligente. Sin embargo, las interacciones con los usuarios son limitadas y carecen de flexibilidad. También carecen de la comprensión del lenguaje natural de los chatbots impulsados por IA.
Chatbots basados en la nube: en estos chatbots, el procesamiento complejo del lenguaje natural se descarga a una plataforma de chatbot basada en la nube. El microcontrolador solo conecta los sensores y actuadores, recopila información del usuario y la envía a la nube para su procesamiento. Un chatbot basado en la nube genera una respuesta, que se envía de vuelta al microcontrolador y se comunica mediante voz o texto. En este método, la funcionalidad PNL del sistema integrado depende de la conectividad a Internet y la eficiencia de la plataforma en la nube. Sin embargo, incorpora lenguaje natural y permite una mayor flexibilidad en las interacciones del usuario.
Reconocimiento de palabras clave sin conexión con respuestas limitadas: bibliotecas como TinyML se utilizan para entrenar pequeños modelos de reconocimiento de palabras clave en el microcontrolador. Este modelo desencadena respuestas o acciones pregrabadas basadas en palabras clave reconocidas. Este enfoque es útil en aplicaciones simples, como dispositivos controlados por voz, permitiendo funcionalidades de PNL sin un diseño complejo de sistema ni software.
Chatbots para microcontrolador
A continuación se muestran algunas opciones de chatbot para implementar funciones de PNL en sistemas basados en microcontroladores.
ChatGPT en la nube: varias aplicaciones integradas incorporan PNL mediante la integración de servicios basados en la nube que ejecutan ChatGPT. El microcontrolador captura la entrada del usuario y la envía a un servicio en la nube basado en ChatGPT a través de una API. Las respuestas son recibidas por el servicio en línea y mostradas por el microcontrolador del dispositivo. Por ejemplo, un microcontrolador puede recuperar la entrada del usuario a través de un teclado o teclado numérico y enviarla a un servidor remoto para su procesamiento. Luego, el servidor procesa la solicitud y envía una respuesta al microcontrolador, que se comunica mediante voz o pantalla.
Servicio Microsoft Azure Bot: un popular chatbot basado en la nube que se integra con múltiples canales, como asistentes de voz, aplicaciones de mensajería o interfaces web, brindando a los usuarios flexibilidad en la forma de interactuar con sus dispositivos. Esta plataforma también presenta robots de diseño con botones, imágenes y carruseles para brindar experiencias interactivas y visualmente atractivas en la interfaz de un dispositivo integrado.
El bot puede rastrear interacciones pasadas y adaptar las respuestas en consecuencia, ofreciendo una experiencia más personalizada y contextual. Permite a los usuarios acceder a información del dispositivo, controlar la configuración o activar acciones mediante comandos de lenguaje natural. Un dispositivo también puede delegar tareas o flujos de trabajo complejos al bot, liberando recursos para la funcionalidad principal. Puede administrar dispositivos desde una ubicación central y garantiza que toda la comunicación de datos sea segura y privada.
Dialog Flow: la plataforma PNL basada en la nube de Google es útil para aplicaciones integradas, según el proyecto. Ofrece agentes de Dialogflow ligeros (LDFA) para dispositivos con recursos limitados. Los usuarios pueden combinar la funcionalidad basada en la nube y en el dispositivo para lograr flexibilidad y un rendimiento óptimo.
Dialogflow facilita que los motores de reconocimiento de voz sin conexión manejen la entrada del usuario sin conexión a Internet. Es adecuado para implementación basada en la nube, aunque sus agentes se pueden utilizar sin conexión. Ofrece integraciones prediseñadas con otros servicios de Google como Google Assistant, Calendar y Maps que amplían las capacidades de un bot y permiten flujos de conversación personalizados. Realiza un seguimiento de las interacciones pasadas y adapta las respuestas en consecuencia, proporcionando una experiencia personalizada y contextual. Tiene una interfaz fácil de usar con muchas herramientas de arrastrar y soltar, lo que idealmente requiere conocimiento de Dialogflow y sus herramientas de desarrollo relacionadas.
ChatScript: un motor de chatbot gratuito, de código abierto y basado en reglas con documentación extensa y una gran base comunitaria. Puede funcionar de manera eficiente en cualquier dispositivo de bajo consumo debido a su enfoque basado en reglas. Es flexible en el lenguaje de scripting y permite adaptar las respuestas y el comportamiento del chatbot a las necesidades y escenarios específicos de IoT y sistemas integrados. Funciona eficazmente incluso sin conexión a Internet. Sin embargo, no puede abordar lenguaje complejo, ambigüedades y matices. También carece de integraciones integradas, conocimiento del contexto y funciones de análisis avanzado.
Gestionar reglas y lógica complejas para manejar diversas interacciones de usuarios es un desafío para un enfoque basado en reglas. ChatScript es adecuado para incorporar funciones simples de PNL en sistemas integrados y proyectos de IoT que no dependen de la conectividad a Internet.
AIML: significa Lenguaje de marcado de inteligencia artificial, un popular lenguaje de chatbot basado en reglas basado en la simplicidad y la facilidad de uso. Es ideal para la integración con juguetes educativos simples, la interacción de voz en dispositivos integrados y la prueba de prototipos de prueba de concepto simples, como la funcionalidad de interacción de voz. AIML se basa en la coincidencia de patrones y reglas predefinidas. El uso de AIML está disminuyendo a medida que la IA mejora debido a su falta de funcionalidades integradas, como conocimiento del contexto, análisis de sentimientos, personalización, problemas de seguridad y escasa escalabilidad.
Edge Boost: una plataforma para desarrollar e implementar modelos TinyML en microcontroladores y dispositivos IoT. Ofrece una interfaz fácil de usar con muchas herramientas de arrastrar y soltar y flujos de trabajo visuales y se integra con múltiples sensores. Los usuarios pueden entrenar y ejecutar modelos de aprendizaje automático directamente en el dispositivo, eliminando la necesidad de procesamiento en la nube y reduciendo la latencia. Optimiza automáticamente los modelos en cuanto a tamaño y eficiencia, garantizando que funcionen sin problemas en microcontroladores. Se pueden implementar sin problemas varios modelos de aprendizaje automático, como detección de palabras clave, detección de anomalías, mantenimiento predictivo, reconocimiento de gestos y funciones de inteligencia artificial. Esta plataforma de bajo costo, flexible y eficiente se utiliza mejor para tareas más simples.
Tensorflow Lite Micro: una versión ligera de TensorFlow útil para implementar pequeños modelos conversacionales en microcontroladores. Los modelos se ejecutan directamente en el dispositivo y pueden funcionar sin conexión a Internet. Esto reduce el consumo de energía del sistema integrado. Tensorflow Lite es útil para dispositivos IoT y microcontroladores que funcionan con baterías y con recursos limitados. Los desarrolladores pueden elegir entre una variedad de modelos previamente entrenados o capacitarse ellos mismos, adaptando la funcionalidad a sus necesidades y plataforma de hardware específicas. Destaca en tareas más simples y puede no ser adecuado para ejecutar modelos complejos de aprendizaje automático o aprendizaje profundo. Admite muchas plataformas populares, pero no todos los microcontroladores y plataformas de hardware.
Rasa NLU: un potente marco de código abierto para la comprensión del lenguaje natural (NLU), que permite a las máquinas extraer significado e intención de las conversaciones. Es posible ejecutar Rasa NLU en una Raspberry Pi o dispositivos similares y comunicarse con él mediante un microcontrolador.
Rasa se destaca por comprender el significado y la intención detrás de las consultas de los usuarios, incluso con vocabulario limitado o frases ambiguas que normalmente se usan para la IA conversacional para dispositivos. Los modelos NLU personalizados se pueden entrenar en el lenguaje y la terminología del dominio específico de un usuario, lo que garantiza una comprensión precisa de la intención. Se integra perfectamente con otras plataformas de chatbot y herramientas de inteligencia artificial conversacional y ofrece soporte multilingüe. La mayoría de los modelos Rasa NLU requieren una conexión a Internet para su procesamiento.
ChatterBot: es una biblioteca de Python para crear chatbots. Se puede utilizar para implementar un chatbot en una microcomputadora como Raspberry Pi y comunicarse con él desde un microcontrolador. Permite interacciones en lenguaje natural con dispositivos integrados y de IoT, lo que permite a los usuarios controlar la funcionalidad, acceder a información o hacer preguntas mediante comandos de voz o mensajes de texto. Puede adaptar respuestas y recomendaciones basadas en las preferencias del usuario, interacciones pasadas y datos en tiempo real de sensores o del entorno.
Snips.ai: Snips.ai: una plataforma de voz de código abierto que incluye un componente NLU. Es una plataforma destacada para desarrollar asistentes de voz e interfaces conversacionales para sistemas integrados e IoT, lo que la hace ideal para problemas de latencia o conectividad a Internet limitada. Sus modelos están optimizados para dispositivos integrados con recursos limitados, que requieren un mínimo de RAM, CPU y espacio de almacenamiento. Esto permite la integración en la mayoría de los dispositivos de bajo consumo. Los modelos se pueden entrenar en el lenguaje y la terminología de un dominio específico. La plataforma prioriza la privacidad, el procesamiento local y la eficiencia de los recursos.
Conclusión
Los chatbots tienen muchas aplicaciones en dispositivos integrados y de IoT. Desempeñan un papel crucial a la hora de habilitar funcionalidades de PNL en dispositivos perimetrales. Para tareas más sencillas, los chatbots basados en reglas se pueden implementar directamente en microcontroladores. Sin embargo, puede ser necesario transferir las funcionalidades de PNL a un servicio de chatbot basado en la nube, dependiendo de la complejidad de las tareas integradas.
También se pueden implementar varios modelos de aprendizaje automático en microcontroladores utilizando Edge Impulse o Tensor Flow Lite Micro para habilitar capacidades de PNL en dispositivos basados en microcontroladores. En muchas aplicaciones, el microcontrolador va acompañado de una microcomputadora dentro del dispositivo. Luego, se pueden ejecutar chatbots más complejos en la microcomputadora mientras se descargan tareas integradas esenciales al microcontrolador.
También es una opción un enfoque híbrido que combine chatbots basados en reglas con servicios de chatbot basados en la nube. Algunos chatbots populares y servicios de chatbot basados en la nube incluyen ChatGPT-on-Cloud, Microsoft Azure Bot Service, Dialogflow, ChatScript, AIML, Rasa NLU, ChatterBot y Snips.ai. Tensor Flow Lite Micro y Edge Impulse son ideales para implementar modelos de aprendizaje automático en microcontroladores para implementar PNL.