Integrar múltiples proveedores de inteligencia artificial en un solo proyecto suele implicar código repetitivo, configuraciones distintas y estructuras incompatibles. En esta etapa del curso se demuestra cómo el AI SDK de Vercel elimina ese problema al ofrecer una interfaz unificada para OpenAI, Anthropic y Google Gemini, reduciendo drásticamente el boilerplate y manteniendo toda la funcionalidad que ya se había construido.
¿Por qué reemplazar los SDKs individuales por el AI SDK de Vercel?
Hasta este punto, el proyecto OtroGPT tenía funciones separadas para cada proveedor: chatWithOpenAI y chatWithAnthropic, cada una con la estructura específica que exigía su SDK. Esto significaba duplicar lógica, manejar formatos de mensajes diferentes y mantener código que crecía con cada nuevo proveedor.
Con el AI SDK de Vercel, todo eso se reemplaza por una sola función que utiliza generateText [06:08]. Esta función recibe tres parámetros clave:
- Modelo: se selecciona dinámicamente según el proveedor elegido en el frontend.
- System prompt: se define una sola vez al inicio del archivo y aplica para todos los proveedores.
- Mensajes: se capturan desde la interfaz y se pasan sin transformaciones adicionales.
El concepto de abstracción es central aquí. El AI SDK actúa como una capa que oculta las diferencias entre proveedores, permitiendo que el mismo patrón de código funcione con cualquiera de ellos.
¿Qué cambios concretos se hicieron en el código?
Los cambios se concentran en el archivo principal de la API de Next.js. Las importaciones ahora incluyen cuatro librerías: la de ai (el SDK base de Vercel) y los tres proveedores — @ai-sdk/openai, @ai-sdk/anthropic y @ai-sdk/google [02:30].
¿Cómo se configuran los modelos disponibles?
Se define un listado de modelos por proveedor [03:05]:
- OpenAI: GPT-5.
- Anthropic: Claude Sonnet 4.6.
- Google: Gemini 3 Flash Preview.
El type del proveedor se amplió para incluir google, y la lógica del selectedProvider creció para manejar tres opciones en lugar de dos.
¿Cómo cambia la respuesta de la API?
Antes, la respuesta de Next.js devolvía directamente los mensajes y la respuesta del modelo. Ahora se especifica que el mensaje regrese con el rol de asistente y que el contenido sea de tipo text [06:42]. El manejo de errores con catch permanece exactamente igual.
Para las variables de entorno, es necesario configurar tres API keys en el archivo .env.local: la de OpenAI, la de Anthropic y la de Google [07:20]. En cuanto a dependencias, el package.json debe incluir las cuatro librerías del ecosistema Vercel.
¿Cómo funciona el cambio de proveedor en tiempo real?
Una de las funcionalidades más potentes que se conserva es el cambio de proveedor en medio de una conversación sin perder contexto [08:30]. En la demostración se realizó lo siguiente:
- Se seleccionó Gemini y se preguntó cuál es la capital de Colombia.
- Gemini respondió correctamente: Bogotá.
- Se cambió a Anthropic y se preguntó "¿y cómo es su bandera?".
- Anthropic respondió con el contexto completo de la conversación previa.
Esto funciona porque los mensajes se almacenan en el frontend y se envían completos al nuevo proveedor. Los primeros tres mensajes fueron procesados por Google Gemini y el cuarto por Anthropic, pero la conversación se mantuvo coherente [09:25].
El modelo de Gemini Flash Preview es más liviano y económico, lo que puede hacer que responda un poco más lento que los modelos de OpenAI o Anthropic [08:05]. Esta diferencia entre modelos — en velocidad, costo y capacidad — es algo que se comprende mejor después de haber trabajado directamente con cada SDK individual.
La razón pedagógica detrás de no empezar directamente con el AI SDK es clara: las abstracciones tienen valor real cuando entiendes qué hay debajo [10:00]. Saber cómo funciona cada proveedor, cómo medir el uso de tokens, cómo configurar límites y qué diferencias existen entre modelos permite diagnosticar problemas con precisión cuando algo falla. Esa comprensión profunda no la entrega una abstracción por sí sola.
Si ya tienes tu versión de OtroGPT funcionando con el AI SDK, comparte el enlace en los comentarios para recibir feedback directo.