MớiTrỏ bất kỳ agent nào về UberLLM — một key, mọi model, bằng giá niêm yết hoặc rẻ hơn.
UberLLM

Vercel AI SDK

Vercel AI SDK truy cập UberLLM thông qua nhà cung cấp chính thức @ai-sdk/openai-compatible. Mọi mô hình trò chuyện trong danh mục tương thích với generateText và streamText, và các mô hình hình ảnh tương thích với generateImage.

Các ví dụ dưới đây đã được chạy với API trực tiếp với ai 7.0 và @ai-sdk/openai-compatible 3.0.

Cài đặt

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

Tạo một API key trong Dashboard → Keys và đặt nó vào UBERLLM_API_KEY. Tài khoản bắt đầu từ $0,, vì vậy hãy nạp tiền trước cuộc gọi đầu tiên.

Thiết lập nhà cung cấp

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 được gửi dưới dạng Authorization: Bearer <key>. Model IDs là các ID trên uberllm.dev/models, ví dụ như deepseek/deepseek-v4-flash, anthropic/claude-sonnet-5.5 hoặc openai/gpt-5.5.

Tạo văn bản

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 là chi phí của cuộc gọi, tính bằng đô la Mỹ.

Luồng ```ts

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


## Gọi công cụ

```ts
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);

Hầu hết các mô hình trò chuyện đều hỗ trợ gọi công cụ. Một trang mô hình trên uberllm.dev sẽ cho biết khi nào một mô hình không hỗ trợ.

Hình ảnh

Mô hình hình ảnh sử dụng uberllm.imageModel(...) với generateImage. SDK yêu cầu b64_json, nên hình ảnh được trả về trong câu trả lời.

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

ID hình ảnh được liệt kê dưới mục Hình ảnh trên uberllm.dev/models](uberllm.dev/models](https://uberllm.dev/models)). Các mô hình chỉnh sửa (ID kết thúc bằng -edit) cần POST /v1/images/edits, mà @ai-sdk/openai-compatible không gọi. Sử dụng lệnh gọi REST trong Make a video or image](Make a video or image](./media)) cho những mô hình đó.

Video và âm nhạc

@ai-sdk/openai-compatible không có mô hình video hoặc âm nhạc. Video và âm nhạc là các tác vụ: bắt đầu một tác vụ với POST /v1/videos (hoặc /v1/music), sau đó thăm dò trạng thái hoặc nhận một callback. Xem Tạo video hoặc hình ảnh, hoặc để một tác nhân thực hiện thông qua MCP server.

Giá cả

Mỗi cuộc gọi có chi phí bằng với mức nhà cung cấp của nó đã tính. Không có phí UberLLM cho các yêu cầu. Thêm tín dụng bằng thẻ có giá 5.5% + $0.50. Để giới hạn chi phí của một cuộc gọi trò chuyện, hãy truyền provider.max_price trong phần thân yêu cầu thông qua providerOptions:

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

Xem Giá cả và Mô hình & định tuyến.