Creando habilidades personalizadas para chatbots con plugins
Creando habilidades personalizadas para chatbots
El campo de la IA conversacional ha avanzado rápidamente, con modelos de lenguaje grandes como ChatGPT, Claude y BARD demostrando impresionantes habilidades en el lenguaje natural. Con los chatbots cada vez más capaces, las empresas están ansiosas por utilizarlos para el soporte al cliente, generación de documentos, investigación de mercado y más. Sin embargo, los chatbots predefinidos tienen limitaciones en cuanto al conocimiento específico de la industria, la integración con los sistemas empresariales y la personalización de las respuestas.
Los chatbots predefinidos pueden mejorarse mediante la incorporación de capacidades específicas que realizan tareas especializadas y pueden trabajar juntas para resolver el problema en cuestión. Estas capacidades se pueden implementar como complementos que pueden invocarse con la ayuda de LLMs. Al adoptar un marco de complementos, se pueden aprovechar los modelos fundamentales para orquestar e invocar los complementos necesarios en la secuencia correcta.
Estos complementos no solo pueden permitir la integración perfecta de fuentes de datos externas como bases de datos, sistemas de gestión de contenido y servicios impulsados por API, sino también facilitar la adición de módulos especializados como preguntas y respuestas específicas de la industria, contexto del usuario, análisis de sentimiento y otras mejoras. Con el marco de complementos adecuado y las herramientas de construcción de complementos correspondientes, se pueden ensamblar múltiples habilidades en una aplicación conversacional potente y personalizada.
La arquitectura adecuada permite que los complementos protejan las inversiones en chatbots al abstraer el motor de IA subyacente. Al actualizar el núcleo y utilizar mejores modelos fundamentales, se pueden retener las habilidades que ya se han desarrollado. De esta manera, las empresas pueden maximizar el retorno de inversión en IA conversacional. A medida que la IA avanza, se pueden ofrecer experiencias personalizadas sólidas tratando los modelos fundamentales como una plataforma. Veamos un enfoque sobre cómo construir un marco para la creación de complementos.
- Construyendo un Motor de Recomendación de Productos con Apache Cassandra y Apache Pulsar
- CassIO La mejor biblioteca para IA generativa inspirada por OpenAI
- Optimiza el costo de implementación de los modelos base de Amazon SageMaker JumpStart con los puntos finales asincrónicos de Amazon SageMaker
Consideraciones para construir un marco para la creación de complementos
El núcleo del chatbot proporciona el procesamiento de lenguaje natural base y las capacidades de razonamiento a través de modelos de lenguaje grandes como BERT, GPT-3, etc., mientras que los complementos proporcionan habilidades adicionales, integran fuentes de datos externas, editan respuestas, etc. El marco de complementos actúa como intermediario entre el núcleo del chatbot y los complementos. Proporciona interfaces para que los complementos se registren e interactúen para ampliar las capacidades de la aplicación.
Algunas de las responsabilidades principales del marco incluyen:
- Permitir que los complementos se registren a través de una API simple como
register_plugin(PluginClass)
- Mantener un registro de los complementos activos y las habilidades que proporcionan
- Enrutamiento de las entradas de usuario a través del canal de complementos para recopilar preprocesamiento y posprocesamiento
- Invocar complementos de interrupción para entradas específicas y anular el procesamiento predeterminado
- Gestionar la combinación de múltiples habilidades como preguntas y respuestas, recomendaciones, búsqueda, etc.
- Encapsular el núcleo del chatbot de los complementos: las actualizaciones no se afectan entre sí
Los complementos pueden engancharse en el marco en diferentes puntos de extensión. Esto permite que los complementos amplíen los chatbots de manera modular y personalizable. El marco abstrae la complejidad.
Definición de complemento
A continuación se muestra un diseño de ejemplo para una clase de complemento. Dado que la invocación del complemento será orquestada por LLM, es necesario describir el formato de entrada y los atributos del complemento para que LLM invoque el complemento con la entrada correcta. Se define una clase base de complemento, que sirve como plantilla. Los complementos serán una subclase. El siguiente ejemplo utiliza el ‘complemento de clima’ como ejemplo. Otra información, como el estado de lanzamiento de la versión (experimental, beta, etc.), se puede capturar como parte de la subclase o como atributos de la clase base.
Una vez definidos los complementos, el marco debe mantener un registro de las habilidades y qué complementos las proporcionan. Se debe definir un registro de complementos de manera que se puedan registrar todos los complementos compatibles con el chatbot. Los complementos experimentales se pueden colocar en una carpeta separada o identificados en los metadatos asociados con el complemento.
El siguiente paso es inicializar y registrar los complementos. El código de ejemplo a continuación demuestra cómo se puede hacer esto.
Canal de ejecución
La llamada al complemento adecuado para invocar requiere un proceso de pensamiento y, si se hace correctamente, permitirá que el marco sea extensible. Un enfoque es diseñar el proceso de ejecución como un canal con diferentes etapas. Las diferentes etapas del flujo de ejecución dentro del marco de complementos se pueden describir a continuación.
- Preproceso: Los complementos pueden modificar o enriquecer la entrada del usuario antes de enviarla al núcleo. Útil para normalización, correcciones ortográficas, etc.
- Proceso: Esta etapa puede ser impulsada y orquestada con la ayuda de un modelo de lenguaje grande. Esta fase implica extraer la intención de la entrada del usuario y determinar el complemento adecuado para ejecutar y obtener la respuesta. Este sería un enfoque iterativo donde las respuestas de las iteraciones anteriores se utilizan para determinar si la entrada del usuario se puede responder por completo. Si no es así, se produce otra iteración en la que se invoca el complemento más apropiado que probablemente pueda llenar el vacío faltante en la respuesta.
- Posproceso: Los complementos pueden modificar la respuesta del chatbot antes de devolverla al usuario. Esto permite agregar variabilidad.
- Interrupción: El canal de ejecución normal puede interrumpirse y ser asumido por humanos u otros complementos para ciertos tipos de entradas que puedan manejar. Esto puede ser útil si la conversación no va en la dirección correcta y el tono del usuario tiende hacia la negatividad.
Esto es cómo puede verse el pipeline.
A continuación se muestra un código de muestra que se puede adoptar para construir la base del pipeline de ejecución del marco de plugins:
Es importante manejar escenarios que puedan llevar a bucles infinitos. Se pueden agregar salvaguardias adicionales para permitir solo un cierto número de plugins para responder a una consulta específica del usuario. Esto no solo protege al chatbot de consultas complejas que pueden no tener respuestas, sino que también mejora el rendimiento.
Los métodos que se invocan en la clase del modelo de lenguaje grande se pueden implementar adoptando técnicas de ingeniería de prompts. Por ejemplo, al implementar el método select_best_plugin
, una opción sería pasar la lista de plugins con descripción, ejemplos, la entrada del usuario y la instrucción de prompt correcta para seleccionar un plugin que responda mejor a la entrada del usuario.
Verificar si la respuesta es completa y aprovechar iterativamente diferentes plugins para responder completamente la consulta del usuario se basa en la técnica de prompts Chain-of-Thought.
Escenarios de Ejemplo de Plugin
La integración de la API de Calendario aborda una de las principales limitaciones de los chatbots: la invisibilidad de los calendarios de los usuarios que impide el soporte de programación. Al desarrollar plugins para chatbots en plataformas de calendario como Google y Office365, las empresas pueden habilitar funciones que mejoran la productividad. Los empleados pueden verificar la disponibilidad, programar reuniones automáticamente, recibir recordatorios y gestionar planes de viaje. Esto crea un valor tremendo para situaciones corporativas, equipos de ventas, asistentes ejecutivos, administradores de instalaciones y cualquier persona que necesite gestionar sistemas de manera efectiva.
Ejemplos de conversaciones cuando permites que un chatbot interactúe con el calendario de un usuario.
Usuario: “¿Cuál es mi agenda para hoy?”
El framework llama al plugin de calendario.
Plugin: Recupera los eventos del calendario del usuario de la API de Google Calendar y devuelve “Tienes una reunión de equipo hoy de 2 a 3 pm y una cena con amigos programada para las 7 pm”.
Usuario: “Programa una reunión con John el próximo miércoles a las 10 am.”
El framework llama al plugin de calendario con la nueva entrada del usuario.
Plugin: Utiliza la API de Calendario para verificar la disponibilidad y confirmar las citas y devuelve “Tú y John tienen una reunión programada para el miércoles a las diez de la mañana”.
Los plugins permiten aprovechar una base de conocimientos externa y desbloquear todo el potencial de un chatbot. Incluso los modelos más avanzados tienen limitaciones de conocimiento basadas en los datos de entrenamiento. Combinar chatbots con modelos de conocimiento y bases de datos crea un almacenamiento de información virtualmente ilimitado. Las empresas pueden habilitar investigación de mercado, mejorar el soporte al cliente y gestionar mejor el conocimiento. Al construir plugins en bases de conocimientos externas como wikis de la empresa, feeds de datos financieros o grafos de conocimiento públicos, los chatbots obtienen acceso a la vasta riqueza de conocimiento del mundo. Esto ayuda a superar barreras de datos y hace que los chatbots sean más avanzados.
Ejemplos de conversaciones cuando conectas un chatbot con datos estructurados avanzados.
Usuario: “¿Cuál es la población de Canadá?”
El framework pasa las preguntas al plugin de la base de conocimientos.
Plugin: Busca los datos en una base de datos y devuelve “La población de Canadá es de aproximadamente 38 millones”.
Aquí hay un código de muestra para un plugin que proporciona capacidad de preguntas y respuestas específicas de la industria/domain:
Beneficios Adicionales de Construir un Marco de Plugins
Además del beneficio obvio de habilitar chatbots con conocimientos de dominio y otras habilidades, también se pueden lograr los siguientes beneficios:
- Los plugins pueden habilitarse para acceder a datos en vivo como calendarios, sistemas IoT, registros de transacciones y flujos en tiempo real a través de APIs.
- Los plugins pueden agregar más variabilidad, personalidad y conocimiento contextual a las respuestas del chatbot.
- Un marco de plugins como el descrito en este artículo facilita la experimentación rápida al combinar múltiples habilidades como preguntas y respuestas, recomendaciones, búsqueda, etc.
- Los plugins implementados correctamente mantienen la privacidad del usuario al procesar datos localmente y anonimizar cualquier dato del usuario enviado a terceros.
- Los plugins encapsulan habilidades y conocimientos específicos desacoplados del modelo base del chatbot, lo que permite una actualización más fácil a nuevas generaciones de chatbots en el tiempo.
- Los plugins ya construidos se vuelven “más inteligentes” cuando se combinan con modelos de lenguaje grande base mejorados, ahorrando trabajo.
Conclusión
Al extender las capacidades del modelo de lenguaje base del chatbot al agregar conocimiento de dominio, integrarse con APIs externas y personalizar respuestas, un marco de trabajo robusto para complementos de chatbot puede ofrecer grandes beneficios al proporcionar flexibilidad y extensibilidad. En lugar de estar limitados por un marco inflexible y monolítico, los complementos permiten a los chatbots desbloquear nuevas habilidades. El uso de la arquitectura adecuada es clave para organizar correctamente estas habilidades. Un marco de trabajo bien diseñado para construir complementos actúa como una capa intermedia, proporcionando puntos de extensión para que los complementos se ajusten sin comprometer la independencia del modelo base del chatbot. Esto permite mejoras estables con el tiempo y también soporta iteraciones rápidas. A medida que surjan inevitablemente nuevos y más avanzados modelos de chatbot, los complementos existentes pueden integrarse sin problemas con el modelo base de próxima generación. El valor empresarial acumulado en habilidades mejoradas se conserva en lugar de perderse. Esto hace que diseñar un marco de trabajo robusto para complementos sea una práctica recomendada importante para despliegues de chatbot en producción. Al adoptar algunos de los principios descritos en este artículo, las empresas pueden adaptar eficazmente los chatbots a las necesidades presentes y futuras.
We will continue to update Zepes; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Data Morph Avanzando más allá de la docena de Datasaurus
- Aprendizaje de representación en grafos y redes
- Construyendo un Asistente con ChatGPT y Voz habilitada utilizando React y Express
- Extiende tus alas Falcon 180B está aquí
- Explorando Grandes Modelos de Lenguaje – Parte 1
- Explorando modelos de lenguaje grandes – Parte 3
- 5 Proyectos de Portafolio para Estudiantes de Ciencia de Datos en su Último Año