大名鼎鼎的 OpenAI 发布之后,其 OpenAI API规范 逐渐成了事实上的工业标准,很多大模型API都兼容这个规范。这也就意味着:OpenAI的SDK可以使用很多大模型。
兼容 OpenAI API规范 的大模型API包括:百炼、本地部署的Ollama、Anthropic(Claude 系列)、Mistral、Google DeepMind (Gemini)、Cohere、xAI(Elon Musk 团队)…
下面我们简单了解一下 OpenAI API规范。
基本设计理念
-
统一接口:无论是 Chat、Embedding、Image 还是 TTS,接口格式尽量保持一致。
-
RESTful + JSON:请求/响应都采用 HTTP + JSON。
-
流式返回:支持 SSE (Server-Sent Events) 流式输出,便于逐字生成。
常见 API 规范
1. Chat Completions (聊天接口)
路径:
POST /v1/chat/completions
请求:
{
"model": "gpt-4o-mini",
"messages": [
{"role": "system", "content": "你是一个有帮助的助手"},
{"role": "user", "content": "你好,请介绍一下你自己"}
],
"temperature": 0.7,
"stream": false
}
响应:
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1690000000,
"model": "gpt-4o-mini",
"choices": [
{
"index": 0,
"message": {"role": "assistant", "content": "你好!我是一个AI助手。"},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 15,
"total_tokens": 25
}
}
关键字段:
-
messages:对话上下文数组
-
temperature:控制随机性([0-1],数值越大随机性越高)
-
stream:是否流式返回
2. Embeddings (向量生成)
路径:
POST /v1/embeddings
请求:
{
"model": "text-embedding-3-small",
"input": "这是一个测试"
}
响应:
{
"object": "list",
"data": [
{
"object": "embedding",
"embedding": [0.0123, -0.0456, ...],
"index": 0
}
],
"usage": {
"prompt_tokens": 5,
"total_tokens": 5
}
}
3. Images (图像生成/编辑)
路径:
POST /v1/images/generations
请求:
{
"model": "gpt-image-1",
"prompt": "一只戴着墨镜的猫",
"size": "512x512",
"n": 1
}
响应:
{
"created": 1690000000,
"data": [
{
"url": "https://..."
}
]
}
4. Audio (语音转文本 / 文本转语音)
语音转文本 (Whisper)
POST /v1/audio/transcriptions
上传音频文件,返回文字。
文本转语音 (TTS)
POST /v1/audio/speech
输入文本,返回音频流。
通用字段:
-
model:指定模型名(如 gpt-4o-mini、qwen3 等)
-
usage:返回 token 使用量
-
id:唯一请求ID
-
object:返回对象类型
-
created:时间戳
可以用
postman或者Apifox模拟上述操作。如果在本地搭建一个Ollama,装上一个开源大模型,模拟操作会更容易,因为这种情形下不需要访问 api-key 。
用python访问多种大模型
大多数兼容实现(如 Ollama、vLLM、LM Studio、OpenRouter、FastChat 等)都遵循这个规范,所以只要:
pip install openai
然后:
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="your-key")
resp = client.chat.completions.create(
model="qwen3",
messages=[{"role": "user", "content": "你好"}]
)
print(resp.choices[0].message.content)
就能直接用。
使用不同大模型API服务时,只要修改 base_url、api_key、model即可,对于本地部署的 Ollama ,只需要设置 base_url(通常为:
http://localhost:11434/v1),无需设置 api_key 。
总结
通过以上对 OpenAI API 的简单介绍,我们可以发现它的实现简洁明了,由于兼容的大模型API比较多,我们可以很方便的用它来实现一个通用的大语言模型客户端。
🪐祝好运🪐