新把任何智能体接入 UberLLM:一个密钥,所有模型,价格不高于官方价。
UberLLM

流式传输

OpenAI (/v1/chat/completions) 和 Anthropic (/v1/messages) 的接口都支持通过 Server-Sent Events 进行 streaming。Responses API (/v1/responses) 会 streaming 自己的 response.* events;参见 Responses API。Streaming 是推荐的默认设置,适用于任何具有长 prompt、长 output 或高 token 上限的场景——它避免了请求超时,并允许您在 token 到达时进行渲染。

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

响应是一个由 data: 行组成的序列,每行是一个聊天补全块,以 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)

用量计费

UberLLM 会为支持它的上游服务注入 stream_options: {"include_usage": true},因此最终的 chunk 会包含一个 usage object,其中带有 prompt 和 completion token 计数,以及 cost_usd:此请求的计费金额,以美元计(即提供商收取的费用)。当上游服务未发送 usage chunk 时,UberLLM 会在 data: [DONE] 之前添加一个。在 /v1/messages 上,费用位于 message_delta event 的 usage 中。

您的请求将按照 marketplace 报告的该次调用的费用进行结算;当用量信息缺失时,gateway 会回退到 tokenizer 估算,并在您的 活动日志 中将该请求标记为估算。stream 的 headers 在费用已知之前发送,因此 stream 没有 X-UberLLM-Cost-USD header:请阅读 usage.cost_usd。

中断

如果您在流式传输中途断开连接,网关会取消上游请求,并只结算实际已传输的 token。您绝不会为未收到的完整响应付费,并且不会有预留余额被卡住。

保活机制

网关在连接时会立即发送一个 : ping 注释,并定期发送保活信号,以确保长时间运行的流能抵御代理空闲超时。