Introducción

LangChain es un marco de desarrollo de aplicaciones de inteligencia artificial en Python de código abierto que proporciona módulos y herramientas para construir aplicaciones de inteligencia artificial basadas en modelos grandes. A través de LangChain, los desarrolladores pueden integrarse fácilmente con Modelos de Lenguaje Grande (LLMs) para completar tareas como generación de texto, respuesta a preguntas, traducción y diálogo. LangChain reduce la barrera para el desarrollo de aplicaciones de inteligencia artificial, permitiendo a cualquiera construir sus propias aplicaciones creativas basadas en LLM.

Características de LangChain:

  • LLM y Prompt: LangChain abstrae todas las API de modelos grandes de LLM, unifica la API de acceso de modelos grandes y proporciona un mecanismo de gestión de plantillas de prompt.
  • Chain: LangChain encapsula algunos escenarios comunes en módulos predefinidos, como sistemas de respuesta a preguntas basados en contexto, generación de lenguaje natural de consultas SQL, y más, nombrados "Chain" porque el proceso de implementación de estas tareas es como un flujo de trabajo, ejecutado paso a paso.
  • LCEL: LangChain Expression Language (LCEL) es la característica principal de la nueva versión de LangChain, utilizada para resolver problemas de orquestación de flujo de trabajo. A través de expresiones LCEL, podemos personalizar de manera flexible el flujo de procesamiento de tareas de IA, es decir, personalizar de manera flexible la "Chain".
  • Generación Aumentada con Recuperación (RAG): Debido a que los Modelos de Lenguaje Grande (LLMs) no comprenden nueva información y no pueden responder preguntas nuevas, podemos importar nueva información al LLM para mejorar la calidad del contenido generado. Este modo se llama modo RAG (Generación Aumentada con Recuperación).
  • Agentes: Un patrón de diseño basado en Modelos de Lenguaje Grande (LLMs) que utilizan la comprensión del lenguaje natural y las capacidades de razonamiento de LLM (LLM como el cerebro) para llamar automáticamente a sistemas y dispositivos externos juntos para completar tareas basadas en los requisitos del usuario. Por ejemplo, cuando un usuario ingresa "tomar un día libre mañana", el Modelo de Lenguaje Grande (LLM) llama automáticamente al sistema de permisos e inicia una solicitud de permiso.
  • Memoria del Modelo: Permite que el Modelo de Lenguaje Grande (LLM) recuerde el contenido de conversaciones anteriores, una capacidad conocida como memoria del modelo.

Componentes del Marco de LangChain

Componentes del Marco de LangChain

El marco de LangChain consta de varios componentes, que incluyen:

  • Biblioteca de LangChain: Bibliotecas de Python y JavaScript. Incluye los fundamentos en tiempo de ejecución para interfaces e integración de varios componentes, así como la implementación de cadenas y agentes predefinidos.
  • Plantillas de LangChain: Plantillas oficiales de tareas de inteligencia artificial proporcionadas por LangChain.
  • LangServe: Basado en FastAPI, puede publicar las cadenas definidas por LangChain como APIs REST.
  • LangSmith: Una plataforma de desarrollo, es un servicio en la nube que soporta la depuración y monitorización de tareas de LangChain.

Biblioteca de LangChain (Bibliotecas)

La biblioteca de LangChain en sí misma consta de varios paquetes diferentes.

  • langchain-core: Abstracciones básicas y lenguaje de expresión de LangChain.
  • langchain-community: Integraciones de terceros, que incluyen principalmente componentes de terceros integrados con LangChain.
  • langchain: Incluye principalmente cadenas, agentes y estrategias de recuperación.

Flujo de Procesamiento de Tareas de LangChain

Como se muestra en la imagen anterior, LangChain proporciona un conjunto de herramientas de gestión de plantillas de prompt para manejar los prompts. Luego pasa los prompts al modelo grande para su procesamiento, y finalmente procesa los resultados devueltos por el modelo grande.

La encapsulación de LangChain del modelo grande incluye principalmente dos tipos: LLM y Modelo de Chat.

  • LLM - Modelo de respuesta a preguntas que recibe una entrada de texto y devuelve un resultado de texto.
  • Modelo de Chat - Modelo de diálogo que recibe un conjunto de mensajes de diálogo y devuelve mensajes de diálogo de manera conversacional.

Conceptos Clave

1. LLMs

Los modelos fundamentales encapsulados por LangChain que reciben una entrada de texto y devuelven un resultado de texto.

2. Modelos de Chat

Modelos de chat (o modelos de diálogo) diseñados específicamente para escenarios de diálogo, a diferencia de LLMs. Estos modelos pueden recibir un conjunto de mensajes de diálogo y devolver mensajes de diálogo de manera conversacional.

3. Mensajes

Se refiere al contenido de los mensajes en los modelos de chat. Los tipos de mensajes incluyen Mensaje Humano, Mensaje de IA, Mensaje del Sistema, Mensaje de Función, y Mensaje de Herramienta, entre otros.

4. Prompts

LangChain encapsula un conjunto de herramientas específicamente utilizadas para la gestión de prompts, facilitándonos el formato del contenido del prompt.

5. Analizadores de Salida

Como se mencionó en la imagen anterior, después de que LangChain recibe el contenido de texto devuelto por el modelo grande (LLM), puede utilizar analizadores de salida dedicados para dar formato al contenido de texto, como analizar JSON o convertir la salida de LLM en un objeto de Python.

5. Recuperadores

Para importar fácilmente datos privados en el modelo de lenguaje grande (LLM) y mejorar la calidad de las respuestas del modelo, LangChain encapsula un marco de recuperación (Recuperadores) que facilita la carga, segmentación, almacenamiento y recuperación de datos de documentos.

6. Almacenes Vectoriales

Para admitir búsquedas de similitud semántica para datos privados, LangChain admite diversas bases de datos vectoriales.

7. Agentes

Los agentes, generalmente referidos a aplicaciones diseñadas con el modelo de lenguaje grande (LLM) como motor de decisión, llaman automáticamente a sistemas externos y dispositivos de hardware para completar tareas de usuario basadas en la entrada del usuario. Es un patrón de diseño con el modelo de lenguaje grande (LLM) en su núcleo.

Escenarios de Aplicación

  • Chatbots: Construcción de asistentes de chat inteligentes, chatbots de atención al cliente y chatbots conversacionales.
  • Base de Conocimientos Preguntas y Respuestas (Q&A): Proporcionar servicios de preguntas y respuestas de dominio abierto mediante la integración con grafos de conocimiento.
  • Escritura Inteligente: Como la redacción de artículos, escritura creativa y resumen de texto.