Inicio Topics LangChain ¿Qué es LangChain?
Descubra watsonx.ai
Una ilustración de una cadena hecha de números y letras
¿Qué es LangChain?

LangChain es un marco de orquestación de código abierto para el desarrollo de aplicaciones que utilizan 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 virtuales. 

LangChain sirve como 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 el módulo de LangChain permite a los desarrolladores y expertos en datos comparar de forma dinámica diferentes prompts e incluso diferentes modelos fundacionales con una necesidad mínima de reescribir código. Este entorno modular también permite programas que utilizan varios LLM: por ejemplo, una aplicación que utiliza un LLM para interpretar las consultas de los usuarios y otro LLM para crear una respuesta. 

Lanzado por Harrison Chase en octubre de 2022, LangChain disfrutó de un meteórico ascenso a la prominencia: en junio de 2023, era el proyecto de código abierto de más rápido crecimiento en Github1. Coincidiendo con el trascendental lanzamiento de ChatGPT de OpenAI al mes siguiente, LangChain ha desempeñado un papel importante en hacer que la IA generativa sea más accesible para los entusiastas a raíz de su gran popularidad. 

LangChain puede facilitar la mayoría de los casos prácticos de LLM y procesamiento del lenguaje natural (PLN), como chatbots, búsqueda inteligente, respuesta a preguntas, servicios de resumen o incluso agentes virtuales capaces de una automatización robótica de procesos.

Integraciones con LLM

Los LLM no son aplicaciones independientes: son modelos estadísticos preentrenados que deben combinarse con una aplicación (y, en algunos casos, fuentes de datos específicas) para cumplir con su propósito. 

Por ejemplo, ChatGPT no es un LLM: es una aplicación de chatbot que, dependiendo de la versión elegida, utiliza el modelo de lenguaje GPT-3.5 o GPT-4. Aunque es el modelo GPT el que interpreta la entrada del usuario y compone una respuesta en lenguaje natural, es la aplicación la que (entre otras cosas) proporciona una interfaz para que el usuario escriba y lea y un diseño de experiencia de usuario que rige la experiencia del chatbot. Incluso a nivel empresarial, ChatGPT no es la única aplicación que utiliza el modelo GPT: Microsoft utiliza GPT-4 para potenciar Bing Chat. 

Además, aunque los modelos fundacionales (como los que impulsan los LLM) están preentrenados en conjuntos de datos masivos, no son omniscientes. Si una tarea en particular requiere acceso a información contextual específica, como documentación interna o experiencia en el dominio, los LLM deben estar conectados a esas fuentes de datos externas. Incluso si simplemente quieres que tu modelo refleje la conciencia en tiempo real de los eventos actuales, requiere información externa: los datos internos de un modelo solo están actualizados durante el periodo de tiempo durante el cual se entrenó previamente. 

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), necesitará una forma de integrar el LLM con la API de ese software. 

Aunque estas integraciones generalmente se pueden lograr con código completamente manual, los marcos de orquestación como LangChain y la plataforma IBM watsonx simplifican enormemente el proceso. También facilitan mucho la experimentación con distintos LLM para comparar resultados, ya que se pueden intercambiar diferentes modelos con cambios mínimos en el código.

Código abierto @ IBM

De la cadena de bloques a los contenedores, pasando por la inteligencia artificial y los sistemas operativos, nuestros desarrolladores crean proyectos emergentes de código abierto y los rodean de código, documentación y material de apoyo, para que pueda unirse a la innovación.

Contenido relacionado

Suscríbase a los boletines de IBM

¿Cómo funciona LangChain?

El núcleo de LangChain es un entorno de desarrollo que racionaliza la programación de aplicaciones LLM mediante el uso de abstracción: la simplificación del código representando uno o más procesos complejos como un componente con nombre que encapsula todos sus pasos constituyentes.

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 sus infinitos dígitos. Del mismo modo, un termostato nos permite controlar la temperatura de nuestra casa sin necesidad de entender los complejos circuitos que esto implica; solo necesitamos saber cómo los diferentes ajustes del termostato se traducen 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 de lenguaje.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 tanto a los especialistas como a los recién llegados experimentar y crear prototipos rápidamente.

Importación de modelos de lenguaje

Casi cualquier LLM se puede utilizar en LangChain. La importación de modelos de lenguaje a LangChain es sencilla, 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 que crees una cuenta para recibir una clave API. Algunas de estas API, en particular las de modelos de código cerrado propios, como las que ofrecen OpenAI o Anthropic, pueden tener costes asociados.

Se puede acceder a muchos modelos de código abierto, como BLOOM de BigScience, LLaMa de Meta AI y Flan-T5 de Google, a través de Hugging Face (enlace externo a ibm.com).IBM watsonx, a través de su asociación con Hugging Face, también ofrece un conjunto organizado de modelos de código abierto.La creación de una cuenta en cualquiera de los dos servicios le permitirá generar una clave API para cualquiera de los modelos ofrecidos por ese proveedor.

LangChain no se limita a modelos fundacionales listos para usar: la clase CustomLLM (enlace externo a ibm.com) permite envoltorios LLM personalizados.Del mismo modo, puede utilizar las API de IBM watsonx y el SDK de Python, que incluye una integración de LangChain, para crear aplicaciones en LangChain con modelos que ya ha entrenado o ajustado para sus necesidades específicas utilizando la clase WatsonxLLM (y el ID de proyecto específico de ese modelo).

Explore la demostración: uso de watsonx y LangChain para realizar una serie de llamadas a un modelo de lenguaje
Plantillas de prompts

Los prompts son las instrucciones proporcionadas a un LLM. El "arte" de componer prompts que proporcionen de manera eficaz el contexto necesario para que el LLM interprete la entrada y estructure la salida de la forma más útil para usted se denomina a menudo ingeniería de prompts. 

La clase PromptTemplate de LangChain formaliza la composición de prompts sin necesidad de codificar manualmente el contexto y las consultas. Los elementos importantes de un prompt también se introducen como clases formales, como input_variables. Así, una plantilla de prompt puede contener y reproducir el contexto, instrucciones (como "no utilice términos técnicos"), un conjunto de ejemplos para guiar sus respuestas (en lo que se denomina "few-shot prompting"), un formato de salida especificado o una pregunta estandarizada a la que responder.  Puede guardar y asignar un nombre a una plantilla de prompt estructurada y reutilizarla fácilmente según sea necesario.

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

Vea el vídeo: ingeniería y ajuste de prompts
Cadenas

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

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

Para utilizar la salida de una función como entrada para la siguiente función, puede utilizar SimpleSequentialChain. Cada función puede utilizar diferentes prompts, diferentes herramientas, diferentes parámetros o incluso diferentes modelos, según sus necesidades específicas. 

Índices

Para realizar ciertas tareas, los LLM necesitarán acceso a fuentes de datos externas específicas no incluidas en su conjunto de datos de entrenamiento, como documentos internos, correos electrónicos o conjuntos de datos. LangChain hace referencia colectivamente a dicha documentación externa como "í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 (como Dropbox, Google Drive y Microsoft OneDrive), contenido web (como YouTube, PubMed o URL específicas), herramientas de colaboración (como Airtable, Trello, Figma y Notion), bases de datos (como Pandas, MongoDB y Microsoft) y mucho más. 

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 inserciones vectoriales: representaciones numéricas en forma de vectores con un número fijo de dimensiones, a menudo agrupando puntos de datos relacionados utilizando métodos de aprendizaje no supervisados.Esto permite consultas de baja latencia, incluso para conjuntos de datos masivos, lo que aumenta considerablemente la eficiencia.Las incrustaciones 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 incrustación diferentes, así como para más de 50 almacenes vectoriales diferentes (tanto alojados en la nube como locales). 

Divisores de texto 
Para aumentar la velocidad y reducir las exigencias computacionales, suele ser conveniente dividir los documentos de texto grandes en partes más pequeñas.Los TextSplitters de LangChain dividen el texto en pequeños fragmentos semánticamente significativos que luego se pueden combinar utilizando los métodos y parámetros de su elección.

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

Memoria

Los LLM, de forma predeterminada, no tienen memoria a largo plazo de conversaciones anteriores (a menos que el historial de chat se utilice 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 hasta retener un resumen de la conversación hasta el momento y retener los n intercambios más recientes.

Agentes

Los agentes de LangChain pueden utilizar un modelo de lenguaje determinado como un "motor de razonamiento" para determinar qué acciones tomar. Al crear una cadena para un agente, las entradas incluyen:

  • una lista de las herramientas disponibles que se pueden aprovechar.
  • entrada del usuario (como prompts y consultas).
  • cualquier paso relevante previamente ejecutado.
Más información sobre los agentes en LangChain
Herramientas

A pesar de su anunciada potencia y versatilidad, los LLM tienen importantes limitaciones: a saber, falta de información actualizada, falta de conocimientos específicos del ámbito y dificultad general con las matemáticas. 

Las herramientas de LangChain (enlace externo a ibm.com) 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 destacadas de LangChain son:

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

  • Google Search: proporciona acceso a Google Search, equipando a las aplicaciones y agentes con 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.

LangSmith

Lanzado en otoño de 2023, LangSmith tiene como objetivo cerrar la brecha entre las capacidades de creación de prototipos accesibles que llevaron a LangChain a la prominencia y la creación de aplicaciones LLM de calidad de producción.

LangSmith proporciona herramientas para monitorizar, 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 modelo. Esta visibilidad tiene como objetivo potenciar aplicaciones más sólidas y rentables.

Introducción a LangChain

LangChain es de código abierto y de uso gratuito: el código fuente está disponible para descargar en Github (enlace externo a ibm.com). 

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 necesarias), puede ejecutar el comando pip install langchain[all].

Hay muchos tutoriales paso a paso disponibles tanto en el ecosistema de la comunidad LangChain como en la documentación oficial en docs.langchain.com. (enlace externo a ibm.com).

Casos prácticos de LangChain

Las aplicaciones creadas con LangChain proporcionan una gran utilidad para una variedad de casos prácticos, 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 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 y transcripciones complejos hasta proporcionar un resumen de los correos electrónicos entrantes.
  • Respuesta a preguntas: al utilizar documentos específicos o bases de conocimiento especializadas (como Wolfram, arXiv o PubMed), los LLM pueden recuperar información relevante del almacenamiento y articular respuestas útiles.Si se ajustan con precisión o se les solicita correctamente, algunos LLM pueden responder a 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 de agente de LangChain pueden utilizar un LLM para determinar de forma autónoma los siguientes pasos y tomar medidas utilizando la automatización robótica de procesos (RPA).
Soluciones relacionadas
watsonx.ai

Entrenar, validar, ajustar e implementar IA generativa, modelos fundacionales y capacidades de aprendizaje automático con facilidad y crear aplicaciones de IA en una fracción del tiempo con una fracción de los datos.

Explore watsonx.ai

Servicios de consultoría de IA

Reimagine su forma de trabajar con la IA: nuestro equipo diverso y global de más de 20 000 expertos en IA puede ayudarle a diseñar y escalar la IA y la automatización de forma rápida y segura en toda su empresa, trabajando con nuestra propia tecnología IBM watsonx y un ecosistema abierto de socios para ofrecer cualquier modelo de IA, en cualquier nube, guiado por la ética y la confianza.

Explore servicios de consultoría de IA de IBM

watsonx.data

Escale las cargas de trabajo analíticas y de IA para todos sus datos, en cualquier lugar, con watsonx.data, el único almacén de datos del sector que es abierto, híbrido y con gobierno.

Explore watsonx.data
Recursos de LangChain

Herramientas, consejos y código de muestra para comenzar a crear aplicaciones con LangChain y Watsonx.

Consejos para escribir prompts del modelo fundacional

En parte arte, en parte ciencia, la ingeniería de prompts es el proceso de elaborar un texto de prompt con el mejor efecto para un modelo y unos parámetros determinados. Estos consejos le ayudarán a activar correctamente la mayoría de los modelos fundacionales que generan texto.

Uso de watsonx y LangChain para llamar a un modelo de lenguaje

Este cuaderno contiene los pasos y el código para demostrar la cadena secuencial simple mediante la integración de LangChain con modelos watsonx. Es útil estar familiarizado con Python.

Guía para principiantes de Python

Presentaremos los conceptos básicos que necesita saber para comenzar con este lenguaje de programación sencillo, desde ejecutar cálculos algebraico hasta generar resultados gráficos de sus datos.

De el siguiente paso

Entrene, valide, ajuste e implemente IA generativa, modelos fundacionales y capacidades de machine learning con facilidad y cree aplicaciones de IA en una fracción del tiempo utilizando una fracción de los datos con IBM watsonx..ai, un estudio empresarial de próxima generación para desarrolladores de IA.

Comience su prueba sin coste Reserve una demostración en directo