Publicado: 16 de julio de 2026
El SDK de IA de Vercel es un kit de herramientas de TypeScript independiente del proveedor diseñado para ayudarte a compilar aplicaciones y agentes potenciados por IA con frameworks de IU populares, como Next.js, React, Svelte, Vue, Angular, y tiempos de ejecución, como Node.js. Si bien la mayoría de los proveedores se basan en la nube, esta primera guía de una serie de dos partes se enfoca en un proveedor de la comunidad llamado Browser AI, creado por Jakob Hoeg Mørk (quien recibió financiamiento de Google). Browser AI te permite usar la API de Prompt con el SDK de IA de Vercel. En la segunda parte de la serie, se explica cómo agregar una interfaz gráfica de usuario a tu aplicación de IA.
Cómo instalar la biblioteca
El paquete @browser-ai/core es el proveedor del SDK de IA para la API de Prompt. Puedes instalarlo con npm.
El paquete instala automáticamente el SDK de Vercel AI subyacente como una dependencia de igual nivel.
npm install @browser-ai/core
Uso básico
Para usar el proveedor, haz lo siguiente:
- Importa el constructor
browserAIdel paquete@browser-ai/core. - Importa las funciones
generateText()ostreamText()del SDK de Vercel AI. Ambas funciones generan texto y llaman a herramientas para una instrucción determinada con un modelo de lenguaje:
- La función
generateText()no es de transmisión y es ideal para resultados cortos o para resultados en los que solo puedes continuar una vez que se recibe todo el resultado. - La función
streamText()transmite generaciones de texto desde un modelo de lenguaje. Puedes usar esta función para casos de uso interactivos, como chatbots y otras aplicaciones en tiempo real.
Para crear una instancia del modelo, haz lo siguiente:
Llamar a
browserAI()Nota: Como práctica recomendada, siempre verifica elavailability()del modelo, lo que te permite usar un resguardo (consulta Uso híbrido) cuando el modelo es'unavailable'o mostrar una actualización del progreso cuando el modelo es'downloadable'o'downloading'.Luego, puedes llamar a
generateText()ostreamText(). Consulta la documentación del SDK de Vercel AI para obtener la lista completa de parámetros. Por ejemplo, en lugar de pasar unpromptdirectamente como en el siguiente muestra de código, también puedes pasar un objetomessagesmás complejo para la instrucción de varios pasos o pasar una instrucciónsystem.
import { browserAI } from '@browser-ai/core';
import { generateText, streamText } from 'ai';
(async () => {
const model = browserAI();
const availability = await model.availability();
if (availability === 'unavailable') {
console.log('Your browser cannot run the built-in AI model.');
return;
}
if (availability === 'downloadable' || availability === 'downloading') {
await model.createSessionWithProgress((progress) => {
console.log(`Download progress: ${Math.round(progress * 100)}%`);
});
}
// Non-streaming text generation.
const { text } = await generateText({
model,
prompt: 'Tell me a short joke',
});
console.log(text);
// Streaming text generation.
const result = streamText({
model,
prompt: 'Tell me a long joke',
});
for await (const chunk of result.textStream) {
console.log(chunk);
}
})();
Uso multimodal
El paquete @browser-ai/core admite la entrada multimodal con un objeto type: 'file' en los objetos de contenido del array messages.
content campos de objeto (type: 'file')
| Campo | Tipos de valores aceptados | Descripción |
|---|---|---|
type |
'file' |
Marca este objeto de contenido como una entrada de archivo. |
data |
string | Uint8Array | Buffer | ArrayBuffer | URL |
El contenido del archivo, en uno de los varios formatos admitidos |
Cuando data es un string, debe ser uno de los siguientes:
| Formato | Descripción |
|---|---|
| Contenido codificado en Base64 | Bytes sin procesar del archivo codificados como base64 |
| URL de datos en Base64 | p. ej., data:image/png;base64,... |
| URL de http(s) | Es una URL remota desde la que se recuperará el archivo. |
Consulta el siguiente fragmento de código para ver un ejemplo:
import { streamText } from 'ai';
import { browserAI } from '@browser-ai/core';
const base64ImageData = await getBase64ImageData();
const audioData = await getAudioBuffer();
const result = streamText({
model: browserAI(),
messages: [
{
role: 'user',
content: [
{ type: 'text', text: "What's in this image?" },
{ type: 'file', mediaType: 'image/png', data: base64ImageData },
],
},
{
role: 'user',
content: [
{ type: 'text', text: 'Transcribe this audio file!' },
{ type: 'file', mediaType: 'audio/mp3', data: audioData },
],
},
],
});
for await (const chunk of result.textStream) {
console.log(chunk);
}
Resultados estructurados
El SDK de Vercel AI admite resultados estructurados a través de zod, una validación de esquemas con TypeScript primero y con inferencia de tipos estáticos. Consulta la documentación de zod sobre cómo definir esquemas para obtener más detalles.
Para solicitar un objeto JSON que coincida con tu esquema, pasa output: Output.object({
schema }) a generateText() o streamText():
generateText()conOutput.object()devuelve el objeto JSON final en el campooutputuna vez que se completa la generación.streamText()conOutput.object()proporciona un iterable asíncronopartialOutputStreamen el que se garantiza que cada resultado intermedio se analizará correctamente como JSON. Por ejemplo, si tu esquema exige un array de dos números, recibirás[]como el primer resultado parcial,[123]como el segundo y[123, 456]como el resultado final.
import { browserAI } from '@browser-ai/core';
import { generateText, streamText, Output } from 'ai';
import z from 'zod';
const model = browserAI();
const schema = z.object({
recipe: z.object({
name: z.string(),
ingredients: z.array(z.object({ name: z.string(), amount: z.string() })),
steps: z.array(z.string()),
}),
});
const prompt = 'Generate a lasagna recipe.';
// Non-streaming object generation.
const { output } = await generateText({
model,
output: Output.object({ schema }),
prompt,
});
console.log(output);
// Streaming object generation.
const { partialOutputStream } = streamText({
model,
output: Output.object({ schema }),
prompt,
});
for await (const partialObject of partialOutputStream) {
console.log(partialObject);
}
Uso híbrido
Donde el SDK de IA de Vercel realmente se destaca es en el uso híbrido. Proporciona una capa de abstracción de nivel superior sobre las implementaciones de nivel inferior de los proveedores subyacentes. Cuando usas la API de Prompt como proveedor, creas un objeto model llamando al constructor browserAI.
import { browserAI } from '@browser-ai/core';
const model = browserAI();
Para usar un proveedor diferente, por ejemplo, el proveedor de IA generativa de Google, debes hacer lo siguiente:
Instala el proveedor seleccionado.
npm install @ai-sdk/googleCrea una instancia de
modelcon el constructor del proveedor que, para los proveedores de la nube como la IA generativa de Google, suele implicar pasar una clave de API. En el caso del proveedor de IA generativa de Google, también puedes pasar un identificador de modelo en la nube, por ejemplo,'gemini-2.5-flash'. Todo el resto del código, como las llamadas astreamText(), permanece exactamente igual.import { createGoogleGenerativeAI } from '@ai-sdk/google'; const API_KEY = 'YOUR_GOOGLE_AI_API_KEY'; const google = createGoogleGenerativeAI({ apiKey: API_KEY }); const model = google('gemini-2.5-flash');
Respaldo en la nube
Un caso de uso híbrido clásico es usar la API de Prompt cuando está disponible y recurrir a un proveedor de servicios en la nube en otras circunstancias. Para verificar si la API de Prompt está disponible, el paquete @browser-ai/core proporciona la función doesBrowserSupportBuiltInAI(). Puedes usar esta función para crear instancias de model de forma dinámica como un modelo basado en la nube o un modelo integrado.
import { doesBrowserSupportBuiltInAI } from '@browser-ai/core';
const API_KEY = 'YOUR_GOOGLE_AI_API_KEY';
const model = await (async () => {
if (doesBrowserSupportBuiltInAI()) {
const { browserAI } = await import('@browser-ai/core');
return browserAI();
}
const { createGoogleGenerativeAI } = await import('@ai-sdk/google');
const google = createGoogleGenerativeAI({ apiKey: API_KEY });
return google('gemini-2.5-flash');
})();
Respaldo integrado
Otro caso de uso híbrido es usar preferentemente un proveedor de servicios en la nube cuando se está en línea, pero volver al proveedor integrado si se admite la API de Prompt.
import { doesBrowserSupportBuiltInAI } from '@browser-ai/core';
const API_KEY = 'YOUR_GOOGLE_AI_API_KEY';
let model;
const switchProvider = async (forceCloud = false) => {
model = await (async () => {
if (navigator.onLine || forceCloud) {
const { createGoogleGenerativeAI } = await import('@ai-sdk/google');
const google = createGoogleGenerativeAI({ apiKey: API_KEY });
return google('gemini-2.5-flash');
}
const { browserAI } = await import('@browser-ai/core');
return browserAI();
})();
};
if (doesBrowserSupportBuiltInAI()) {
window.addEventListener('online', switchProvider);
window.addEventListener('offline', switchProvider);
}
await switchProvider(true);
Demostración
La demostración en vivo te permite probar ambos proveedores uno al lado del otro. Selecciona Cloud API (Gemini 2.5 Flash) o Built-in AI en los botones de selección, presiona Ejecutar y observa cómo la página completa cuatro secciones en secuencia: un chiste corto generado de una sola vez con generateText(), un chiste largo transmitido token por token con streamText(), una receta de lasaña que se muestra como un objeto JSON completo y, luego, esa misma receta transmitida como JSON incrementalmente válido con partialOutputStream. Si seleccionas IA integrada y tu navegador aún no descargó el modelo, aparecerá un indicador de progreso antes de que comiencen las demostraciones.

Próximo paso
Ahora que sabes cómo usar la API de Prompt con el SDK de Vercel AI, el siguiente paso es usar la IU del SDK de AI y los elementos de AI para agregar una interfaz gráfica de usuario a tu app.
La IU del SDK de IA está diseñada para ayudarte a compilar con facilidad aplicaciones interactivas de chat, finalización y asistente. Es un kit de herramientas independiente del framework que optimiza la integración de funcionalidades avanzadas de IA en tus aplicaciones.
AI Elements es una biblioteca de componentes y un registro personalizado que te ayuda a compilar aplicaciones nativas para IA más rápido. Proporciona componentes prediseñados, como conversaciones, mensajes y mucho más.
Lee Usa la IU del SDK de Vercel AI y los elementos de IA con la API de Prompt para aprender a agregar una GUI a tu app.