Back y ArquitecturaOpen Source

Conociendo Langflow

Langflow es una herramienta web de código abierto construida en Python que ofrece un interfaz gráfico LLM para trabajar con LangChain, permitiendo manejar los conceptos de ChainsAgents y Prompt Engineering, de una forma muy sencilla:

Así, Langflow puede verse como una forma sencilla de prototipar flujos LangChain.

La función de arrastrar y soltar permite una experimentación rápida y sin esfuerzo, mientras que la interfaz de chat integrada facilita la interacción en tiempo real. Ofrece opciones para editar los parámetros de los avisos, crear cadenas y agentes, realizar un seguimiento de los procesos de pensamiento y exportar flujos.

Conceptos fundamentales

A la hora de trabajar con Langflow, es interesante conocer los siguientes conceptos:

Agents

Son componentes que utilizan el razonamiento para tomar decisiones y emprender acciones. Están diseñados para realizar tareas de forma autónoma o prestar servicios con cierto grado de «libertad». Combinan la potencia de los procesos de encadenamiento LLM con el acceso a herramientas externas como las API para interactuar con aplicaciones y realizar tareas. Tenemos agentes como el CSVAgent, JSONAgent, VectorStoreAgent, etc.

Chains

En el contexto de los modelos lingüísticos, se refieren a una serie de llamadas realizadas a un modelo lingüístico. Permiten utilizar la salida de una llamada como entrada para otra. Los distintos tipos de chains (cadenas) permiten diferentes niveles de complejidad. Son útiles para crear pipelines y ejecutar escenarios específicos. Algunas de estas cadenas sería ConversationChain,  LLMChain, SQLDatabaseChain, etc.

Embeddings

Son representaciones vectoriales del texto que captan su significado semántico. Se crean utilizando modelos de text embedding y nos permiten pensar en el texto en un espacio vectorial, lo que nos permite realizar tareas como la búsqueda semántica, en la que buscamos los fragmentos de texto que más se parecen en el espacio vectorial.

Large Language Model (LLM)

Es un componente central de Langflow y proporciona una interfaz estándar para interactuar con diferentes LLMs de varios proveedores como OpenAI, Cohere, y HuggingFace. Los LLMs se utilizan ampliamente en todo Langflow, incluso en chains y agentes. Pueden ser utilizados para generar texto basado en un prompt dado (o input).

Memory

La memoria es un concepto de las aplicaciones basadas en chat que permite al sistema recordar interacciones anteriores. Ayuda a mantener el contexto de la conversación y permite al sistema entender los mensajes nuevos en relación con los anteriores.

Prompts

Un prompt es la entrada dada a un modelo lingüístico. Se construye a partir de múltiples componentes y puede parametrizarse utilizando plantillas de avisos. Una plantilla de instrucciones es una forma reproducible de generar instrucciones y permite personalizarlas fácilmente mediante variables de entrada.

Algunos ejemplos

Así de forma muy sencilla puedo construir todo tipo de aplicaciones basadas en LLM.

Desde un sencillo chat con un prompt que te da la temperatura en la ciudad indicada:

Para desplegarlo pulsaremos el botón del rayito que hay en el interfaz de usuario:

Para ejecutarlo, pulsaríamos en el otro botón, el de las conversaciones:

Vamos a poder establecer variables, definiéndolas entre paréntesis: {variable}. Una vez insertadas en un «PromptTemplate», estos campos se reconocen como variables y vamos a poder establecerlas:

Otro ejemplo de funcionamiento es un completo parseador de PDFs que extrae el contenido y lo formatea en JSON:

Este ejemplo lo podemos ver explicado en esta guía que tienen preparada en Medium.

Además, incluye un buen número de ejemplos que pueden usarse de base para construir nuestros propios flujos.

Invocando Langflow

Lo que construyamos con Langflow lo vamos a poder ser invocado vía API REST. Para eso, podemos usar el botón de código:

Seguidamente veremos cómo podemos invocarlo. En el código podremos pasar parámetros (por ejemplo, la ciudad):

También podemos integrarlo como un widget en nuestra aplicación web; en esta guía explican cómo.

Componentes personalizados

Langflow también permite la extensión a través de los Custom Components, que se crean con un script de Python usando la clase «CustomComponent» provista por la librería Langflow, y pueden crearse incluso desde el mismo UI de Langflow o bien por fuera (ver más):

Seguridad

La funcionalidad de login en Langflow sirve para autenticar usuarios y proteger rutas sensibles en la aplicación. A partir de la versión 0.5, Langflow introduce un mecanismo de inicio de sesión mejorado que se rige por unas pocas variables de entorno. Esto permite nuevas características, tales como:


Imagen de cabecera: Medium

✍🏻 Author(s)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *