HACK A BOSS
FormaciónEvaluacionesPerfil
Volver
  • En directo

LangChain Intermedio: RAG y Agentes

8h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • LangChain

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Curso de nivel intermedio orientado a desarrolladores que dominan los fundamentos de LangChain y quieren construir aplicaciones LLM listas para producción. El curso cubre el diseño de cadenas modulares con componentes avanzados de LCEL —RunnableParallel, RunnablePassthrough y RunnableLambda—; la construcción de pipelines de indexación eligiendo loaders, estrategias de chunking, modelos de embedding y vectorstores según el caso de uso; la implementación de aplicaciones RAG funcionales con grounding explícito para evitar alucinaciones; la gestión del historial conversacional con RunnableWithMessageHistory; el desarrollo de agentes con herramientas personalizadas usando el decorador @tool y AgentExecutor; la validación de salidas con esquemas Pydantic y with_structured_output(); la evaluación y ajuste sistemático de prompts y retrieval; la organización del código con separación de responsabilidades; y la instrumentación de trazabilidad con LangSmith. Al finalizar, el participante será capaz de construir, evaluar y monitorizar una aplicación RAG o un agente con criterios de producción.

Al finalizar el curso, el participante será capaz de:

  • Diseñar cadenas modulares con LCEL usando RunnableParallel, RunnablePassthrough y RunnableLambda para flujos de trabajo multi-etapa
  • Integrar loaders, chunking, embeddings y vectorstores en un pipeline de indexación eligiendo las opciones adecuadas según la fuente de datos y los requisitos de búsqueda
  • Construir aplicaciones RAG funcionales con grounding explícito que recuperen contexto relevante y eviten alucinaciones
  • Implementar memoria conversacional con RunnableWithMessageHistory para mantener el contexto en interacciones multi-turno
  • Desarrollar agentes con herramientas personalizadas usando @tool y AgentExecutor, argumentando cuándo un agente es preferible a una cadena fija
  • Estructurar y validar las salidas del modelo con esquemas Pydantic y with_structured_output() para obtener respuestas predecibles y tipadas
  • Evaluar la calidad de un flujo LangChain diagnosticando fallos e iterando sobre prompt, retriever o estructura de cadena
  • Organizar un proyecto LangChain intermedio separando configuración, lógica de cadena, acceso a datos y capa de presentación
  • Instrumentar trazabilidad con LangSmith para obtener trazas de ejecución completas e identificar cuellos de botella o errores en producción
  1. LCEL avanzado y pipeline de indexación RunnableParallel para ejecutar ramas en paralelo dentro de una cadena; RunnablePassthrough para propagar la entrada original a etapas posteriores; RunnableLambda para envolver funciones Python arbitrarias como Runnables; caso de uso típico: extraer contexto y pregunta en paralelo para una cadena RAG; selección de loaders según el tipo de fuente: web, PDF, base de datos, directorio local; estrategias de chunking según el corpus: tamaño fijo vs. separadores semánticos, impacto del chunk_overlap en la calidad del retrieval; modelos de embedding: selección según dominio, dimensión del vector y coste; vectorstores comparados: ChromaDB y FAISS para uso local, Pinecone para persistencia en la nube; indexación incremental con .add_documents() frente a reconstrucción completa

  2. RAG funcional y memoria conversacional Arquitectura de una aplicación RAG: separación entre pipeline de indexación offline y pipeline de consulta online; create_retrieval_chain y create_stuff_documents_chain para montar el flujo de forma declarativa; grounding explícito: instrucción de citar fuentes y responder solo con la información recuperada; control del retrieval: parámetro k, umbral de score de similitud, MMR (Maximum Marginal Relevance) para diversidad de fragmentos; RunnableWithMessageHistory y ConversationBufferMemory para persistir el historial; estrategias de gestión del historial: buffer completo, ventana de últimos N mensajes y resumen; cuándo truncar o resumir el historial para no superar la ventana de contexto del modelo

  3. Agentes y salidas estructuradas Diferencia fundamental entre cadena fija y agente: delegación de la decisión de qué herramienta usar al LLM; decorador @tool: definición con docstring descriptivo, firma tipada y lógica Python; create_tool_calling_agent y AgentExecutor: configuración del loop de razonamiento y límite de iteraciones; flujo interno de un agente: LLM recibe pregunta + descripciones de herramientas → decide herramienta → recibe resultado → decide si necesita más herramientas o responde; casos de uso: búsqueda web, consulta a base de datos, calculadora, llamada a API externa; with_structured_output(Schema) para aprovechar el tool calling nativo del modelo y garantizar el formato de salida sin instrucciones en el prompt; PydanticOutputParser con get_format_instructions() para modelos sin tool calling; criterios para elegir entre ambos enfoques

  4. Evaluación, organización y observabilidad Golden dataset: construcción de pares (pregunta, respuesta esperada) para evaluar el impacto de cambios en el prompt o en el retriever; LLM-as-judge: uso de un modelo para puntuar coherencia, relevancia y faithfulness de las respuestas; diagnóstico de fallos RAG: retriever que devuelve fragmentos irrelevantes vs. alucinación del LLM a pesar del contexto correcto vs. prompt mal estructurado; separación de responsabilidades en un proyecto LangChain: config.py para credenciales y parámetros, chains/ para lógica LCEL, retrievers/ para acceso al vectorstore, api/ para la capa de presentación, tests/ para pruebas de la cadena; activación de LangSmith con LANGCHAIN_TRACING_V2=true y LANGCHAIN_API_KEY; interpretación del dashboard de trazas: latencia por paso, tokens consumidos, inputs y outputs de cada componente; iteración basada en el diagnóstico de las trazas: reducir topK si el retrieval es lento, comprimir el contexto si la llamada al LLM es cara

  • Python 3.9+ instalado con pip
  • pip con acceso a instalar: langchain, langchain-openai (o langchain-anthropic), langchain-community, chromadb, faiss-cpu, python-dotenv, pypdf, pydantic
  • Cuenta activa con acceso a la API de un proveedor LLM (OpenAI, Anthropic u otro indicado por el docente)
  • Editor de código (VS Code recomendado)
  • Terminal: bash, zsh o PowerShell
  • Cuenta gratuita en LangSmith (smith.langchain.com) para el bloque de observabilidad

→ LCH01 — Fundamentos de LangChain (Iniciación, 8h)

  • Explicar qué es LangChain y qué problema resuelve en aplicaciones con LLMs
  • Configurar un entorno de trabajo con Python y LangChain
  • Construir cadenas simples que combinen prompt y modelo con LCEL
  • Utilizar PromptTemplate y ChatPromptTemplate para parametrizar entradas
  • Procesar salidas del modelo con output parsers en formato controlado
  • Cargar y fragmentar documentos con loaders y RecursiveCharacterTextSplitter
  • Implementar un prototipo básico de consulta sobre documentos con embeddings y vectorstore
  • Depurar un flujo básico en LangChain identificando errores frecuentes