更新于 2026-04-14

OpenAI 兼容 API 完整指南

「OpenAI-compatible API」是 2023 年后 LLM 生态的事实标准。本文讲这个标准是什么、为什么几乎所有供应商都实现它、以及如何把现有 OpenAI SDK 切到 Claude / Gemini / DeepSeek 等模型。

什么是 OpenAI 兼容 API

OpenAI 最早定义了 /v1/chat/completions 端点的请求/响应 schema。由于 OpenAI SDK 用户基数极大,后来的模型供应商(DeepSeek、Mistral、Groq 等)和聚合网关(OpenRouter、ModelServer)都选择实现**一模一样的 schema**,这样用户只需要把 base_url 改成他们的域名,代码就能跑。

关键端点

端点用途
POST /v1/chat/completions聊天补全(最常用)
POST /v1/embeddings向量 embedding
GET /v1/models模型列表
POST /v1/completions旧版文本补全(逐步废弃)

如何切换:改两行搞定

用 OpenAI Python SDK 为例:

Python
from openai import OpenAI

# 原来走 OpenAI 官方
# client = OpenAI(api_key="sk-openai-...")

# 切到 ModelServer(支持 40+ 模型)
client = OpenAI(
    base_url="https://modelserver.dev/v1",
    api_key="sk-...",  # ModelServer 的 key
)

# 代码一字不改
resp = client.chat.completions.create(
    model="claude-sonnet-4-6",  # 或 gpt-5, gemini-2.5-pro, deepseek-v3...
    messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)

Node.js 同理:

Node.js
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://modelserver.dev/v1",
  apiKey: "sk-...",
});

const resp = await client.chat.completions.create({
  model: "claude-sonnet-4-6",
  messages: [{ role: "user", content: "你好" }],
});
console.log(resp.choices[0].message.content);
base_url 末尾要带 /v1
OpenAI SDK 假设 base_url 已经包含 /v1https://modelserver.dev/v1 是对的,https://modelserver.dev 会导致 SDK 拼出 /chat/completions(缺 /v1)。Anthropic SDK 正好相反(不能带 /v1)。

Streaming

stream: true,服务端发 SSE 事件:

Python
stream = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{"role": "user", "content": "写一首关于春天的短诗"}],
    stream=True,
)
for chunk in stream:
    delta = chunk.choices[0].delta.content or ""
    print(delta, end="", flush=True)

Function calling / Tool use

OpenAI 标准的 tools / tool_choice 参数 ModelServer 全部支持,无论后端是 Claude 还是 DeepSeek 还是 Gemini。

OpenAI 兼容模式的局限

有些非 OpenAI 独有的功能在 OpenAI schema 里放不下:

  • Anthropic 的 cache_control(prompt caching)
  • Anthropic 的 tool_use block 中间态
  • Gemini 的 generationConfig 细节

这些情况下用对应的**原生 API 端点**更合适。ModelServer 同时支持 Anthropic 原生 /v1/messages,详见 Anthropic API Proxy

ModelServer 支持的模型(部分)

Family代表 model ID
Anthropic Claudeclaude-opus-4-6, claude-sonnet-4-6, claude-haiku-4-5
OpenAIgpt-5, gpt-4o, o1
Googlegemini-2.5-pro, gemini-2.5-flash
DeepSeekdeepseek-v3, deepseek-r1

完整清单看 Pricing

一把 key 打通 40+ 模型

OpenAI SDK 只改 base URL,直接用 Claude / GPT / Gemini / DeepSeek。

立即接入
OpenAI 兼容 API 完整指南 | ModelServer