NouveauBranchez n’importe quel agent sur UberLLM : une clé, tous les modèles, au prix catalogue ou moins.
UberLLM

SDK Anthropic

UberLLM expose une Messages API compatible Anthropic à /v1/messages. Dirigez le SDK officiel anthropic vers UberLLM en configurant sa base URL, et vous pourrez appeler n'importe quel modèle du catalogue via le format filaire Anthropic — pas seulement les modèles Anthropic. UberLLM assure la traduction entre les formats Anthropic et OpenAI dans sa propre passerelle, y compris le streaming.

  • Base URL : https://api.uberllm.dev
  • Endpoint : POST /v1/messages
  • Auth : votre clé ull_

Le SDK Anthropic envoie la clé dans l'en-tête x-api-key ; UberLLM accepte également Authorization: Bearer ull_.... Les deux fonctionnent.

Python

import os
from anthropic import Anthropic

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

msg = client.messages.create(
    model="deepseek/deepseek-v4-flash",
    max_tokens=256,
    messages=[{"role": "user", "content": "Say hello in one sentence."}],
)
print(msg.content[0].text)

Streaming

with client.messages.stream(
    model="deepseek/deepseek-v4-flash",
    max_tokens=256,
    messages=[{"role": "user", "content": "Count to five."}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

TypeScript / JavaScript

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "https://api.uberllm.dev",
  apiKey: process.env.UBERLLM_API_KEY,
});

const msg = await client.messages.create({
  model: "deepseek/deepseek-v4-flash",
  max_tokens: 256,
  messages: [{ role: "user", content: "Say hello in one sentence." }],
});
console.log(msg.content[0].type === "text" ? msg.content[0].text : "");

curl

curl -N https://api.uberllm.dev/v1/messages \
  -H "x-api-key: $UBERLLM_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek/deepseek-v4-flash",
    "max_tokens": 256,
    "stream": true,
    "messages": [{"role": "user", "content": "Say hello."}]
  }'

Notes

  • max_tokens est requis par l'API Anthropic Messages — incluez-le.
  • Les modèles ne réfléchissent que lorsque vous le demandez, comme sur l'API d'Anthropic : envoyez "thinking": {"type": "enabled", "budget_tokens": 2000} (ou "adaptive"). Sans cela, les modèles de raisonnement tels que DeepSeek répondent directement, plus rapidement, et un petit max_tokens n'est jamais consommé par la réflexion. Quelques modèles ne peuvent pas désactiver la réflexion ; ils réfléchissent de toute façon.
  • Les invites système utilisent le champ system de niveau supérieur, comme dans l'API native d'Anthropic ; UberLLM le mappe correctement au modèle cible.
  • Les modèles Anthropic sont facturés comme n'importe quel autre modèle : ce que le fournisseur a facturé, sans frais UberLLM supplémentaires. Voir Tarifs.
  • Si votre framework ne parle que OpenAI, utilisez plutôt le SDK OpenAI. Les deux interfaces atteignent les mêmes modèles et utilisent la même facturation.