Material completo del curso de LangChain y LangGraph para desarrollo de aplicaciones con IA generativa.
| Módulo | Descripción |
|---|---|
01-intro |
Introducción a LangChain y primeras llamadas a APIs |
02-core |
Componentes fundamentales: prompts, LCEL, output parsers |
03-rags |
RAG (Retrieval-Augmented Generation): embeddings, vector stores, retrievers |
04-langgraph |
Workflows y grafos con LangGraph |
- Python 3.13.9
- LangChain >= 1.0.5
- LangGraph >= 1.0.2
- LLM Providers: OpenAI (
langchain-openai), Google Gemini (langchain-google-genai) - Vector Store: ChromaDB (
langchain-chroma) - UI: Streamlit
- Gestión de dependencias:
uv
git clone <repo-url>
cd langchain-ai# Instalar uv si no lo tienes
curl -LsSf https://astral.sh/uv/install.sh | sh
# Sincronizar dependencias
uv syncCrea un archivo .env en la raíz del proyecto:
OPENAI_API_KEY=sk-...
GOOGLE_API_KEY=...langchain-ai/
├── 01-intro/ # Módulo introductorio
│ ├── lecturas/ # Material de lectura
│ ├── homeworks/ # Ejercicios
│ ├── proyectos/chatbot/ # Proyecto: chatbot básico
│ ├── my_first_requests.py # Primeras llamadas a OpenAI
│ └── my_first_requests_google.py
│
├── 02-core/ # Componentes fundamentales
│ ├── lecturas/ # Notas sobre MessagesPlaceholder, Few-Shot
│ ├── homework/ # Ejercicios
│ ├── output_parser/ # Parsers con Pydantic
│ ├── cv_analyzer/ # Proyecto: analizador de CVs
│ ├── prompt_template.py # PromptTemplate básico
│ ├── chat_prompt_template.py # ChatPromptTemplate
│ ├── messages_placeholders.py # MessagesPlaceholder
│ └── intro_lcel.py # Introducción a LCEL
│
├── 03-rags/ # RAG y recuperación de información
│ ├── lecturas/ # Notas sobre retrievers
│ ├── embeddings/ # Embeddings con LangChain
│ ├── db_vector/ # Vector stores y retrievers
│ ├── text_splitter/ # Divisores de texto
│ ├── asistente_legal_RAG/ # Proyecto: asistente legal con RAG
│ ├── document_loaders.py # Cargadores de documentos
│ ├── web_base_loader.py # Carga desde web
│ ├── youtube_loader.py # Carga desde YouTube
│ └── google_drive_loader.py # Carga desde Google Drive
│
├── 04-langgraph/ # Workflows con LangGraph
│ ├── lectures/ # Material teórico
│ ├── intro-grafos/ # Introducción a grafos
│ └── proyecto/ # Proyecto: procesador de reuniones
│ ├── meeting_processor.py # Sistema de procesamiento
│ ├── prompts.py # Prompts del sistema
│ └── config.py # Configuración
│
├── pyproject.toml # Dependencias del proyecto
├── uv.lock # Lock file de uv
└── .python-version # Versión de Python
# Ejecutar cualquier script Python
uv run python <ruta/al/script.py>
# Ejemplo: introducción a LCEL
uv run python 02-core/intro_lcel.py# Asistente Legal RAG
uv run streamlit run 03-rags/asistente_legal_RAG/app.py
# CV Analyzer
uv run streamlit run 02-core/cv_analyzer/app.pyuv run python 04-langgraph/proyecto/meeting_processor.pyPrimeros pasos con LangChain:
- Arquitectura de paquetes (
langchain-core,langchain-community, partner packages) - Primeras llamadas a APIs de OpenAI y Google Gemini
- Conceptos básicos de prompts
- PromptTemplate y ChatPromptTemplate: Plantillas de prompts
- MessagesPlaceholder: Historial de conversación y few-shot examples
- LCEL (LangChain Expression Language): Composición de cadenas con
| - Output Parsers: Estructuración de respuestas con Pydantic
- Document Loaders: PDF, HTML, YouTube, Google Drive, directorios
- Text Splitters: División de documentos en chunks
- Embeddings: Vectorización de texto
- Vector Stores: ChromaDB para búsqueda semántica
- Retrievers: MMR, similarity, MultiQuery, EnsembleRetriever
- StateGraph: Definición de estados y transiciones
- Nodos: Funciones especializadas de procesamiento
- Edges: Conexiones entre nodos
- Proyecto completo: procesamiento automático de reuniones (transcripción, extracción de participantes, temas, acciones, minutas)
| Variable | Descripción | Módulos |
|---|---|---|
OPENAI_API_KEY |
API key de OpenAI | Todos |
GOOGLE_API_KEY |
API key de Google Gemini | 01-intro |
CHROMA_DB_PATH |
Ruta a la base de datos ChromaDB | 03-rags |