Skip to content

OpenWebinarsNet/genai-sdks

 
 

Repository files navigation

Curso de integración de APIs-SDKs de IA Generativa

Python LangChain FastAPI Ollama OpenAI Anthropic Google ChromaDB uv

Curso práctico para desarrolladores sobre integración de modelos de lenguaje (LLMs) en aplicaciones Python utilizando LangChain como framework de orquestación.

El curso cubre desde los fundamentos del ecosistema de IA generativa hasta la implementación de un chatbot con RAG (Retrieval-Augmented Generation).

Autor: Alan Sastre


Contenido del curso

El curso está organizado en cuatro módulos progresivos, cada uno con notebooks interactivos y ejemplos ejecutables.

1. Panorama de SDKs y frameworks

Introducción al ecosistema actual de herramientas para integrar modelos de lenguaje en aplicaciones backend.

Notebook Descripción
01-landscape.ipynb Visión general de SDKs de modelos y agentes, niveles de abstracción (HTTP directo, SDKs oficiales, frameworks unificados), comparativa de proveedores
02-langchain-ecosystem.ipynb Arquitectura del ecosistema LangChain: paquetes principales, integraciones por proveedor, LangSmith para observabilidad

2. Modelos de chat con LangChain

Uso práctico de ChatModels con múltiples proveedores mediante una interfaz unificada.

Notebook Descripción
01-setup.ipynb Configuración del entorno con uv, gestión de dependencias, variables de entorno para credenciales
02-chatmodels.ipynb Inicialización de modelos, invocación, formato de mensajes, parámetros de configuración, fallbacks entre modelos
02-images.ipynb Trabajo con imágenes y modelos multimodales
02-openai-img.ipynb Generación de imágenes con la API de OpenAI
03-lcel.ipynb LangChain Expression Language: composición de prompts y modelos con el operador pipe, ChatPromptTemplate, historial de conversación
04-runnable.ipynb Interfaz Runnable: métodos invoke(), stream() y batch() para ejecución síncrona, streaming y procesamiento por lotes
05-structured-outputs.ipynb Salidas estructuradas con JSON y Pydantic usando with_structured_output()
05.tool-custom.ipynb Creación de herramientas personalizadas
06.1-tools.ipynb Definición y uso de herramientas (tools) con el decorador @tool
06.2-tool-loop.ipynb Implementación manual del bucle de llamadas a herramientas
06.3-mcp.ipynb Model Context Protocol (MCP) para integración de herramientas
07.1-openai-tool-web-search.ipynb Búsqueda web con herramientas de OpenAI
07.2-openai-langchain-web-search.ipynb Integración de búsqueda web en LangChain

3. RAG con LangChain

Implementación de Retrieval-Augmented Generation para fundamentar respuestas en documentos externos.

Notebook Descripción
01-introduccion.ipynb Fundamentos de RAG: limitaciones de LLMs, arquitectura de recuperación y generación
02-load-split-documents.ipynb Carga de documentos (PDF, Markdown, web) y división en chunks con TextSplitters
03-embed-store-documents.ipynb Generación de embeddings y almacenamiento en bases de datos vectoriales
04-retrieval.ipynb Estrategias de recuperación: VectorStoreRetriever, filtros, reranking
05.openai-retrieval.ipynb Implementación de RAG con la API de OpenAI

Incluye una carpeta documentos/ con archivos de ejemplo (PDF, Markdown) para practicar la indexación.

4. Proyecto práctico: chatbot RAG

Aplicación completa que integra todos los conceptos del curso en una API REST funcional.

Componente Descripción
src/main.py Servidor FastAPI con endpoints para indexación y chat
src/rag.py Lógica de RAG: carga de documentos, embeddings, retrieval
src/chat.py Gestión de conversaciones y generación de respuestas
src/config.py Configuración centralizada del proyecto
docs/ Documentos de ejemplo para indexar (catálogo, manuales, políticas)

Tecnologías utilizadas:

  • FastAPI: API REST moderna con documentación automática
  • Ollama: Modelos locales (gemma3:1b, embeddinggemma:300m)
  • ChromaDB: Base de datos vectorial (via Docker)
  • LangChain: Orquestación de LLM y RAG

Requisitos previos

  • Python 3.13+ instalado en el sistema
  • uv como gestor de paquetes (recomendado) o pip
  • Ollama instalado y en ejecución para modelos locales
  • Docker (opcional, para ChromaDB en el proyecto final)
  • Claves de API de los proveedores que se deseen usar (OpenAI, Anthropic, Google)

Instalación

1. Clonar el repositorio

git clone https://github.com/alansastre/genai-sdks.git
cd genai-sdks

2. Crear el entorno virtual con uv

uv venv --python 3.13.5

Activar el entorno:

# Windows
.venv\Scripts\activate

# Linux/macOS
source .venv/bin/activate

3. Instalar dependencias

uv sync

O alternativamente con pip:

pip install -r requirements.txt

4. Configurar variables de entorno

Copia el archivo de ejemplo y añade tus claves de API:

cp .env.example .env

Edita .env con tus credenciales:

OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GOOGLE_API_KEY=...
LANGSMITH_API_KEY=lsv2_...
LANGSMITH_TRACING=true

5. Descargar modelos de Ollama (opcional)

Si vas a usar modelos locales:

ollama pull gemma3:1b
ollama pull embeddinggemma:300m

Uso

Ejecutar notebooks

Los notebooks están diseñados para ejecutarse en orden dentro de cada módulo. Puedes usar Jupyter, JupyterLab o cualquier IDE compatible (VS Code, Cursor).

jupyter lab

Ejecutar el proyecto final

Desde la carpeta 04-proyecto:

# Arrancar ChromaDB
docker-compose up -d

# Iniciar el servidor
fastapi dev src/main.py

La documentación de la API estará disponible en http://127.0.0.1:8000/docs


Estructura del repositorio

genai-api-sdks/
├── 01-landscape/                # Módulo 1: panorama de SDKs
│   ├── 01-landscape.ipynb
│   └── 02-langchain-ecosystem.ipynb
├── 02-langchain-models/         # Módulo 2: modelos de chat
│   ├── 01-setup.ipynb
│   ├── 02-chatmodels.ipynb
│   ├── 03-lcel.ipynb
│   ├── 04-runnable.ipynb
│   ├── 05-structured-outputs.ipynb
│   ├── 06.1-tools.ipynb
│   ├── 06.2-tool-loop.ipynb
│   └── ...
├── 03-langchain-rag/            # Módulo 3: RAG
│   ├── 01-introduccion.ipynb
│   ├── 02-load-split-documents.ipynb
│   ├── 03-embed-store-documents.ipynb
│   ├── 04-retrieval.ipynb
│   ├── documentos/              # Archivos de ejemplo
│   └── docker-compose.yml
├── 04-proyecto/                 # Módulo 4: proyecto práctico
│   ├── src/
│   │   ├── main.py
│   │   ├── rag.py
│   │   ├── chat.py
│   │   └── config.py
│   ├── docs/                    # Documentos para indexar
│   └── docker-compose.yml
├── .env.example                 # Plantilla de variables de entorno
├── pyproject.toml               # Configuración del proyecto
├── requirements.txt             # Dependencias
└── README.md

Proveedores soportados

El curso incluye ejemplos con los principales proveedores de modelos de lenguaje:

Proveedor Paquete Modelos de ejemplo Requisitos
OpenAI langchain-openai gpt-4o, gpt-4o-mini OPENAI_API_KEY
Anthropic langchain-anthropic claude-sonnet-4, claude-haiku ANTHROPIC_API_KEY
Google langchain-google-genai gemini-2.0-flash, gemini-pro GOOGLE_API_KEY
Ollama langchain-ollama gemma3:1b, llama3, mistral Ollama en ejecución

Dependencias principales

langchain>=1.2.10
langchain-openai>=1.1.9
langchain-anthropic>=1.3.3
langchain-google-genai>=4.2.0
langchain-ollama>=1.0.1
langchain-chroma>=1.1.0
langsmith>=0.7.3
fastapi[standard]>=0.129.0
python-dotenv>=1.2.1

Recursos adicionales


Licencia

MIT.

About

Curso de SDKs de IA Generativa para developers.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Jupyter Notebook 97.6%
  • Python 2.4%