LangChain vs LlamaIndex: Herramientas para crear aplicaciones basadas en LLM

Abraham Berrospi Casano
6 min readJun 18, 2024

--

Los LLM se han vuelto indispensables en diversas industrias para tareas como generar texto similar al humano, traducir idiomas y proporcionar respuestas a preguntas. A veces, las respuestas de los LLM sorprenden, ya que son más rápidas y precisas que las de los humanos. Esto demuestra su importante impacto en el panorama tecnológico actual.

A medida que la inteligencia artificial continúa evolucionando, dos herramientas han surgido como facilitadores clave en el desarrollo de aplicaciones impulsadas por LLM, LLamaIndex y LangChain.

Fuente: https://www.inteliq.ai/insights/langchain-vs-llamaindex

LlamaIndex y LangChain son dos robustos marcos diseñados para desarrollar aplicaciones basadas en grandes modelos lingüísticos, cada uno de ellos con distintos puntos fuertes y áreas de interés.

¿Qué es LlamaIndex? — Una interfaz sencilla para indexar datos

Fuente: https://llama-2.ai/llamaindex/

Llamaindex, anteriormente GPT Index, es un framework de datos de código abierto diseñado para desarrollar potentes aplicaciones LLM basadas en contexto. Optimizado para tareas de recuperación LLM, es ideal para aplicaciones LLM que requieren integrar datos específicos del usuario con LLMs (RAG). Estas son algunas de las características clave:

  • Carga: Puedes cargar datos de más de 150 fuentes en diferentes formatos (API’s, PDF’s, docs, SQL..etc)
  • Indexación: Puede almacenar e indexar datos en más de 40 proveedores de bases de datos vectoriales, documentales, gráficas o SQL.
  • Consultas: Puede diseñar flujos de consulta complejos, con soporte para recuperación, posprocesamiento y síntesis de respuestas. Esto le permite construir cadenas de consultas, RAG y agentes.
  • Evaluaciones: Recientemente, Llamaindex se ha unido a la escena de la evaluación, introduciendo módulos para evaluar la recuperación y la calidad de la respuesta.

¿Qué es LangChain? — Un marco de propósito general para los LLM

Fuente: https://ashukumar27.medium.com/

Langchain es un marco de trabajo de código abierto diseñado para crear aplicaciones LLM integrales. Proporciona un amplio conjunto de componentes que abstraen muchas de las complejidades de la creación de aplicaciones LLM. Estas son algunas de las características clave:

  • Formateo: Puede utilizar componentes para dar formato a la entrada del usuario y a las salidas LLM utilizando plantillas y analizadores de salida.
  • Manejo de datos: Puede utilizar varios cargadores de documentos, divisores de texto, recuperadores y modelos de incrustación.
  • Encadenamiento de componentes: Mediante el lenguaje de expresión LangChain (LCEL) se pueden encadenar todos estos componentes y crear aplicaciones sensibles al contexto.

Además, introdujeron LlangSmith, para que puedas rastrear lo que sucede en tus cadenas, y LangServe, que te ayuda a desplegar cadenas LangChain como una API REST.

LangChain vs LlamaIndex: Una visión general básica

LlamaIndex destaca en tareas de búsqueda y recuperación. Es una poderosa herramienta para indexar y consultar datos y una excelente opción para proyectos que requieren búsqueda avanzada. LlamaIndex permite el manejo de grandes conjuntos de datos, lo que resulta en una recuperación de información rápida y precisa.

LangChain es un marco con un conjunto de herramientas modular y flexible para crear una amplia gama de aplicaciones de PNL. Ofrece una interfaz estándar para construir cadenas, amplias integraciones con varias herramientas y cadenas completas de extremo a extremo para escenarios de aplicaciones comunes.

Comparación en la implementación

Estas dos tecnologías pueden ser similares cuando se trata de crear aplicaciones. Tomemos como ejemplo un chatbot. Así es como puedes crear un chatbot local usando LangChain:

from langchain.schema import HumanMessage, SystemMessage  # Importar clases
from langchain_openai import ChatOpenAI # Importar clase

# Crear una instancia de ChatOpenAI
llm = ChatOpenAI(
openai_api_base="http://localhost:5000", # Base de la API OpenAI
openai_api_key="SK******", # Clave API OpenAI (oculta)
max_tokens=1600, # Número máximo de tokens en la respuesta
Temperature=0.2, # Parámetro de temperatura para la generación de texto
request_timeout=600, # Tiempo de espera máximo de la solicitud
)

# Historial de chat (en español)
historial_de_chat = [
SystemMessage(content="Eres un redactor publicitario."),
HumanMessage(content="¿Qué significa 'Large Language Evals'?"),
]

# Obtener la salida del modelo LLM
salida = llm(historial_de_chat)

# Imprimir la salida (en español)
print(salida)

Así se construye un chatbot local con LlamaIndex:

from llama_index.llms import ChatMessage, OpenAILike  # Importar clases

# Crear una instancia de OpenAILike
llm = OpenAILike(
api_base="http://localhost:5000", # Base de la API
api_key="******", # Clave API (oculta)
is_chat_model=True, # Indica que es un modelo de chat
context_window=32768, # Tamaño de la ventana de contexto
timeout=600, # Tiempo de espera máximo
)

# Historial de chat (en español)
historial_de_chat = [
ChatMessage(rol="sistema", contenido="Eres un redactor publicitario."),
ChatMessage(rol="usuario", contenido="¿Qué significa 'Large Language Evals'?"),
]

# Obtener la salida del modelo LLM
salida = llm.chat(historial_de_chat)

# Imprimir la salida (en español)
print(salida)

Comparacion en casos de uso

  1. Prompt Engineering: Si buscas iniciar y experimentar con plantillas de prompts predefinidas, ambas opciones te serán útiles. Sin embargo, Langchain ofrece una mejor organización al permitir el seguimiento de cambios con un historial de commits, facilitando la versión de tus prompts y su organización en componentes separados. Para una comparación avanzada de prompts, herramientas como Vellum serían más adecuadas.
  2. Creación de aplicaciones RAG: Ambas opciones son buenas para comenzar con aplicaciones RAG. No obstante, si deseas crear aplicaciones RAG listas para producción, podrías preferir Llamaindex.
  3. Creación de flujos de trabajo de IA: Si necesitas soporte para componentes listos para usar que te permitan construir flujos de trabajo complejos de IA, Langchain podría ser la mejor opción.
  4. Evaluación de las características de la IA: Llamaindex es muy útil para evaluar componentes y agentes RAG. Si tu aplicación requiere evaluaciones en una variedad más amplia de tareas de LLM, la flexibilidad y opciones de LangChain podrían ser más adecuadas.
  5. Personalización y ampliación: Tanto LlamaIndex como Langchain ofrecen muchos componentes preconstruidos fáciles de usar. Si prefieres una mayor variedad de estos componentes, podrías inclinarte por Langchain. Sin embargo, ambos frameworks tienen limitaciones en cuanto a personalización, lo que los hace más adecuados para pruebas rápidas de conceptos de IA o como bibliotecas para el uso específico de componentes.
  6. Gestión del ciclo de vida: Si buscas un control más detallado sobre la gestión completa del ciclo de vida de tu IA, LangChain podría ser una mejor opción.
  7. Seguridad y protección: La decisión puede depender del framework de terceros que prefieras usar, ya que ninguno de los dos tiene funcionalidad de salvaguardias incorporada.
Fuente: https://betterprogramming.pub/

Conclusión — ¿Qué marco de trabajo elegir?

Comprender estos aspectos únicos permite a los desarrolladores elegir el marco adecuado para las necesidades específicas de su proyecto:

  • Opte por LlamaIndex si está construyendo una aplicación centrada en la eficiencia y la simplicidad de la búsqueda y la recuperación, donde el alto rendimiento y el procesamiento de grandes conjuntos de datos son esenciales.
  • Elija LangChain si su objetivo es construir aplicaciones LLM más complejas y flexibles que puedan incluir canalizaciones de procesamiento de consultas personalizadas, integración multimodal y una necesidad de ajuste del rendimiento altamente adaptable.

Referencias

Gracias por leerme,

¿Quieres seguir aprendiendo y conectarte con nuestra comunidad? Te invitamos a unirte a nuestras redes sociales. ¡Síguenos en Instagram y LinkedIn para estar al tanto de las últimas noticias, tutoriales y recursos sobre tecnología y aprendizaje automático!

Datapath

Acelerando el talento LATAM en data, cloud, analytics e inteligencia artificial

Síguenos en nuestras redes:

🔴 DISCORD: https://go.datapath.ai/Discord_IALatam

⚪️ Linkedin: https://go.datapath.ai/Linkedin

🟣 Instagram: https://go.datapath.ai/Instagram

🔵 Facebook: https://go.datapath.ai/Facebook

⚫️ Tiktok: https://go.datapath.ai/Tiktok

--

--