¿Qué es LangChain?

Autores

Dave Bergmann

Senior Staff Writer, AI Models

IBM Think

Cole Stryker

Staff Editor, AI Models

IBM Think

¿Qué es LangChain?

LangChain es un marco de orquestación de código abierto para el desarrollo de aplicaciones mediante modelos de lenguaje de gran tamaño (LLM) . Disponibles en bibliotecas basadas en Python y Javascript, las herramientas y API de LangChain simplifican el proceso de creación de aplicaciones impulsadas por LLM, como chatbots y agentes de IA .

LangChain funciona como una interfaz genérica para casi cualquier LLM, proporcionando un entorno de desarrollo centralizado para crear aplicaciones LLM e integrarlas con fuentes de datos externas y flujos de trabajo de software. El enfoque basado en módulos de LangChain permite a los desarrolladores y científicos de datos comparar de manera dinámica diferentes cuadros de instrucciones e incluso diferentes modelos fundacionales con mínima necesidad de reescribir el código. Este entorno modular también permite que los programas utilicen varios LLM: por ejemplo, una aplicación que usa un LLM para interpretar las consultas de los usuarios y otro LLM para redactar una respuesta.

Lanzado por Harrison Chase en octubre de 2022, LangChain disfrutó de un ascenso meteórico a la prominencia: en junio de 2023, era el proyecto de código abierto de más rápido crecimiento en Github.1 Coincidiendo con el trascendental lanzamiento de ChatGPT de OpenAI el mes siguiente, LangChain ha desempeñado un papel importante en hacer que la IA generativa (genAI) sea más accesible para los entusiastas y las empresas emergentes a raíz de su amplia popularidad. Los avances en accesibilidad para la IA agéntica están permitiendo actualmente una revolución en la Automatización.

LangChain puede facilitar la mayoría de los casos de uso para LLM y procesamiento de lenguaje natural (NLP), como chatbots, búsqueda inteligente, respuesta a preguntas, servicios de resumen o incluso agentes de IA capaces de automatización de procesos robóticos.

Integraciones con LLM

Los LLM no son aplicaciones independientes: se trata de modelos estadísticos previamente entrenados que deben combinarse con una aplicación (y, en algunos casos, con determinadas fuentes de datos) para cumplir su función.

Por ejemplo, Chat-GPT no es un LLM: es una aplicación de chatbot que, dependiendo de la versión que se haya elegido, utiliza el modelo de lenguaje GPT-3.5 o GPT-4. Mientras que es el modelo GPT el que interpreta la entrada del usuario e incluye una respuesta en lenguaje natural, la aplicación es la que (entre otras cosas) brinda una interfaz para que el usuario escriba y lea y un diseño UX que rige la experiencia del chatbot. Incluso a nivel empresarial, Chat-GPT no es la única aplicación que utiliza el modelo GPT: Microsoft utiliza GPT-4 para impulsar Bing Chat.

Además, aunque los modelos fundacionales (como los que impulsan los LLM) están previamente entrenados con conjuntos de datos masivos datasets, no son omniscientes. Si una tarea en particular requiere acceso a información contextual específica, como documentación interna o experiencia en determinada área, los LLM deben estar conectados a esas fuentes de datos externas. Incluso si solo desea que su modelo refleje conciencia en tiempo real de los eventos actuales, requiere información externa: los datos internos de un modelo solo están actualizados durante el período de tiempo en el que se realizó el entrenamiento.

Del mismo modo, si una tarea de IA generativa determinada requiere acceso a flujos de trabajo de software externos, por ejemplo, si desea que su agente virtual se integre con Slack, entonces necesitará una forma de integrar el LLM con la API para ese software.

Si bien estas integraciones generalmente se pueden lograr con código totalmente manual, los marcos de orquestación como LangChain y la cartera de productos de inteligencia artificial de IBM watsonx simplifican enormemente el proceso. Facilitan mucho la experimentación con diversos LLM para comparar resultados, ya que se pueden intercambiar fácilmente diferentes modelos con modificaciones mínimas en el código.

¿Cómo funciona LangChain?

En el núcleo de LangChain se encuentra un entorno de desarrollo que optimiza la programación de aplicaciones LLM mediante el uso de la abstracción, es decir, la simplificación del código mediante la representación de uno o más procesos complejos como un componente con un nombre asignado que encapsula todos sus pasos.

Las abstracciones son un elemento común de la vida cotidiana y del lenguaje. Por ejemplo, “π” nos permite representar la relación entre la longitud de la circunferencia de un círculo y la de su diámetro sin tener que escribir una cantidad infinita de dígitos. Del mismo modo, un termostato nos permite controlar la temperatura en nuestro hogar sin necesidad de entender la compleja red de circuitos que conlleva; solo necesitamos saber cómo se traducen los diferentes ajustes del termostato en diferentes temperaturas.

LangChain es esencialmente una biblioteca de abstracciones para Python y Javascript, que representa los pasos y conceptos comunes necesarios para trabajar con modelos lingüísticos. Estos componentes modulares, como las funciones y las clases de objetos, sirven como bloques de construcción de los programas de IA generativa. Se pueden "encadenar " entre sí para crear aplicaciones, minimizando la cantidad de código y la comprensión precisa necesarios para ejecutar tareas complejas de PLN. Aunque el enfoque abstracto de LangChain puede limitar la medida en que un programador experto puede personalizar con precisión una aplicación, permite que, tanto los especialistas como los usuarios sin conocimiento previo, puedan experimentar y crear prototipos de forma rápida.

Importar modelos de lenguaje

Prácticamente cualquier LLM se puede utilizar en LangChain. Importar modelos de lenguaje a LangChain es fácil, siempre que tenga una clave API. La clase LLM está diseñada para proporcionar una interfaz estándar para todos los modelos.

La mayoría de los proveedores de LLM requerirán la creación de una cuenta para recibir una clave API. Algunas de estas API, en particular las de modelos de código cerrado patentados, como las que ofrecen OpenAI o Anthropic, pueden tener costos asociados.

Se puede acceder a muchos modelos de código abierto, como LLaMa de Meta AI, Deepseek-LLM de Deepseek,Granite de IBM y Flan-T5 de Google, a través de Hugging Face. IBM watsonx, a través de su asociación con Hugging Face, también ofrece una suite curada de modelos de código abierto. Crear una cuenta con cualquiera de los servicios le permitirá generar una clave API para cualquiera de los modelos ofrecidos por ese proveedor.

LangChain no se limita a los modelos fundacionales listos para usar: la clase CustomLLM permite contenedores de LLM personalizados. Del mismo modo, puede usar las API de IBM watsonx y Python SDK, que incluye una integración de LangChain, para crear una aplicación en LangChain con modelos que ya entrenó o ajustó para sus necesidades específicas mediante la clase WatsonxLLM (y el ID de proyecto específico de ese modelo).

Plantillas de instrucciones

Las instrucciones son las indicaciones que se dan a un LLM. El "arte" de crear instrucciones que proporcionen eficazmente el contexto necesario para que el LLM interprete la entrada y estructure la salida de la manera más útil para usted a menudo se denomina ingeniería de instrucciones.

La clase PromptTemplate en LangChain formaliza la composición de las instrucciones sin necesidad de programar de forma manual el contexto y las consultas. Los elementos importantes de una instrucción también se ingresan como clases formales, por ejemplo input_variables. Por lo tanto, una plantilla de instrucciones puede contener y reproducir contexto, indicaciones (por ejemplo, “no usar términos técnicos”), un conjunto de ejemplos para guiar las respuestas (en lo que se denomina “few-shot prompting”), un formato de salida especificado o una pregunta estandarizada a responder. Puede guardar y nombrar una plantilla de instrucciones estructurada de manera efectiva y reutilizarla fácilmente según sea necesario.

Aunque todos estos elementos se pueden programar de forma manual, los módulos PromptTemplate permiten una integración fluida con otras características de LangChain, como las cadenas de epónimos.

Cadenas

Como su nombre lo indica, las cadenas son el núcleo de los flujos de trabajo de LangChain. Combinan los LLM con otros componentes, creando aplicaciones al ejecutar una secuencia de funciones.

La cadena más básica es LLMChain. Simplemente llama a un modelo y una plantilla de instrucciones para ese modelo. Por ejemplo, imagine que guardó una instrucción como "ExamplePrompt" y desea ejecutarla en Flan-T5. Puede importar LLMChain desde langchain.chains y luego definir chain_example = LLMChain(llm = flan-t5, prompt = ExamplePrompt). Para ejecutar la cadena para una entrada determinada, simplemente llame a chain_example.run(“input”).

Para usar la salida de una función como entrada para la siguiente función, puede usar SimpleSequentialChain. Cada función podría utilizar diferentes instrucciones, diferentes herramientas, diferentes parámetros o incluso diferentes modelos, dependiendo de sus necesidades específicas.

Índices

Para realizar ciertas tareas, los LLM necesitarán acceso a fuentes de datos externas específicas, que no están incluidas en su conjunto de datos de entrenamiento, por ejemplo, documentos internos, correos electrónicos o conjuntos de datos. En LangChain, la documentación externa se denomina colectivamente “índices”.

Cargadores de documentos

LangChain ofrece una amplia variedad de cargadores de documentos para aplicaciones de terceros (enlace externo a ibm.com). Esto permite importar fácilmente datos de fuentes como servicios de almacenamiento de archivos (por ejemplo, Dropbox, Google Drive y Microsoft OneDrive), contenido web (como YouTube, PubMed o URL específicas), herramientas de colaboración (por ejemplo, Airtable, Trello, Figma y Notion), bases de datos (como Pandas, MongoDB y Microsoft), entre muchas otras.

Bases de datos vectoriales

A diferencia de las bases de datos estructuradas "tradicionales", las bases de datos vectoriales representan puntos de datos convirtiéndolos en incrustaciones vectoriales: representaciones numéricas en forma de vectores con un número fijo de dimensiones, a menudo agrupando puntos de datos relacionados mediante métodos de aprendizaje no supervisados. Esto permite las consultas de baja latencia, incluso para conjuntos de datos masivos, lo que aumenta considerablemente la eficiencia. Lasincorporaciones vectoriales también almacenan los metadatos de cada vector, lo que mejora aún más las posibilidades de búsqueda.

LangChain proporciona integraciones para más de 25 métodos de incorporación diferentes y para más de 50 diferentes almacenes de vectores (tanto alojadas en la nube como locales).

Divisores de texto 

Para aumentar la velocidad y reducir la carga computacional, suele ser aconsejable dividir los documentos de texto grandes en partes más pequeñas. Los TextSplitters de LangChain dividen el texto en pequeños fragmentos con significado semántico que luego se pueden combinar utilizando los métodos y parámetros que usted elija.

Recuperación

Una vez conectadas las fuentes externas de conocimiento, el modelo debe ser capaz de recuperar e integrar rápidamente la información pertinente según sea necesario. Al igual que Watsonx, LangChain ofrece generación aumentada por recuperación (RAG): sus módulos recuperadores aceptan una consulta de cadena como entrada y devuelven una lista de Documentos como salida.

Con LangChain, también podemos crear sistemas RAG agénticos. En las aplicaciones RAG tradicionales, el LLM cuenta con una base de datos vectorial para hacer referencia al formar sus respuestas. Por el contrario, las aplicaciones de IA agéntica no se limitan solo a la recuperación de datos. RAG agéntica también puede abarcar herramientas para tareas como resolver cálculos matemáticos, escribir correos electrónicos, realizar análisis de datos y más.

Memoria

Los LLM, de forma predeterminada, no tienen memoria a largo plazo de interacciones anteriores (a menos que ese historial de chat se use como entrada para una consulta). LangChain resuelve este problema con utilidades simples para agregar memoria a un sistema, con opciones que van desde retener la totalidad de todas las conversaciones, retener un resumen de la conversación hasta ese momento y retener los n intercambios más recientes.

Herramientas

A pesar de su gran potencia y versatilidad, los LLMs tienen limitaciones importantes, como la falta de información actualizada, la falta de conocimientos específicos de un campo y dificultades generales con las matemáticas.

Las herramientas de LangChain  son un conjunto de funciones que permiten a los agentes de LangChain interactuar con información del mundo real con el fin de ampliar o mejorar los servicios que puede proporcionar. Algunos ejemplos de herramientas LangChain predefinidas destacadas son:

  • Wolfram Alpha: proporciona acceso a potentes funciones computacionales y de visualización de datos, lo que permite capacidades matemáticas sofisticadas.

  • Google Search: ofrece acceso a Google Search, dotando a las aplicaciones y agentes de información en tiempo real.

  • OpenWeatherMap: obtiene información meteorológica.

  • Wikipedia: proporciona un acceso eficiente a la información de los artículos de Wikipedia.

Las últimas tendencias de IA presentadas por expertos

Obtenga insights curados sobre las noticias más importantes e intrigantes de la IA. Suscríbase a nuestro boletín semanal Think. Consulte la Declaración de privacidad de IBM .

¡Gracias! Ya está suscrito.

Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

Agentes de LangChain

Podemos crear un agente con la infraestructura LangChain para dar a un LLM la capacidad de tomar decisiones, usar herramientas y completar tareas complejas paso a paso, en lugar de simplemente generar una única respuesta de texto. A diferencia de una simple interacción de respuesta rápida con solo un LLM, un agente impulsado por LangChain puede pensar, planificar, ejecutar una secuencia de acciones, aprender y adaptarse.

LangChain proporciona una experiencia de usuario optimizada con un marco listo extensible para crear agentes de IA, por lo que no es necesario crear una nueva lógica de selección de herramientas, bucles de razonamiento (como para los agentes ReAct), seguimiento de observación/acción u orquestación y formato de instrucciones.

Los paquetes, clases y métodos específicos de LangChain varían según la plataforma de IA que pretenda utilizar. Algunos componentes clave de la clase watsonxLLM que permiten la comunicación con los modelos watsonx.ai mediante LangChain incluyen:

  • langchain_ibm: el paquete responsable de la integración de LangChain IBM. Es necesario instalar este paquete para usar cualquiera de las siguientes clases y métodos.
  • ibm_watsonx_ai: la biblioteca que permite la conexión a servicios watsonx.ai como IBM® Cloud e IBM® Cloud Pak for Data.
  • APIClient: la clase principal de la biblioteca ibm_watsonx_ai que gestiona los recursos del servicio API. Los parámetros incluyen las credenciales y endpoint de API.
  • WatsonxLLM: el contenedor para los modelos fundacionales de IBM watsonx.ai. Este contenedor proporciona integración de cadena y es necesario para importar. Los parámetros incluyen el ID del modelo, la clave de API de watsonx.ai, el endpoint de la URL, el ID del proyecto, así como cualquier parámetro de LLM.
  • ModelInference: la clase que instancia la interfaz del modelo. Los parámetros incluyen el ID del modelo, las credenciales de watsonx.ai, el ID del proyecto, los parámetros del modelo y más. Una vez instanciado, el modelo se puede pasar a la clase.
  • invocar: el método que llama al modelo directamente con una sola instrucción de tipo cadena. 
  • generate: el método que llama al modelo con varias instrucciones de tipo cadena en una lista.

Otra clase de LangChain para crear agentes de IA con la integración de llamadas a herramientas y encadenamiento con modelos watsonx.ai es ChatWatsonx. Esta clase, que se aprovecha en muchos de nuestros tutoriales, utiliza el método bind_tools para pasar una lista de herramientas al LLM en cada iteración. Estos pueden incluir herramientas personalizadas y predefinidas. Para recuperar la respuesta del agente de IA, se puede emplear el método de invocación . Una vez que se invoca el agente, el atributo tool_calls de la respuesta muestra el nombre, argumentos, id y tipo de cada llamada a la herramienta realizada, si corresponde.

LangGraph

LangGraph, creado por LangChain, es un marco de agente de IA de código abierto que admite la orquestación de múltiples agentes y permite a los desarrolladores crear flujos de trabajo agénticos donde diferentes agentes interactúan, se especializan y colaboran. 

En esencia, LangGraph emplea el poder de las arquitecturas basadas en gráficos para modelar y gestionar las intrincadas relaciones entre varios componentes del flujo de trabajo de un agente de IA. Combinado con el mecanismo de monitoreo humano en el bucle y un conjunto de integraciones de API y herramientas, LangGraph proporciona a los usuarios una plataforma versátil para desarrollar soluciones de IA y flujos de trabajo que incluyen chatbots, gráficos de estado y otros sistemas basados en agentes

Con la biblioteca langchain-mcp-adapters, los agentes LangGraph también pueden usar herramientas definidas en servidores de protocolo de contexto de modelo (MCP). La biblioteca mcp también permite a los usuarios crear servidores MCP personalizados. Básicamente, MCP permite una conexión segura entre un sistema de IA, como un agente de IA, y herramientas externas. Por lo tanto, varios LLM pueden conectarse a las mismas herramientas y fuentes de datos dado el MCP estándar. 

AI Academy

Por qué los modelos fundacionales son un cambio de paradigma para la IA

Conozca una nueva clase de modelos de IA flexibles y reutilizables que pueden desbloquear nuevos ingresos, reducir costos y aumentar la productividad, luego use nuestra guía para investigar a profundidad.

LangSmith

Lanzado en otoño de 2023, LangSmith pretende cerrar la brecha entre las capacidades de prototipado accesible que han hecho a LangChain destacar y la construcción de aplicaciones LLM de calidad de producción. 

LangSmith proporciona herramientas para monitorear, evaluar y depurar aplicaciones, incluida la capacidad de rastrear automáticamente todas las llamadas al modelo para detectar errores y probar el rendimiento en diferentes configuraciones de modelos. El uso de LangSmith no se limita a las aplicaciones creadas con el ecosistema LangChain. La evaluación del desempeño de los agentes se realiza mediante evaluadores LLM como juez. Esta observabilidad y estas métricas clave tienen como objetivo optimizar aplicaciones más sólidas y rentables. 

Primeros pasos con LangChain

LangChain es de código abierto y de uso gratuito: el código fuente está disponible para descargar en Github.

LangChain también se puede instalar en Python con un simple comando pip: pip install langchain. Para instalar todas las dependencias de LangChain (en lugar de solo las que considere necesarias), puede ejecutar el comando pip install langchain[all].

IBM proporciona muchos tutoriales paso a paso, que incluyen llamadas a herramientas LangChain, RAG agéntica, orquestación de agentes LLM, fragmentación agéntica y más.

Casos de uso de LangChain

Las aplicaciones de IA creadas con LangChain brindan una gran utilidad para una variedad de casos de uso, desde tareas sencillas de respuesta a preguntas y generación de texto hasta soluciones más complejas que utilizan un LLM como "motor de razonamiento".

Chatbots

Los chatbots se encuentran entre los usos más intuitivos de los LLM. LangChain se puede utilizar para proporcionar el contexto adecuado para el uso específico de un chatbot y para integrar chatbots en los canales de comunicación y flujos de trabajo existentes con sus propias API.

Resumen

Los modelos de lenguaje pueden encargarse de resumir muchos tipos de texto, desde desglosar artículos académicos complejos y transcripciones hasta proporcionar un resumen de los correos electrónicos entrantes.

Respuesta a preguntas

Mediante documentos específicos o bases de conocimientos especializadas (como Wolfram, arXiv o PubMed), los LLM pueden recuperar información relevante del almacenamiento y articular respuestas útiles). Si se ajusta de forma precisa o se dan las instrucciones adecuadas, algunos LLM pueden responder muchas preguntas, incluso sin información externa.

Aumento de datos

Los LLM se pueden utilizar para generar datos sintéticos para su uso en machine learning. Por ejemplo, un LLM se puede entrenar para generar muestras de datos adicionales que se parezcan mucho a los puntos de datos de un conjunto de datos de entrenamiento.

Agentes virtuales

Integrados con los flujos de trabajo adecuados, los módulos Agent de LangChain pueden utilizar un LLM para determinar de forma autónoma los siguientes pasos y tomar medidas mediante la automatización de procesos (RPA).

Soluciones relacionadas
Modelos fundacionales

Explore la biblioteca de modelos fundacionales de IBM en la cartera de watsonx para escalar la IA generativa para su negocio con confianza.

Descubra watsonx.ai
Soluciones de inteligencia artificial

Ponga la IA a trabajar en su negocio con la experiencia en IA líder en la industria y la cartera de soluciones de IBM a su lado.

Explore las soluciones de IA
Consultoría y servicios de IA

Reinvente los flujos de trabajo y las operaciones críticas mediante la incorporación de IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.

Conozca los servicios de IA
Dé el siguiente paso

Explore la biblioteca de modelos fundacionales de IBM watsonx en la cartera de watsonx para escalar la IA generativa para su negocio con confianza.

Explore watsonx.ai Explore las soluciones de IA