Vercel AI SDK
Usa los modelos de cheapaimodel en el Vercel AI SDK a través del proveedor compatible con OpenAI.
El AI SDK se conecta a servicios compatibles con OpenAI mediante el proveedor @ai-sdk/openai-compatible. Crea un proveedor para cheapaimodel y pasa sus modelos a generateText, streamText y las demás funciones del AI SDK.
| Parámetro del AI SDK | Valor | |
|---|---|---|
| Base URL | baseURL | https://api.cheapaimodel.ai/v1 |
| Clave de API | apiKey | La clave que creaste en la página Claves de API de la consola |
| ID del modelo | cheapaimodel(modelId) | deepseek-v4-1-flash o cualquier ID del catálogo |
Configuración
npm install ai @ai-sdk/openai-compatibleimport { createOpenAICompatible } from "@ai-sdk/openai-compatible";
export const cheapaimodel = createOpenAICompatible({
name: "cheapaimodel",
baseURL: "https://api.cheapaimodel.ai/v1",
apiKey: process.env.CHEAPAIMODEL_API_KEY,
includeUsage: true, // token usage on streamed responses
});import { generateText } from "ai";
import { cheapaimodel } from "./cheapaimodel";
const { text } = await generateText({
model: cheapaimodel("deepseek-v4-1-flash"),
prompt: "Explain recursion in one sentence.",
});
console.log(text);El proveedor envía las solicitudes a /v1/chat/completions. Funciona igual en un route handler de Next.js: pasa cheapaimodel("deepseek-v4-1-flash") como model.
Streaming
import { streamText } from "ai";
import { cheapaimodel } from "./cheapaimodel";
const result = streamText({
model: cheapaimodel("deepseek-v4-1-flash"),
prompt: "Write a haiku about rivers.",
});
for await (const chunk of result.textStream) {
process.stdout.write(chunk);
}
console.log("\nTokens:", (await result.usage).totalTokens);Errores comunes
Unauthenticated request to AI Gateway.El modelo se pasó como una cadena simple, por ejemplomodel: "deepseek-v4-1-flash". El AI SDK envía las cadenas de modelo simples al Vercel AI Gateway, no a cheapaimodel. Mejor pasacheapaimodel("deepseek-v4-1-flash").Not FoundoInvalid URL (POST /v1/chat/completions/chat/completions). AbaseURLle falta/v1, o incluye la ruta del endpoint. Defínelo exactamente comohttps://api.cheapaimodel.ai/v1; el proveedor agrega/chat/completionspor su cuenta.- El uso de tokens es
undefineden las llamadas con streaming. El proveedor compatible con OpenAI solo pide el uso en streaming cuando definesincludeUsage: true. Mantenlo en la configuración del proveedor. - Chats de varios turnos con
@ai-sdk/openai. SucreateOpenAItambién acepta nuestra Base URL, pero elopenai(modelId)predeterminado llama a la API de Responses, y cuando le devuelves enmessageslas respuestas anteriores del SDK, las envía como IDsitem_referenceen lugar de su texto. Eso solo funciona si el servidor guardó esas respuestas. Usa el proveedor compatible con OpenAI de arriba, oopenai.chat(modelId).