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

Streaming

Tanto as interfaces da OpenAI (/v1/chat/completions) quanto da Anthropic (/v1/messages) suportam streaming via Server-Sent Events. A Responses API (/v1/responses) transmite seus próprios response.* eventos; veja Responses API. Streaming é o padrão recomendado para qualquer coisa com um prompt longo, saída longa ou um limite de token alto — evita timeouts de requisição e permite que você renderize tokens à medida que chegam.

Fluxo estilo OpenAI

curl -N https://api.uberllm.dev/v1/chat/completions \
  -H "Authorization: Bearer $UBERLLM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek/deepseek-v4-flash",
    "stream": true,
    "messages": [{"role": "user", "content": "Count to five, one per line."}]
  }'

A resposta é uma sequência de data: linhas, cada uma um pedaço de conclusão de chat, terminando com data: [DONE].

from openai import OpenAI

client = OpenAI(base_url="https://api.uberllm.dev/v1", api_key="ull_...")

with client.chat.completions.create(
    model="deepseek/deepseek-v4-flash",
    stream=True,
    messages=[{"role": "user", "content": "Write a short poem."}],
) as stream:
    for chunk in stream:
        delta = chunk.choices[0].delta.content
        if delta:
            print(delta, end="", flush=True)

Contabilidade de uso

O UberLLM injeta stream_options: {"include_usage": true} para upstreams que o suportam, então o chunk final carrega um objeto usage com contagens de tokens de prompt e de completion, e cost_usd: o valor cobrado por esta requisição, em dólares americanos (o que o provedor cobrou por ela). Quando o upstream não envia um chunk de uso, o UberLLM adiciona um antes de data: [DONE]. Em /v1/messages o custo está no usage do evento message_delta.

Sua requisição é liquidada pelo custo que o marketplace reporta para aquela chamada; quando o uso está faltando, o gateway recorre a uma estimativa do tokenizer e sinaliza a requisição como estimada em seu registro de atividade. Os cabeçalhos de um stream são enviados antes que o custo seja conhecido, então um stream não tem cabeçalho X-UberLLM-Cost-USD: leia usage.cost_usd.

Interrupções

Se você se desconectar durante o streaming, o gateway cancela a requisição upstream e cobra apenas pelos tokens que foram realmente transmitidos. Você nunca é cobrado por uma resposta completa que não recebeu, e nenhum saldo reservado fica retido.

Keep-alives

O gateway envia um comentário : ping imediato ao conectar e keep-alives periódicos, para que streams de longa duração sobrevivam a timeouts de inatividade de proxy.