NovoConecte qualquer agente ao UberLLM: uma chave, todos os modelos, pelo preço de tabela ou menos.
UberLLM

SDK da Anthropic

O UberLLM expõe uma Messages API compatível com Anthropic em /v1/messages. Aponte o SDK oficial da anthropic para o UberLLM definindo sua base URL, e você poderá chamar qualquer modelo do catálogo através do formato de comunicação da Anthropic — não apenas modelos da Anthropic. O UberLLM traduz entre os formatos da Anthropic e da OpenAI em seu próprio gateway, incluindo streaming.

  • Base URL: https://api.uberllm.dev
  • Endpoint: POST /v1/messages
  • Autenticação: sua chave ull_

O SDK da Anthropic envia a chave no cabeçalho x-api-key; o UberLLM também aceita Authorization: Bearer ull_.... Ambos funcionam.

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."}]
  }'

Notas

  • max_tokens é exigido pela API de Mensagens da Anthropic — inclua-o.
  • Modelos pensam apenas quando você pede, como na API da Anthropic: envie "thinking": {"type": "enabled", "budget_tokens": 2000} (ou "adaptive"). Sem isso, modelos de raciocínio como o DeepSeek respondem diretamente, mais rápido, e um pequeno max_tokens nunca é consumido pelo pensamento. Alguns modelos não conseguem desativar o pensamento; eles pensam de qualquer forma.
  • System prompts usam o campo de nível superior system, como na API nativa da Anthropic; a UberLLM o mapeia para o modelo de destino corretamente.
  • Modelos da Anthropic são cobrados como qualquer outro modelo: o que o provedor cobrou, sem taxa da UberLLM adicionada. Veja Preços.
  • Se seu framework só fala OpenAI, use o OpenAI SDK em vez disso. Ambas as interfaces alcançam os mesmos modelos e usam a mesma cobrança.