什么是 OpenAI 兼容的 API endpoint?
一个OpenAI兼容的API endpoint是指其请求和响应格式与OpenAI API完全一致的endpoint — 相同的 /v1/chat/completions schema,相同的 streaming format,相同的 tool-call fields — 这样,官方的OpenAI SDK只需更改 base URL 和 key 即可与其配合使用。UberLLM 兼容 OpenAI(并且在 /v1/messages 兼容 Anthropic),这就是为什么切换到它只需一行代码修改。
简短定义
一个端点(endpoint)被称为“OpenAI 兼容”,当它接受与 OpenAI API 相同的 HTTP 请求并返回相同的响应结构时。实际上,这意味着:
POST /v1/chat/completions请求体 (model,messages,temperature,tools,stream, …) 被原样接受;- 响应是相同的
choices[].message对象,并包含相同的usagetoken 计数; - streaming 使用相同的 server-sent-events
data:块,以[DONE]结尾; - 工具/函数调用使用相同的
tool_calls字段。
由于契约匹配,官方的 OpenAI SDK(无论是 Python、JavaScript 还是任何其他语言)都可以与该 endpoint 配合使用,只要您只更改 base URL 和 API key。您的应用程序代码不会察觉到任何不同。
这为何重要
OpenAI 兼容性将一个供应商的 API 变成了事实上的标准。一个兼容的 endpoint 让您能够保留您已在使用的 SDK、工具和框架集成(LangChain、Vercel AI SDK、LlamaIndex,以及数十种 agent 框架),同时改变其背后的服务。
这就是迁移到 UberLLM 的全部过程:
from openai import OpenAI
client = OpenAI(
base_url="https://api.uberllm.dev/v1", # the only line that changes
api_key="ull_your_key_here",
)
resp = client.chat.completions.create(
model="deepseek/deepseek-v4-flash",
messages=[{"role": "user", "content": "Hello!"}],
stream=True,
)
请参阅 OpenAI SDK 文档 以了解所有支持的参数。
兼容性与真正的即插即用
“兼容”是一个范围。请留意那些接受请求格式但不支持流式传输、忽略工具调用或返回非标准 usage 的端点。UberLLM 实现了聊天补全 (chat-completions) 契约,包括流式传输、工具调用和 token 使用,并额外在 /v1/messages 公开了一个 Anthropic 兼容 的端点,因此 Anthropic SDK 和 Claude Code 也能正常工作,无需更改 — Anthropic SDK 文档。
UberLLM 在标准 endpoint 背后添加了什么
endpoint 是标准的;但其背后的路由不是。您发出的每个请求都会被发送到您指定模型的最便宜且健康的卖家,在输出前发生的故障会在下一个卖家上重试,您看到的价格(无额外费用)就是您支付的价格。浏览模型请访问 /models,实时价格请访问 /llm-api-pricing。