OpenAI-API-compatible(OpenAI API 兼容性)特点

在当前的 AI 生态中,OpenAI-API-compatible(OpenAI API 兼容性)已经成为一种事实上的行业标准。它指的是第三方模型提供商或本地推理框架,通过模仿 OpenAI 的接口规范(路径、参数、返回结构),让开发者能够无缝切换模型。


1. 核心特点

  • **标准化的端点 (Endpoints)**:
    通常支持最常用的接口,如 /v1/chat/completions(对话)、/v1/embeddings(向量化)和 /v1/models(模型列表)。
  • 一致的数据结构
    请求体使用相同的 messages 数组(包含 rolecontent),返回体包含相同的 choicesusageid 字段。
  • 认证模式一致
    通常使用 Authorization: Bearer YOUR_API_KEY 的 Header 进行身份验证。
  • 流式输出支持
    普遍支持 stream: true 参数,采用 Server-Sent Events (SSE) 格式。

2. 为什么要使用兼容接口?

低迁移成本(无感替换)

如果你原本的代码是为 GPT-4 写的,只需更改 Base URLAPI Key,就能直接调用 DeepSeek、Claude(通过中转)、Gemini 或本地的 Llama 3,无需重构逻辑。

生态兼容性

大部分开源工具和框架(如 LangChain, LlamaIndex, Dify, Cursor, AnyType)都默认支持 OpenAI 协议。只要你的接口兼容,这些工具就能“开箱即用”。

本地部署与隐私

通过 OllamavLLM 在本地部署模型时,开启其兼容模式,可以让你在断网环境下使用那些原本为在线 API 设计的高级客户端。


3. 用法示例

A. Python SDK 用法

你不需要安装新的库,继续使用 openai 官方库即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
from openai import OpenAI

client = OpenAI(
api_key="YOUR_CUSTOM_KEY", # 目标平台的 Key
base_url="https://api.example.com/v1" # 关键:修改为兼容接口的地址
)

response = client.chat.completions.create(
model="custom-model-name", # 对应平台的模型名称
messages=[{"role": "user", "content": "你好!"}]
)

print(response.choices[0].message.content)

B. cURL 调用

直接通过 HTTP 请求访问,结构与 OpenAI 完全一致:

1
2
3
4
5
6
7
8
curl https://api.example.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "deepseek-chat",
"messages": [{"role": "user", "content": "Hello!"}],
"temperature": 0.7
}'

4. 常见的兼容提供商/工具

类型 代表工具/平台
本地推理框架 Ollama, vLLM, LM Studio, LocalAI
云端 API 提供商 DeepSeek, Together AI, Groq, OpenRouter
大厂转换层 Gemini API (已提供官方兼容模式), Azure OpenAI
集成中间件 One API, New API (用于聚合管理多个模型接口)