ChatGPT API Complete Guide: Build AI Apps in Any Language
The ChatGPT API is the most powerful and accessible AI API available. This complete guide shows you how to integrate it into your projects.
Guía Completa de ChatGPT API: Construye Aplicaciones de IA
La API de OpenAI (ChatGPT API) es la puerta de entrada para integrar IA en cualquier aplicación. Con ella puedes automatizar tareas, crear chatbots, generar contenido y mucho más. Esta guía te enseña todo desde el principio.
Obtener Tu API Key
- Ve a platform.openai.com
- Crea una cuenta o inicia sesión
- Ve a API Keys en el menú
- Haz clic en Create new secret key
- Copia la clave — no se mostrará de nuevo
Importante: Nunca pongas tu API key en el código. Usa variables de entorno.
Instalación
Python:
pip install openai python-dotenv
JavaScript/Node.js:
npm install openai dotenv
Crea un archivo .env:
OPENAI_API_KEY=sk-tu-clave-aqui
Primera Llamada a la API
Python:
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv()
client = OpenAI()
respuesta = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "Eres un asistente útil en español."},
{"role": "user", "content": "¿Qué es la inteligencia artificial?"}
]
)
print(respuesta.choices[0].message.content)
JavaScript:
import OpenAI from 'openai';
const client = new OpenAI();
const respuesta = await client.chat.completions.create({
model: 'gpt-4o-mini',
messages: [
{ role: 'system', content: 'Eres un asistente útil en español.' },
{ role: 'user', content: '¿Qué es la inteligencia artificial?' }
]
});
console.log(respuesta.choices[0].message.content);
Roles en los Mensajes
| Rol | Uso |
|---|---|
system | Instrucciones globales (personalidad, restricciones) |
user | Mensaje del usuario |
assistant | Respuestas anteriores del modelo (para memoria) |
Chatbot con Memoria
from openai import OpenAI
client = OpenAI()
mensajes = [{"role": "system", "content": "Eres un asistente de atención al cliente."}]
def chat(entrada: str) -> str:
mensajes.append({"role": "user", "content": entrada})
respuesta = client.chat.completions.create(
model="gpt-4o-mini",
messages=mensajes
)
reply = respuesta.choices[0].message.content
mensajes.append({"role": "assistant", "content": reply})
return reply
print(chat("Hola, tengo un problema con mi pedido"))
print(chat("El número es #12345")) # Recuerda el contexto
Streaming: Respuestas en Tiempo Real
from openai import OpenAI
client = OpenAI()
stream = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Escribe un poema sobre la IA"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
Function Calling: IA que Ejecuta Acciones
from openai import OpenAI
import json
client = OpenAI()
herramientas = [
{
"type": "function",
"function": {
"name": "obtener_clima",
"description": "Obtiene el clima de una ciudad",
"parameters": {
"type": "object",
"properties": {
"ciudad": {"type": "string", "description": "Nombre de la ciudad"}
},
"required": ["ciudad"]
}
}
}
]
def obtener_clima(ciudad: str) -> str:
return f"Clima en {ciudad}: 22°C, soleado"
mensajes = [{"role": "user", "content": "¿Qué tiempo hace en Barcelona?"}]
respuesta = client.chat.completions.create(
model="gpt-4o",
messages=mensajes,
tools=herramientas
)
if respuesta.choices[0].message.tool_calls:
tool_call = respuesta.choices[0].message.tool_calls[0]
args = json.loads(tool_call.function.arguments)
resultado = obtener_clima(args["ciudad"])
mensajes.append(respuesta.choices[0].message)
mensajes.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": resultado
})
respuesta_final = client.chat.completions.create(
model="gpt-4o",
messages=mensajes
)
print(respuesta_final.choices[0].message.content)
Optimización de Costos
| Modelo | Costo entrada (1M tokens) | Costo salida (1M tokens) | Uso recomendado |
|---|---|---|---|
| gpt-4o-mini | $0.15 | $0.60 | Tareas cotidianas |
| gpt-4o | $2.50 | $10.00 | Tareas complejas |
Consejos para reducir costos:
- Usa
gpt-4o-minipara el 80% de las tareas - Limita
max_tokenssegún necesites - Cachea respuestas frecuentes
- Comprime el contexto antes de enviarlo
Manejo de Errores
from openai import OpenAI, RateLimitError, APIError
import time
client = OpenAI()
def llamar_con_reintentos(mensajes, max_intentos=3):
for intento in range(max_intentos):
try:
return client.chat.completions.create(
model="gpt-4o-mini",
messages=mensajes
)
except RateLimitError:
if intento < max_intentos - 1:
time.sleep(2 ** intento)
else:
raise
except APIError as e:
print(f"Error de API: {e}")
raise
¿Quieres dominar la API de OpenAI? La guía completa de ChatGPT API en LearnGeni incluye proyectos reales, ejemplos de producción y los mejores patrones de integración. Ver todas las guías.
Earn Your International AI Certificate
This article is part of the LearnGeni AI Mastery Program — 30 comprehensive guides in 50+ languages. Complete all 30 and earn a certificate backed by WhatsGeni (Official Meta AI Partner), recognized in 50+ countries.