Módulo 2: OpenAI API - Introducción
Setup de Cuenta OpenAI y API Keys
Descripción de la cápsula
Antes de escribir código, necesitas:
- Cuenta OpenAI
- API key (token de autenticación)
- Método de pago configurado (o $5 credits gratis)
Esta cápsula te guía paso a paso en el setup completo. Al finalizar, tendrás tu API key lista para usar en Python.
Tiempo: 15 minutos
Costo: $0 (usa $5 credits gratis iniciales)
🎯 Objetivos
Al completar esta cápsula:
- ✅ Tendrás cuenta OpenAI activa
- ✅ Obtendrás tu primera API key
- ✅ Configurarás environment variables (.env)
- ✅ Verificarás que todo funciona
📝 Paso 1: Crear Cuenta OpenAI
1.1 Registro:
- Visita: https://platform.openai.com/signup
- Opciones de registro:
- Email + password
- Google account
- Microsoft account
Recomendación: Usa Google/Microsoft (menos pasos)
1.2 Verificación de email:
Si registraste con email:
- Revisa inbox (check spam también)
- Click en link de verificación
- Confirma cuenta
1.3 Configuración de perfil:
OpenAI te pedirá:
- Nombre completo
- Organización (opcional, puedes poner "Personal")
- País (para tax compliance)
- Uso previsto (selecciona "Learning/Education")
Nota: Esta info es para compliance, no afecta funcionalidad.
💳 Paso 2: Configurar Billing
2.1 Free credits ($5):
Nuevos usuarios (2024-2026):
- OpenAI da $5 credits gratis
- Válidos por 3 meses
- Suficiente para este módulo completo
Verifica tus credits:
- Ve a: https://platform.openai.com/account/billing/overview
- Busca "Free trial credits"
- Deberías ver: $5.00 disponibles
2.2 Si NO tienes free credits:
Usuarios existentes o credits expirados:
Necesitas agregar método de pago:
- Ve a: https://platform.openai.com/account/billing/payment-methods
- Click "Add payment method"
- Opciones:
- Tarjeta de crédito/débito
- PayPal (algunos países)
⚠️ Importante: Configura spending limit
- Ve a: https://platform.openai.com/account/billing/limits
- Set "Hard limit": $10/mes (recomendado para aprender)
- Set "Soft limit": $5/mes (alerta temprana)
Qué hace esto:
- Hard limit: OpenAI para requests si llegas a $10
- Soft limit: Te envía email de alerta a $5
- Previene: Factura inesperada de $500 por bug
2.3 Verificar billing activo:
Dashboard → Billing → Overview
Deberías ver:
Current balance: $5.00 (free credits)
OR
Current balance: $0.00 (paid, con card configurada)
Si dice "Please add payment method": Completa paso 2.2
🔑 Paso 3: Crear API Key
3.1 Generar API key:
- Ve a: https://platform.openai.com/api-keys
- Click "Create new secret key"
- Dale un nombre descriptivo:
- Ejemplo: "Module 2 - Learning"
- Ejemplo: "Local Development"
- Click "Create secret key"
3.2 Copiar y guardar:
⚠️ CRÍTICO: Solo verás la key UNA VEZ
sk-proj-abc123def456ghi789jkl012mno345pqr678stu901vwx234yz
Cópiala AHORA a un lugar seguro:
- Archivo temporal local (no cloud)
- Password manager (1Password, Bitwarden)
- Nota en tu máquina
Si la pierdes: Debes regenerar (la anterior queda inválida)
3.3 Verificar formato:
API keys de OpenAI tienen este formato:
sk-proj-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- Empieza con
sk-proj-(project key, nuevo formato 2024) - O
sk-(user key, formato viejo) - ~50-60 caracteres
- Solo letras, números, guiones
Si tu key NO se ve así: Algo salió mal, regenera.
🔐 Paso 4: Configurar Environment Variables
4.1 ¿Por qué environment variables?
❌ MAL (hardcoded):
import openai
openai.api_key = "sk-proj-abc123..." # NUNCA HAGAS ESTO
Problemas:
- Si commiteas a Git → Leak público
- Si compartes código → Expones tu key
- Bots scraping GitHub roban keys en minutos
✅ BIEN (environment variable):
import os
openai.api_key = os.getenv("OPENAI_API_KEY")
Beneficios:
- Key NO está en código
- .gitignore previene commits
- Diferentes keys por entorno (dev/prod)
4.2 Crear archivo .env:
En tu proyecto, crea archivo .env:
cd ~/tu-proyecto
touch .env
Contenido de .env:
OPENAI_API_KEY=sk-proj-abc123def456ghi789jkl012mno345pqr678stu901vwx234yz
Reemplaza sk-proj-abc123... con TU key real.
4.3 Configurar .gitignore:
⚠️ CRÍTICO: Prevenir leak
Crea/edita .gitignore:
# En raíz del proyecto
nano .gitignore
Añade estas líneas:
# Environment variables
.env
.env.local
.env.*.local
# OpenAI specific
openai.key
api_key.txt
secrets/
Verifica que funciona:
git status
# .env NO debe aparecer en "Untracked files"
4.4 Instalar python-dotenv:
Para leer .env desde Python:
pip install python-dotenv
Uso en código:
from dotenv import load_dotenv
import os
# Carga variables de .env
load_dotenv()
# Accede a la key
api_key = os.getenv("OPENAI_API_KEY")
print(f"API Key cargada: {api_key[:10]}...") # Muestra primeros 10 chars
Output esperado:
API Key cargada: sk-proj-ab...
✅ Paso 5: Verificación Completa
5.1 Test con curl:
Verifica que tu API key funciona SIN escribir Python:
curl https://api.openai.com/v1/models \
-H "Authorization: Bearer $OPENAI_API_KEY"
Output esperado (primeras líneas):
{
"object": "list",
"data": [
{
"id": "gpt-4-turbo",
"object": "model",
...
},
{
"id": "gpt-3.5-turbo",
"object": "model",
...
}
]
}
Si ves esto: ✅ API key funciona
Si ves error 401 Unauthorized:
{
"error": {
"message": "Invalid API key",
"type": "invalid_request_error"
}
}
❌ Key incorrecta, verifica:
- Copiaste completa (sin espacios)
- Está en .env correctamente
- Usaste
export OPENAI_API_KEY=...en terminal
5.2 Test con Python (minimal):
Crea test_api_key.py:
from dotenv import load_dotenv
import os
import requests
# Carga .env
load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")
# Verify key exists
if not api_key:
print("❌ ERROR: OPENAI_API_KEY no encontrada en .env")
exit(1)
print(f"✅ API Key cargada: {api_key[:15]}...")
# Test API call (list models)
headers = {"Authorization": f"Bearer {api_key}"}
response = requests.get("https://api.openai.com/v1/models", headers=headers)
if response.status_code == 200:
models = response.json()["data"]
print(f"✅ API funciona! {len(models)} modelos disponibles")
print(f"Ejemplos: {models[0]['id']}, {models[1]['id']}")
else:
print(f"❌ ERROR: {response.status_code} - {response.text}")
Ejecuta:
python test_api_key.py
Output esperado:
✅ API Key cargada: sk-proj-abc123...
✅ API funciona! 50 modelos disponibles
Ejemplos: gpt-4-turbo, gpt-3.5-turbo
🔒 Mejores Prácticas de Seguridad
1. NUNCA commitees API keys:
Check antes de commit:
git diff | grep -i "sk-"
# Si aparece "sk-proj" o "sk-" → DETENTE
Si ya commitaste por error:
- Regenera key INMEDIATAMENTE en dashboard
- Revoke la key vieja
- Update .env con nueva key
- Git:
git filter-branchoBFG Repo Cleaner(avanzado)
2. Usa keys específicas por proyecto:
En vez de 1 key para todo:
Project A: sk-proj-AAA...
Project B: sk-proj-BBB...
Learning: sk-proj-LLL...
Beneficio: Si leak una, las demás están seguras.
3. Rotación regular:
Cada 3-6 meses:
- Genera nueva key
- Update .env en todos los proyectos
- Revoke key vieja
Automatizable con:
- 1Password rotation
- AWS Secrets Manager
- HashiCorp Vault (enterprise)
4. Monitoring de uso:
Dashboard → Usage:
Alerta si:
- Uso > $1/día (cuando esperas $0.10)
- Spike inesperado (posible leak)
🐛 Troubleshooting
Error: "Invalid API key"
Síntomas:
401 Unauthorized: Invalid API key
Soluciones:
- Verifica formato (debe empezar con
sk-proj-osk-) - Check espacios (copia sin espacios al inicio/final)
- Regenera key en dashboard
- Verifica que .env esté en directorio correcto
Error: "You exceeded your current quota"
Síntomas:
429 Too Many Requests: You exceeded your current quota
Causas:
- Gastaste los $5 free credits
- No tienes método de pago configurado
- Llegaste al hard limit
Solución:
- Dashboard → Billing → Add payment method
- O espera a que se resetee (si es rate limit temporal)
Error: ".env no se carga"
Síntomas:
api_key = None # debería ser "sk-proj..."
Causas:
- .env NO está en root del proyecto
- No ejecutaste
load_dotenv() - Typo en variable (case-sensitive)
Solución:
# Verifica ubicación
pwd # Debe ser root del proyecto
ls -la .env # Debe existir
# Verifica contenido
cat .env
# Debe tener: OPENAI_API_KEY=sk-proj-...
📊 Resumen
Checklist de completado:
- Cuenta OpenAI creada y verificada
- $5 credits visibles O método de pago configurado
- Spending limits configurados ($5 soft, $10 hard)
- API key generada y guardada
- Archivo .env creado con key
- .gitignore configurado (previene leak)
- python-dotenv instalado
- Test con curl exitoso
- Test con Python exitoso
Si todos están ✅: Listo para escribir código!
🔗 Recursos adicionales
- OpenAI Platform Quickstart - Setup oficial
- API Keys Best Practices - Security
- Billing FAQ - Preguntas comunes
- python-dotenv docs - Environment variables
➡️ Próximo paso
Siguiente cápsula: 03-primer-request-sdk-python.md
Ahora que tienes API key funcionando, harás tu primer request a GPT-3.5:
- Instalarás OpenAI SDK
- Enviarás mensaje simple
- Recibirás respuesta
- Entenderás formato request/response
Tiempo: 20 minutos
Código: ~10 líneas
Tiempo estimado: 15 minutos
Siguiente: 03-primer-request-sdk-python.md