BaruArahkan agen apa pun ke UberLLM — satu key, semua model, harga resmi atau lebih murah.
UberLLM

Gunakan OpenAI Python SDK dan LangChain dengan API yang lebih murah (UberLLM)

Atur base_url="https://api.uberllm.dev/v1" dan api_key ke kunci UberLLM Anda di OpenAI(...) atau ChatOpenAI(...), lalu teruskan ID model UberLLM apa pun. Chat, streaming, tool calls, dan output JSON tetap berfungsi; kode Anda yang lain tetap sama.

Langkah-langkah (OpenAI Python SDK)

  1. Buat kunci di halaman kunci Anda dan tambahkan saldo.
  2. Simpan sebagai variabel lingkungan:
export UBERLLM_API_KEY=ull_your_key
  1. Arahkan klien ke UberLLM:
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.uberllm.dev/v1",
    api_key=os.environ["UBERLLM_API_KEY"],
)

resp = client.chat.completions.create(
    model="deepseek/deepseek-v4.1-flash",
    messages=[{"role": "user", "content": "Give me three names for a coffee shop."}],
)
print(resp.choices[0].message.content)

Itu saja perubahannya. client.chat.completions.create dengan stream=True, tools, response_format, temperature, dan max_tokens berfungsi seperti sebelumnya. Klien async (AsyncOpenAI) menerima dua argumen yang sama.

Tanpa menyentuh kode

OpenAI SDK juga membaca dua variabel lingkungan, jadi skrip yang memanggil OpenAI() tanpa argumen dapat dipindahkan tanpa mengeditnya:

export OPENAI_BASE_URL=https://api.uberllm.dev/v1
export OPENAI_API_KEY=ull_your_key
python your_script.py

Anda masih perlu mengubah string model= menjadi ID UberLLM seperti deepseek/deepseek-v4.1-flash.


Langkah-langkah (LangChain)

pip install langchain-openai
import os
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="deepseek/deepseek-v4.1-flash",
    base_url="https://api.uberllm.dev/v1",
    api_key=os.environ["UBERLLM_API_KEY"],
)
print(llm.invoke("Say hello in one sentence.").content)

Chains, agents, bind_tools dan .stream() berfungsi tanpa perubahan. Lewatkan base_url dalam kode daripada mengandalkan variabel lingkungan: argumen selalu diutamakan, jadi sebuah OPENAI_API_BASE di mesin tidak dapat mengirim panggilan ke tempat lain.

LangChain.js memiliki ide yang sama:

import { ChatOpenAI } from "@langchain/openai";

const llm = new ChatOpenAI({
  model: "deepseek/deepseek-v4.1-flash",
  apiKey: process.env.UBERLLM_API_KEY,
  configuration: { baseURL: "https://api.uberllm.dev/v1" },
});

Pilih model yang lebih murah untuk setiap pekerjaan

Inti dari satu kunci untuk setiap model adalah Anda bisa berhenti membayar harga terdepan untuk pekerjaan mudah. Pembagian umum:

  • Penalaran sulit atau jawaban yang berhadapan langsung dengan pelanggan: model teratas seperti deepseek/deepseek-v4.1-flash.
  • Ringkasan massal, penandaan, ekstraksi: google/gemma-3-27b-it atau model lain dari tabel batch di bawah, seringkali 50 hingga 100 kali lebih murah per token.

Cukup ubah string model= untuk berpindah dari satu ke yang lain.


Apa yang tidak ada

UberLLM melayani kompletasi obrolan (/v1/chat/completions), Responses API (client.responses.create, termasuk streaming dan tool calls) dan Anthropic messages route. Ini tidak menyimpan status antar panggilan, jadi kirimkan seluruh percakapan di input alih-alih previous_response_id (Responses API reference). Ini tidak melayani embeddings atau Assistants API: pertahankan panggilan tersebut pada penyedia Anda saat ini.


Penyelesaian Masalah

  • openai.AuthenticationError (401): kunci salah atau kosong. Cetak len(os.environ["UBERLLM_API_KEY"]); kunci adalah ull_ ditambah 43 karakter.
  • openai.NotFoundError (404) on /responses or /embeddings: rute-rute tersebut tidak ada di sini, lihat di atas.
  • model_not_found: ID gaya OpenAI seperti gpt-4o membutuhkan pembuat di depannya: openai/gpt-4o.
  • openai.RateLimitError (429): batas per menit kunci (300 secara default). Tingkatkan di halaman kunci, atau tambahkan percobaan ulang dengan backoff.
  • 402 insufficient_credits: isi ulang di halaman kredit.

Baca juga

Model untuk memulai

Yang pertama ada di kode di bawah. Masing-masing menerima tool calls.

ModelID model (tempel ini)Harga sekarang
DeepSeek V4.1 Flashdeepseek/deepseek-v4.1-flash$0.00018 input · $0.0014 output / 1M
Gemini 3.5 Flashgoogle/gemini-3.5-flash$0.0150 input · $0.0900 output / 1M
Claude Sonnet 5.5anthropic/claude-sonnet-5.5$0.0610 input · $0.3052 output / 1M
GPT-5.5openai/gpt-5.5$0.1250 input · $0.7500 output / 1M
Kimi K3moonshotai/kimi-k3$0.00095 input · $0.0788 output / 1M
GLM 5.3z-ai/glm-5.3$0.00032 input · $0.0145 output / 1M
Gemma 3 27Bgoogle/gemma-3-27b-it$0.00079 input · $0.0020 output / 1M
Qwen3 VL 235B A22Bqwen/qwen3-vl-235b-a22b-instruct$0.0021 input · $0.0188 output / 1M

Harga pada build per jam terakhir, tanpa tambahan biaya · semua model →

Untuk pekerjaan batch besar

Harga terendah per token untuk meringkas, menandai, dan mengekstraksi dalam jumlah besar.

ModelID model (tempel ini)Harga sekarang
Gemma 3 27Bgoogle/gemma-3-27b-it$0.00079 input · $0.0020 output / 1M
GPT-OSS 120Bopenai/gpt-oss-120b$0.000069 input · $0.00030 output / 1M
DeepSeek V3.2deepseek/deepseek-v3.2$0.0026 input · $0.0039 output / 1M
Qwen 3 235B A22B Instruct 2507qwen/qwen3-235b-a22b-2507$0.00057 input · $0.0035 output / 1M
Gemini 3.1 Flash Litegoogle/gemini-3.1-flash-lite$0.0025 input · $0.0149 output / 1M
DeepSeek V4.1 Flashdeepseek/deepseek-v4.1-flash$0.00018 input · $0.0014 output / 1M

Harga pada build per jam terakhir, tanpa tambahan biaya · semua model →

FAQ

Bisakah saya menggunakan SDK Python OpenAI resmi dengan UberLLM?

Ya. Lewatkan base_url="https://api.uberllm.dev/v1" dan kunci UberLLM Anda ke OpenAI(), atau atur OPENAI_BASE_URL dan OPENAI_API_KEY. chat.completions dengan streaming, tools, dan output JSON berfungsi untuk setiap model chat.

Apakah LangChain berfungsi dengan UberLLM?

Ya. ChatOpenAI dari langchain-openai menerima base_url dan api_key; chains, agents, dan tool binding berfungsi tanpa perubahan terhadap model chat UberLLM mana pun.

Apakah UberLLM mendukung embeddings atau API Responses?

Responses API ya, embeddings tidak. UberLLM melayani /v1/chat/completions, /v1/responses (client.responses.create, tanpa previous_response_id: kirim seluruh percakapan setiap panggilan) dan route Anthropic /v1/messages. Pertahankan embeddings pada provider Anda saat ini.