NieuwKoppel elke agent aan UberLLM: één sleutel, elk model, voor de catalogusprijs of minder.
UberLLM

Vercel AI SDK

De Vercel AI SDK bereikt UberLLM via zijn officiële @ai-sdk/openai-compatible provider. Elk chatmodel in de catalogus werkt met generateText en streamText, en beeldmodellen werken met generateImage.

De onderstaande voorbeelden zijn uitgevoerd met de live API met ai 7.0 en @ai-sdk/openai-compatible 3.0.

Installeren

npm i ai @ai-sdk/openai-compatible zod

Maak een API key aan in Dashboard → Keys en zet deze in UBERLLM_API_KEY. Accounts beginnen bij $0,, dus voeg tegoed toe voordat je de eerste aanroep doet.

De aanbieder instellen

import { createOpenAICompatible } from "@ai-sdk/openai-compatible";

export const uberllm = createOpenAICompatible({
  name: "uberllm",
  apiKey: process.env.UBERLLM_API_KEY,
  baseURL: "https://api.uberllm.dev/v1",
  includeUsage: true, // token usage on streamed responses too
});

apiKey wordt verzonden als Authorization: Bearer <key>. Model-ID's zijn de ID's op uberllm.dev/models, bijvoorbeeld deepseek/deepseek-v4-flash, anthropic/claude-sonnet-5.5 of openai/gpt-5.5.

Genereer tekst

import { generateText } from "ai";

const { text, usage } = await generateText({
  model: uberllm("deepseek/deepseek-v4-flash"),
  prompt: "Say hello in one short sentence.",
});
console.log(text, usage);

usage.raw.cost_usd is wat de oproep kost, in Amerikaanse dollars.

Stream

import { streamText } from "ai";

const result = streamText({
  model: uberllm("deepseek/deepseek-v4-flash"),
  prompt: "Count from 1 to 5.",
});
for await (const delta of result.textStream) {
  process.stdout.write(delta);
}
console.log(await result.usage);

Functieaanroepen

import { generateText, tool, stepCountIs } from "ai";
import { z } from "zod";

const { text, steps } = await generateText({
  model: uberllm("deepseek/deepseek-v4-flash"),
  tools: {
    weather: tool({
      description: "Get the current temperature in a city, in Celsius",
      inputSchema: z.object({ city: z.string() }),
      execute: async ({ city }) => ({ city, celsius: 21 }),
    }),
  },
  stopWhen: stepCountIs(3), // call the tool, then answer
  prompt: "What is the temperature in Paris right now?",
});
console.log(text);

De meeste chatmodellen ondersteunen tools. Een modelpagina op uberllm.dev geeft aan wanneer een model dit niet doet.

Afbeeldingen

Afbeeldingsmodellen gebruiken uberllm.imageModel(...) met generateImage. De SDK vraagt om b64_json, zodat de afbeelding terugkomt in het antwoord.

import { generateImage } from "ai";

const { image } = await generateImage({
  model: uberllm.imageModel("black-forest-labs/flux.2-klein-4b"),
  prompt: "A red bicycle on a white background",
  size: "1024x1024",
});
// image.uint8Array holds the PNG

Afbeeldings-ID's staan vermeld onder Afbeeldingen op uberllm.dev/models. Bewerkingsmodellen (ID's die eindigen op -edit) nemen POST /v1/images/edits, die @ai-sdk/openai-compatible niet aanroept. Gebruik de REST call in Maak een video of afbeelding daarvoor.

Video en muziek

@ai-sdk/openai-compatible heeft geen video- of muziekmodel. Video en muziek zijn taken: start er een met POST /v1/videos (of /v1/music), poll het dan of ontvang een callback. Bekijk Maak een video of afbeelding, of laat een agent het doen via de MCP server.

Prijzen

Elke aanroep kost wat de provider ervoor in rekening bracht. Geen UberLLM-kosten op aanvragen. Krediet toevoegen met een kaart kost 5.5% + $0.50. Om een maximum te stellen aan wat een chat-aanroep kan kosten, geef provider.max_price door in de request body via providerOptions:

await generateText({
  model: uberllm("deepseek/deepseek-v4-flash"),
  prompt: "Hi",
  providerOptions: { uberllm: { provider: { max_price: { prompt: 0.2, completion: 0.4 } } } },
});

Zie Prijzen en Modellen & routing.