Skip to content

CamilaCortex/Langchain-ai

Repository files navigation

🦜🔗 Curso de LangChain y LangGraph

Material completo del curso de LangChain y LangGraph para desarrollo de aplicaciones con IA generativa.

📋 Contenido del Curso

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

🛠️ Stack Tecnológico

  • 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

🚀 Instalación y Configuración

1. Clonar el repositorio

git clone <repo-url>
cd langchain-ai

2. Instalar dependencias con uv

# Instalar uv si no lo tienes
curl -LsSf https://astral.sh/uv/install.sh | sh

# Sincronizar dependencias
uv sync

3. Configurar variables de entorno

Crea un archivo .env en la raíz del proyecto:

OPENAI_API_KEY=sk-...
GOOGLE_API_KEY=...

📁 Estructura del Proyecto

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

🏃 Cómo Ejecutar

Scripts individuales

# Ejecutar cualquier script Python
uv run python <ruta/al/script.py>

# Ejemplo: introducción a LCEL
uv run python 02-core/intro_lcel.py

Aplicaciones Streamlit

# 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.py

Proyecto LangGraph (Procesador de Reuniones)

uv run python 04-langgraph/proyecto/meeting_processor.py

📚 Módulos en Detalle

01-intro: Introducción

Primeros 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

02-core: Componentes Fundamentales

  • 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

03-rags: RAG

  • 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

04-langgraph: Workflows

  • 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)

🔑 Variables de Entorno Requeridas

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

📖 Recursos Adicionales

About

Course about LangGraph, langchain and GenAI.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages