4. Proveedores

Conecta OpenAI como proveedor

Configura el acceso a la API, selecciona gpt-5-mini y comprueba la conexión con la misma base de acciones.

25 min aprox.6 pasosPráctica + comprobación
Qué aprenderás
  • Separar la suscripción de ChatGPT de la facturación de la API.
  • Configurar una clave con permisos para generar respuestas.
  • Usar OPENAI_API_KEY y el adaptador de OpenAI sin duplicar acciones.
  • Interpretar fallos de credencial, permisos, cuota y red.
Índice de esta lección

Paso 1

Prepara tu acceso a la plataforma de OpenAI

Esta clase es una alternativa a Groq o Anthropic. Solo necesitas un proveedor funcionando para seguir el curso. Para usar OpenAI desde esta práctica entra en platform.openai.com y revisa el proyecto con el que vas a trabajar.

La suscripción de ChatGPT y el uso de la API tienen facturación separada. No asumas que una suscripción financia las llamadas de este programa ni que un token de sesión de ChatGPT sustituye una API key. Consulta los ajustes de facturación y los límites de tu cuenta de API.

No fijamos una recarga mínima ni un precio en la lección: dependen de las condiciones vigentes. Puedes estudiar la configuración sin comprar créditos ni ejecutar una llamada.

Preparación de la práctica
Paso 1 · text
Proveedor → OpenAIPlataforma → https://platform.openai.comAdaptador → @ai-sdk/openaiVariable local → OPENAI_API_KEYModelo de esta clase → gpt-5-mini

Qué deberías observar

Identificas la cuenta de API y su proyecto sin confundirlos con una suscripción de ChatGPT.

Paso 2

Crea una clave con permiso para generar respuestas

En los ajustes de API keys del proyecto crea una credencial con un nombre reconocible, por ejemplo curso-patrones. Comprueba que pertenece al proyecto correcto y guárdala únicamente en tu entorno local.

La clave y tu rol deben permitir la operación que vas a realizar. El adaptador OpenAI de esta práctica usa Responses API por defecto, por lo que necesita permiso para crear respuestas. Una configuración de solo lectura no autoriza esa generación.

Revisa los permisos del proyecto y de la clave en la plataforma. Para este ejercicio concede acceso a la generación que necesitas; no hace falta habilitar todas las operaciones del proyecto. No compartas la credencial en los apuntes ni en el repositorio.

Comprobación de acceso
Paso 2 · text
Proyecto correctoClave activa del proyectoPermiso para crear respuestasAcceso a gpt-5-miniFacturación y límites revisados

Qué deberías observar

Puedes explicar por qué una clave válida puede fallar si no tiene permiso para la operación o para el proyecto.

Paso 3

Añade el adaptador compatible con la práctica

El proyecto base ya declara @ai-sdk/openai. Si reconstruiste el ejemplo mínimo con Groq, instala el adaptador desde tu carpeta de práctica. Esta versión coincide con el material de estudio y AI SDK 7.

Conserva ai, los scripts y las dependencias de desarrollo. No necesitas instalar el paquete openai del SDK oficial para este ejemplo: la integración que estamos usando es @ai-sdk/openai junto con generateText.

Repetir npm install no garantiza que obtengas la última versión de un paquete: intervienen las versiones declaradas y el lockfile. Si después necesitas actualizar el adaptador, elige una versión compatible, revisa su documentación y vuelve a compilar. Actualizar tampoco concede acceso a un modelo.

Terminal, dentro de tu práctica
Paso 3 · bash
npm install @ai-sdk/openai@4.0.37

Qué deberías observar

El adaptador queda registrado en package.json y el lockfile; instalarlo todavía no realiza una llamada.

Paso 4

Configura OPENAI_API_KEY en el entorno local

Añade OPENAI_API_KEY con valor vacío a .env.example, la plantilla pública. La base original puede llamar a su plantilla .env.template. En tu .env local coloca la credencial real, sin espacios accidentales ni un # que convierta la línea en comentario.

El adaptador lee OPENAI_API_KEY por defecto. Conserva ese nombre exacto; GROQ_API_KEY y ANTHROPIC_API_KEY no autentican una petición a OpenAI. La clave real se queda fuera de Git y del código TypeScript.

Los scripts dev y start de la práctica cargan .env con --env-file. Si usas otro comando, asegúrate de que carga ese entorno. No hace falta añadir una librería de carga de variables a los scripts que ya configuramos.

.env.example (plantilla pública)
Paso 4 · bash
# Rellena el valor real solo en tu .env local.OPENAI_API_KEY=

Qué deberías observar

La plantilla permanece vacía y el proceso de la práctica recibe la variable del proveedor elegido.

Paso 5

Selecciona gpt-5-mini en el modelo compartido

Reemplaza selected-model.ts por este ejemplo. Conserva la exportación model: las acciones existentes ya la importan, así que puedes cambiar de proveedor sin reescribirlas.

La clase mantiene gpt-5-mini, el modelo utilizado en el material. Confirma su disponibilidad para tu proyecto. El autocompletado puede mostrar identificadores del adaptador instalado, pero no demuestra permisos ni acceso en la plataforma.

Exporta un único model. Para volver a Groq o Anthropic restaura su importación y su selección, y comprueba la variable correspondiente. No dupliques export const model ni cambies el nombre que esperan las acciones.

src/helpers/selected-model.ts
Paso 5 · typescript
import { openai } from '@ai-sdk/openai'; export const model = openai('gpt-5-mini');

Qué deberías observar

La acción sigue importando model y ahora se conecta a OpenAI.

Paso 6

Ejecuta la prueba y diagnostica un fallo

En main.ts selecciona getMessageFromModelFailSafe de la lección de errores. Ejecuta primero npm run build y luego npm run dev desde la práctica. build comprueba los tipos; dev envía una petición real a OpenAI.

El prompt pide “OK, todo listo!”. Lee el resultado real: el tiempo depende del modelo, de la petición y de la red. Una respuesta a este saludo comprueba la conexión, pero no evalúa todavía un patrón agéntico.

Si falla, empieza por el nombre OPENAI_API_KEY, la carga de .env y la integridad de la clave. Ante 401 revisa autenticación; ante 403, acceso y permisos; ante 429, cuota o límites; ante 404, modelo o recurso. Un error sin respuesta HTTP puede exigir comprobar la red.

Practica el diagnóstico con casos escritos o una variable ficticia en un archivo temporal. No modifiques tu clave real para provocar un error. Después de corregir la causa, comprueba la conexión antes de seguir con los patrones.

src/main.ts
Paso 6 · typescript
import { getMessageFromModelFailSafe } from './actions/get-message-model.js'; await getMessageFromModelFailSafe();

Qué deberías observar

Obtienes una respuesta o una orientación de diagnóstico; el ejemplo FailSafe conserva un código de salida de fallo cuando la llamada no se completa.

Ahora te toca

Prueba la idea por tu cuenta

Prepara el selector para OpenAI y explica qué cambia respecto a Groq. Clasifica estos casos: OPENAI_API_KEY ausente, 403 y 429. Si tienes acceso a la API, ejecuta la prueba; en caso contrario, completa el mapa y el diagnóstico sin llamar al modelo.

Necesito una pista

Separa carga del entorno, permisos y límites. main.ts y las acciones importan el mismo model.

Comparar con una solución

El selector usa @ai-sdk/openai y gpt-5-mini; la credencial se configura en OPENAI_API_KEY. Una variable ausente exige revisar el entorno, 403 orienta a acceso/permisos y 429 a cuota o límites. Las acciones conservan su importación de model.

Antes de seguir

Comprueba lo que aprendiste

No es una nota. Es una pausa para comprobar que la idea quedó clara.

1. ¿Qué financia las llamadas de esta práctica a la API de OpenAI?
2. ¿Qué variable lee por defecto el adaptador OpenAI?
3. ¿Qué debes revisar si la clave existe pero no puedes crear una respuesta?
4. ¿Qué puedes concluir después de repetir npm install?

¿Terminaste la práctica?

Haz el ejercicio y comprueba tus respuestas antes de marcar la lección como completada.

Apuntes y código de esta lección