新把任何智能体接入 UberLLM:一个密钥,所有模型,价格不高于官方价。
UberLLM

使用 Vercel AI SDK 搭配 UberLLM (更便宜的模型,相同的代码)

安装 @ai-sdk/openai-compatible,使用 baseURL https://api.uberllm.dev/v1 和您的 UberLLM key 创建一个 provider,然后在您的应用今天传递模型的地方传递 uberllm("<model id>")。应用中的其他部分无需更改。

步骤

  1. 在您的 keys page 上创建一个密钥并添加一些信用额度 (账户起始额度为 $0)。
  2. 安装提供商:
npm i ai @ai-sdk/openai-compatible
  1. 将密钥放入 .env.local (Next.js) 或您的服务器环境中:
UBERLLM_API_KEY=ull_your_key
  1. 创建一次提供商,例如在 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. 在您之前使用模型的地方使用它:
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.",
});

迁移已使用 @ai-sdk/openai 的应用

替换模型参数,并保留其他所有内容:

// 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");

模型ID是 uberllm.dev/models 上的ID,并且前面总是有提供商(openai/…, anthropic/…, deepseek/…)。这就是您如何使用一个密钥运行 GPT、Claude、Gemini 和开源模型,并通过更改一个字符串来比较它们。

一个用于 useChat 的 Next.js 聊天路由

useChat 默认情况下从 @ai-sdk/react 发布到 /api/chat。这个路由会响应它:

// 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();
}

将密钥保留在服务器上。切勿将其放入 NEXT_PUBLIC_ 变量中:任何人都可以从页面读取它并花费您的余额。

限制单次调用的成本

聊天请求接受 provider.max_price (每百万 token 的美元价格)。将其传递给在你选择的提供商 name 下的 providerOptions:

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

如果目前没有提供商以低于该价格销售此模型,该调用将被 max_price_exceeded 拒绝,并且不收取任何费用。

故障排除

  • 401 invalid_api_key:密钥未到达服务器。编辑 .env.local 后重启 next dev,并检查 process.env.UBERLLM_API_KEY 已在代码运行的地方(服务器,而非浏览器)设置。
  • 402 insufficient_credits:在积分页面]添加积分。
  • 404 model_not_found:ID 错误或缺少其创建者。从模型页面复制。
  • 400 wrong_endpoint:您将图像或视频模型传递给了 streamText。图像模型通过 uberllm.imageModel(…) 和 generateImage 处理;视频是一项任务,请参阅制作视频或图像]。
  • 流式传输时使用量为空:在提供商处设置 includeUsage: true,如上所述。

继续阅读

适用于应用的优秀模型

所有这些都支持 tool calls。第一个在下面的代码中。

模型模型 ID(复制粘贴)当前价格
DeepSeek V4.1 Flashdeepseek/deepseek-v4.1-flash输入 $0.00018 · 输出 $0.0014 / 1M
Gemini 3.5 Flashgoogle/gemini-3.5-flash输入 $0.0150 · 输出 $0.0900 / 1M
Claude Sonnet 5.5anthropic/claude-sonnet-5.5输入 $0.1099 · 输出 $0.5495 / 1M
GPT-5.5openai/gpt-5.5输入 $0.1250 · 输出 $0.7500 / 1M
Kimi K3moonshotai/kimi-k3输入 $0.0010 · 输出 $0.0788 / 1M
GLM 5.3z-ai/glm-5.3输入 $0.00070 · 输出 $0.0141 / 1M
Gemma 3 27Bgoogle/gemma-3-27b-it输入 $0.00079 · 输出 $0.0020 / 1M
Qwen3 VL 235B A22Bqwen/qwen3-vl-235b-a22b-instruct输入 $0.0021 · 输出 $0.0188 / 1M

价格为上次每小时更新时的价格,不加收费用 · 所有模型 →

常见问题

Vercel AI SDK 是否支持 UberLLM?

是的。使用官方的 @ai-sdk/openai-compatible provider,配合 baseURL https://api.uberllm.dev/v1 和您的 UberLLM key。generateText、streamText、useChat、tool calls 和 generateImage 均可使用。

我还需要 @ai-sdk/openai 或 @ai-sdk/anthropic 吗?

不。一个 @ai-sdk/openai-compatible provider 可以通过 model id 访问 UberLLM 上的所有聊天模型,包括 Claude、GPT 和 Gemini。

我可以使用 AI SDK 制作视频吗?

不通过 @ai-sdk/openai-compatible,它没有视频模型。视频在 UberLLM 上是任务:使用 POST /v1/video/generations 启动一个,并检查其状态,如媒体文档所示。