OpenAI API
OpenAI lanzó su API pública en 2020 y creó una industria nueva de un solo golpe. Hoy es la API de IA más usada del mundo, con millones de aplicaciones construidas encima. Te da acceso a GPT-4o para texto y visión, DALL-E 3 para generar imágenes, Whisper para transcribir audio a texto, y embeddings para convertir texto en vectores numéricos que representan su significado semántico.
El concepto central es el Chat Completion: envías un array de mensajes con roles (system, user, assistant) y recibes la respuesta del modelo. El mensaje "system" es el prompt que define la personalidad y reglas del asistente —como las instrucciones que le darías a un empleado nuevo el primer día.
Los parámetros clave son temperature (0 para código preciso, 0.7-1.0 para escritura creativa) y max_tokens (controla el costo y longitud de respuesta).
// npm install openai
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
});
// Chat Completion (el más usado)
async function chat(mensaje, historial = []) {
const respuesta = await openai.chat.completions.create({
model: "gpt-4o-mini", // Más rápido y barato
messages: [
{
role: "system",
content: "Eres un asistente de código experto. Responde en español."
},
...historial,
{ role: "user", content: mensaje }
],
temperature: 0.3, // Bajo para código
max_tokens: 1000,
});
return respuesta.choices[0].message.content;
}
// Streaming (respuesta en tiempo real)
async function chatStream(mensaje) {
const stream = await openai.chat.completions.create({
model: "gpt-4o-mini",
messages: [{ role: "user", content: mensaje }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || "");
}
}
// Embeddings (para búsqueda semántica)
async function obtenerEmbedding(texto) {
const resp = await openai.embeddings.create({
model: "text-embedding-3-small",
input: texto,
});
return resp.data[0].embedding; // Array de 1536 números
}
// Visión (analizar imágenes)
async function analizarImagen(imagenUrl, pregunta) {
const resp = await openai.chat.completions.create({
model: "gpt-4o",
messages: [{
role: "user",
content: [
{ type: "image_url", image_url: { url: imagenUrl } },
{ type: "text", text: pregunta }
]
}]
});
return resp.choices[0].message.content;
}
Practica esta lección
Resuelve los ejercicios del curso de IA para Devs en la app, gratis y con corrección automática.
Empezar a practicar