NeuVerbinde jeden Agenten mit UberLLM: ein Schlüssel, alle Modelle, zum Listenpreis oder günstiger.
UberLLM

Nutzen Sie das Vercel AI SDK mit UberLLM (günstigere Modelle, gleicher Code)

Installieren Sie @ai-sdk/openai-compatible, erstellen Sie einen provider mit baseURL https://api.uberllm.dev/v1 und Ihrem UberLLM key, und übergeben Sie uberllm("<model id>"), wo immer Ihre app heute ein model übergibt. Nichts anderes in der app ändert sich.

Schritte

  1. Erstelle einen Schlüssel auf deiner Schlüsselseite und füge etwas Guthaben hinzu (Konten beginnen bei $0).
  2. Installiere den Provider:
npm i ai @ai-sdk/openai-compatible
  1. Lege den Schlüssel in .env.local (Next.js) oder in die Umgebung deines Servers:
UBERLLM_API_KEY=ull_your_key
  1. Erstelle den Provider einmalig, zum Beispiel in lib/uberllm.ts:
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";

export const uberllm = createOpenAICompatible({
  name: "uberllm",
  baseURL: "https://api.uberllm.dev/v1",
  apiKey: process.env.UBERLLM_API_KEY, // sent as Authorization: Bearer <key>
  includeUsage: true, // token counts on streamed answers too
});
  1. Verwende ihn, wo du zuvor ein Modell verwendet hast:
import { generateText } from "ai";
import { uberllm } from "@/lib/uberllm";

const { text } = await generateText({
  model: uberllm("deepseek/deepseek-v4.1-flash"),
  prompt: "Write a one-line welcome message.",
});

Eine App migrieren, die bereits @ai-sdk/openai nutzt

Tauschen Sie das Modell-Argument aus und behalten Sie alles andere bei:

// before
import { openai } from "@ai-sdk/openai";
const model = openai("gpt-4o");

// after
import { uberllm } from "@/lib/uberllm";
const model = uberllm("deepseek/deepseek-v4.1-flash");

Modell-IDs sind die IDs auf uberllm.dev/models und haben immer einen Hersteller davor (openai/…, anthropic/…, deepseek/…). So können Sie GPT, Claude, Gemini und offene Modelle mit einem einzigen Schlüssel ausführen und sie vergleichen, indem Sie eine Zeichenkette ändern.

Eine Next.js Chat-Route für useChat

useChat von @ai-sdk/react postet standardmäßig an /api/chat. Diese Route antwortet darauf:

// app/api/chat/route.ts
import { streamText, convertToModelMessages, type UIMessage } from "ai";
import { uberllm } from "@/lib/uberllm";

export async function POST(req: Request) {
  const { messages }: { messages: UIMessage[] } = await req.json();
  const result = streamText({
    model: uberllm("deepseek/deepseek-v4.1-flash"),
    messages: await convertToModelMessages(messages),
  });
  return result.toUIMessageStreamResponse();
}

Bewahren Sie den Schlüssel auf dem Server auf. Legen Sie ihn niemals in eine NEXT_PUBLIC_ Variable: Jeder könnte ihn von der Seite lesen und Ihr Guthaben ausgeben.

Deckeln, was ein Aufruf kosten kann

Chat-Anfragen akzeptieren provider.max_price (Dollar pro Million Tokens). Leiten Sie es über providerOptions unter dem von Ihnen gewählten Anbieter name weiter:

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

Wenn niemand das Modell derzeit unter diesem Preis anbietet, wird der Aufruf mit max_price_exceeded abgelehnt und es wird nichts berechnet.

Fehlerbehebung

  • 401 invalid_api_key: Der Schlüssel hat den Server nicht erreicht. Starten Sie next dev neu, nachdem Sie .env.local bearbeitet haben, und prüfen Sie, ob process.env.UBERLLM_API_KEY dort gesetzt ist, wo der Code ausgeführt wird (Server, nicht der Browser).
  • 402 insufficient_credits: Fügen Sie Guthaben auf der Guthabenseite hinzu.
  • 404 model_not_found: Die ID ist falsch oder ihr Ersteller fehlt. Kopieren Sie sie von der Modellseite.
  • 400 wrong_endpoint: Sie haben ein Bild- oder Videomodell an streamText übergeben. Bildmodelle laufen über uberllm.imageModel(…) mit generateImage; Video ist ein Job, siehe Video oder Bild erstellen.
  • Die Nutzung ist bei Streams leer: Setzen Sie includeUsage: true beim Anbieter, wie oben beschrieben.

Weiterlesen

Gute models für eine app

Alle diese unterstützen tool calls. Der erste ist im folgenden Code zu finden.

ModellModell-ID (zum Einfügen)Aktueller Preis
DeepSeek V4.1 Flashdeepseek/deepseek-v4.1-flash$0.00018 Eingabe · $0.0014 Ausgabe / 1M
Gemini 3.5 Flashgoogle/gemini-3.5-flash$0.0150 Eingabe · $0.0900 Ausgabe / 1M
Claude Sonnet 5.5anthropic/claude-sonnet-5.5$0.1099 Eingabe · $0.5495 Ausgabe / 1M
GPT-5.5openai/gpt-5.5$0.1250 Eingabe · $0.7500 Ausgabe / 1M
Kimi K3moonshotai/kimi-k3$0.0010 Eingabe · $0.0788 Ausgabe / 1M
GLM 5.3z-ai/glm-5.3$0.00070 Eingabe · $0.0141 Ausgabe / 1M
Gemma 3 27Bgoogle/gemma-3-27b-it$0.00079 Eingabe · $0.0020 Ausgabe / 1M
Qwen3 VL 235B A22Bqwen/qwen3-vl-235b-a22b-instruct$0.0021 Eingabe · $0.0188 Ausgabe / 1M

Preise vom letzten stündlichen Update, ohne Aufschlag · alle Modelle →

Häufige Fragen

Funktioniert das Vercel AI SDK mit UberLLM?

Ja. Verwenden Sie den offiziellen @ai-sdk/openai-compatible Provider mit der baseURL https://api.uberllm.dev/v1 und Ihrem UberLLM Schlüssel. generateText, streamText, useChat, tool calls und generateImage funktionieren.

Benötige ich @ai-sdk/openai oder @ai-sdk/anthropic zusätzlich?

Nein. Ein einziger @ai-sdk/openai-compatible Provider erreicht jedes Chat-Modell auf UberLLM, einschließlich Claude, GPT und Gemini, über die Modell-ID.

Kann ich Videos mit dem AI SDK erstellen?

Nicht über @ai-sdk/openai-compatible, das kein Video-Modell hat. Videos sind Jobs auf UberLLM: starten Sie einen mit POST /v1/video/generations und überprüfen Sie den Status, wie in den Media-Docs gezeigt.