Conexión con la API de OpenAI
Clase 3 de 18 • Curso de Configuración de APIs de LLMs
Contenido del curso
Clase 3 de 18 • Curso de Configuración de APIs de LLMs
Contenido del curso
ruben garcia
Erasmo Hernández
Jesus Armando Tapia Gallegos
Erasmo Hernández
Santiago Pineda Botero
Gabriel Obregón
Marco Aurelio
Yuly Fuentes
Marco Aurelio
Maria José Alvarez Perez
Erasmo Hernández
Joel David Valverde Gonzalez
Erasmo Hernández
Jose Gomez Lobelo
Erasmo Hernández
realmente es muy facil. sin embargo, una vez haciendolo supongo que vendran los retos.
Hola Ruben, es que el concepto de facilidad es relativo a quién lo emite. Alguien que no conoce cómo funciona una API no va a entender mucho de esto y puede parecerle completamente imposible de hacer; mientras que alguien que conoce APIs y fundamentos de IA, se moverá como pez en el agua en estos conceptos y prácticas, así que veo que eres de los segundos, basado en tu comentario. Igual cualquier duda o aporte, siempre déjalo por esta vía para poder responderte!
Al segundo intento lo logré, primero empecé con VS Code, y cambié a Windsurf, pero quedo claro al final como se configura, después los cambios y ajustes. Bien explicado, en el paso por paso.
Bienvenido entonces al Windsurf team, Jesús!
Contexto del curso: Introducción técnica a la integración de la API de OpenAI mediante Node.js y Bun.js, enfocada en la configuración del entorno, autenticación y ejecución de llamadas básicas a modelos.
Conceptos clave: npm init, package.json (type: module), variables de entorno (.env), OpenAI SDK, log level: debug, runtime (Node vs Bun), API Key y endpoints.
Preguntas avanzadas:
type: module?log level: debug al rendimiento en producción?.env.local?dotenv en lugar de export?chat.completions y responses?debug en la privacidad de los datos?client instance en el SDK de OpenAI?node_modules y por qué es necesario?console.log para depuración?require); type: module habilita ES Modules (import).dotenv.process.env; si no está en el shell, el proceso no la ve..env.local puede filtrarse en repositorios si no está en .gitignore..env en Node.try/catch en la promesa del cliente.chat.completions es el estándar actual; responses es una simplificación.max_tokens y el historial.debug (npm package) o inspectores de VS Code.Fuentes: Documentación oficial de OpenAI (implícita en el SDK). Ausencia de fuentes externas citadas.
Vacíos y límites: Omite el manejo de errores (try/catch), seguridad avanzada (secret management), gestión de historial de chat y costos por token.
Aportes publicables:
type: module es obligatorio en proyectos modernos de JS."dotenv y variables de entorno del sistema."Recomendación: Cómo funciona la API de OpenAI
• 🧠 Meta principal: conectar un proyecto de JavaScript con la API de OpenAI.
• ⚙️ Primero necesitas: terminal, editor de código y Node.js v20+ o Bun.js.
• 📁 Luego creas el proyecto: carpeta nueva, npm init -y y ajuste de "type": "module".
• 📦 Después instalas la librería oficial: npm i openai.
• 🔐 La API key es obligatoria: se genera en OpenAI y se guarda en .env.
• ⚠️ Diferencia importante: Bun carga .env automáticamente, Node normalmente requiere configuración manual.
• 🚀 La conexión real ocurre al hacer una solicitud con client.responses.create(...).
• 🔑 Elementos clave de la solicitud: • model = modelo de IA. • input = instrucción que recibe el modelo.
• 💬 Resultado esperado: el modelo responde según el idioma, la temática y la longitud pedida.
• 🔍 Idea central: OpenAI funciona como cualquier API.
• Envías una petición.
• Agregas parámetros.
• Recibes una respuesta.
• 🔮 Lo aprendido aquí es solo el inicio: además de texto, OpenAI también permite trabajar con imágenes, audio, evaluaciones y conversaciones.
• 🎯 En una frase:
• Preparas el entorno.
• Configuras la clave.
• Instalas la librería.
• Haces la petición.
• Obtienes la respuesta.
¡¡¡HOLA A TODOS!!!
para quienes no puedan o quieran dar dinero a openAI par ausar la API pero igualmente quieren practicar este módulo✨, AQUÍ está la solución :
baseURL: "https://generativelanguage.googleapis.com/v1beta/openai",
Agregando esa simple línea de código a client podrás usar los modelos gratuitos de google (GEMINI) con la API de openAI🎉
para quienes quieran un ejemplo, dejaré una script que puedes ejecutar así como vez en la clase, solo recuerda instalar openai dotenv ¡¡¡ES CRUCIAL!!!, esto como parte de que sepas que funciona✅
import readline from "readline"; import dotenv from "dotenv"; import OpenAI from "openai"; dotenv.config(); const client = new OpenAI({ apiKey: "tu llave secreta AQUÍ", baseURL: "https://generativelanguage.googleapis.com/v1beta/openai" }); let historial = [ { role: "system", content: "personalizame AQUÍ" } ]; async function llamarIA(mensaje) { historial.push({ role: "user", content: mensaje }); process.stdout.write("\nIA: "); const stream = await client.chat.completions.create({ model: "gemini-3.1-pro-preview", messages: historial, temperature: 1, stream: true }); let respuestaCompleta = ""; for await (const chunk of stream) { const texto = chunk.choices?.[0]?.delta?.content; if (texto) { process.stdout.write(texto); respuestaCompleta += texto; } } process.stdout.write("\n\n"); historial.push({ role: "assistant", content: respuestaCompleta }); } async function main() { console.log("=== Chat IA (streaming) ==="); console.log("Escribe 'salir' para terminar\n"); console.log("dejame un corazón en el comentario de la clase 🤗\n"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); const preguntar = (texto) => new Promise((resolve) => rl.question(texto, resolve)); while (true) { const mensaje = await preguntar("Tú: "); if (["salir", "exit", "quit"].includes(mensaje.toLowerCase())) { console.log("Cerrando chat..."); rl.close(); break; } await llamarIA(mensaje); } } main();
una vez comprobado que funciona, puedes continuar con el curso haciendo todo lo que vez cada clase siempre asegurandote de que client tenga la línea :
baseURL: "https://generativelanguage.googleapis.com/v1beta/openai"
🎉Y LISTO🎉 agradecería que dejes tu corazón 🤗
Lo intenté con bun y node pero no funciona.
¡¡¡Hola @Yuly Fuentes!!! La comunidad ama los retos ( al menos yo ), y así como yo estaría dispuesto a ayudarte, otros también siempre que dejes tus errores que te dan los códigos que ejecutes, de esa forma todos podremos aprender algo nuevo juntos 😄😄😄
es facil para poder realizarlo
Una vez tienes los conocimientos, es mucho más fácil. Pero eso depende del background de cada quien, si para ti es fácil es porque ya tienes una base de conocimientos importante, reconócetelo siempre. :)
Profesor de donde sacas el primer codigo con que configuras el json por qué en la pagina de OpenAi aparece uno parecido pero no es igual?
import OpenAI from "openai"; const client = new OpenAI(); const response = await client.responses.create({ model: "gpt-5.4", tools: [ { type: "web_search" }, ], input: "What was a positive news story from today?", }); console.log(response.output_text);
Pueden irse cambiando, recuerda que esto cambia todos los días, la idea de esto es hacer las pruebas con lo que vas encontrando. De hecho, durante la grabación de este curso, nos pasó que el modelo más poderoso que existía al inicio fue reemplazado/superado...
Me pedí con que software es que lo haremos
Puedes usar el editor que prefieras, yo uso Windsurf, pero tu puedes usar el que quieras.