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

Nutzen Sie das OpenAI Python SDK und LangChain mit einer günstigeren API (UberLLM)

Setzen Sie base_url="https://api.uberllm.dev/v1" und api_key auf Ihren UberLLM Schlüssel in OpenAI(...) oder ChatOpenAI(...), dann übergeben Sie eine beliebige UberLLM model id. Chat, streaming, tool calls und JSON output funktionieren weiterhin; Ihr anderer Code bleibt unverändert.

Schritte (OpenAI Python SDK)

  1. Erstellen Sie einen Schlüssel auf Ihrer Schlüsselseite und fügen Sie Guthaben hinzu.
  2. Speichern Sie ihn als Umgebungsvariable:
export UBERLLM_API_KEY=ull_your_key
  1. Richten Sie den Client auf UberLLM aus:
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)

Das ist die ganze Änderung. client.chat.completions.create mit stream=True, tools, response_format, temperature und max_tokens funktioniert wie zuvor. Der async client (AsyncOpenAI) akzeptiert dieselben zwei Argumente.

Ohne den Code zu berühren

Das OpenAI SDK liest auch zwei Umgebungsvariablen, sodass ein Skript, das OpenAI() ohne Argumente aufruft, ohne Bearbeitung verschoben werden kann:

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

Sie müssen den model= string immer noch in eine UberLLM id wie deepseek/deepseek-v4.1-flash ändern.

Schritte (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)

Ketten, Agenten, bind_tools und .stream() funktionieren unverändert. Übergeben Sie base_url im Code, anstatt sich auf Umgebungsvariablen zu verlassen: Das Argument gewinnt immer, sodass ein verirrter OPENAI_API_BASE auf der Maschine keine Aufrufe an andere Stellen senden kann.

LangChain.js ist die gleiche Idee:

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" },
});

Wählen Sie ein günstigeres Modell für jede Aufgabe

Der Vorteil eines einzigen Schlüssels für jedes Modell ist, dass Sie aufhören können, Spitzenpreise für einfache Aufgaben zu zahlen. Eine übliche Aufteilung:

  • Komplexe Schlussfolgerungen oder kundenorientierte Antworten: ein Top-Modell wie deepseek/deepseek-v4.1-flash.
  • Massen-Zusammenfassungen, Tagging, Extraction: google/gemma-3-27b-it oder ein anderes Modell aus der untenstehenden Batch-Tabelle, oft 50 bis 100 Mal günstiger pro Token.

Ändern Sie nur den model= string, um einen Schritt von einem zum anderen zu wechseln.

Was nicht enthalten ist

UberLLM bietet Chat-Completions (/v1/chat/completions), die Responses API (client.responses.create, inklusive streaming und tool calls) und die Anthropic messages route. Es speichert keinen Zustand zwischen Aufrufen, senden Sie daher die gesamte Konversation in input anstelle von previous_response_id (Responses API Referenz). Es bietet keine Embeddings oder die Assistants API: belassen Sie diese Aufrufe bei Ihrem aktuellen Anbieter.

Fehlerbehebung

  • openai.AuthenticationError (401): Der Schlüssel ist falsch oder leer. Drucken Sie len(os.environ["UBERLLM_API_KEY"]); ein Schlüssel ist ull_ plus 43 Zeichen.
  • openai.NotFoundError (404) auf /responses oder /embeddings: Diese Routen existieren hier nicht, siehe oben.
  • model_not_found: OpenAI-Stil-IDs wie gpt-4o benötigen den Hersteller davor: openai/gpt-4o.
  • openai.RateLimitError (429): Das Pro-Minute-Limit des Schlüssels (standardmäßig 300). Erhöhen Sie es auf der Schlüssel-Seite, oder fügen Sie Wiederholungen mit Backoff hinzu.
  • 402 insufficient_credits: Laden Sie auf der Guthaben-Seite auf.

Weiterlesen

Modelle für den Anfang

Der erste ist im Code unten. Jeder akzeptiert tool calls.

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 →

Für große Batch-Jobs

Niedrigster Preis pro token für Zusammenfassung, Tagging und Extraktion bei hohem Volumen.

ModellModell-ID (zum Einfügen)Aktueller Preis
Gemma 3 27Bgoogle/gemma-3-27b-it$0.00079 Eingabe · $0.0020 Ausgabe / 1M
GPT-OSS 120Bopenai/gpt-oss-120b$0.000069 Eingabe · $0.00030 Ausgabe / 1M
DeepSeek V3.2deepseek/deepseek-v3.2$0.0026 Eingabe · $0.0039 Ausgabe / 1M
Qwen 3 235B A22B Instruct 2507qwen/qwen3-235b-a22b-2507$0.00057 Eingabe · $0.0035 Ausgabe / 1M
Gemini 3.1 Flash Litegoogle/gemini-3.1-flash-lite$0.0025 Eingabe · $0.0149 Ausgabe / 1M
DeepSeek V4.1 Flashdeepseek/deepseek-v4.1-flash$0.00018 Eingabe · $0.0014 Ausgabe / 1M

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

Häufige Fragen

Kann ich das offizielle OpenAI Python SDK mit UberLLM verwenden?

Ja. Übergeben Sie base_url="https://api.uberllm.dev/v1" und Ihren UberLLM-Schlüssel an OpenAI(), oder setzen Sie OPENAI_BASE_URL und OPENAI_API_KEY. chat.completions mit streaming, tools und JSON output funktioniert für jedes Chat-Modell.

Funktioniert LangChain mit UberLLM?

Ja. ChatOpenAI von langchain-openai akzeptiert base_url und api_key; chains, agents und tool binding funktionieren unverändert mit jedem UberLLM Chat-Modell.

Unterstützt UberLLM embeddings oder die Responses API?

Die Responses API ja, embeddings nein. UberLLM bedient /v1/chat/completions, /v1/responses (client.responses.create, ohne previous_response_id: senden Sie die gesamte Konversation bei jedem Aufruf) und die Anthropic /v1/messages route. Behalten Sie embeddings bei Ihrem aktuellen Anbieter.