程序员应该熟悉的概念(2)OpenAI API

大名鼎鼎的 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 (聊天接口)

路径:

bash 复制代码
POST /v1/chat/completions

请求:

json 复制代码
{
  "model": "gpt-4o-mini",
  "messages": [
    {"role": "system", "content": "你是一个有帮助的助手"},
    {"role": "user", "content": "你好,请介绍一下你自己"}
  ],
  "temperature": 0.7,
  "stream": false
}

响应:

json 复制代码
{
  "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 (向量生成)

路径:

bash 复制代码
POST /v1/embeddings

请求:

json 复制代码
{
  "model": "text-embedding-3-small",
  "input": "这是一个测试"
}

响应:

css 复制代码
{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "embedding": [0.0123, -0.0456, ...],
      "index": 0
    }
  ],
  "usage": {
    "prompt_tokens": 5,
    "total_tokens": 5
  }
}

3. Images (图像生成/编辑)

路径:

bash 复制代码
POST /v1/images/generations

请求:

json 复制代码
{
  "model": "gpt-image-1",
  "prompt": "一只戴着墨镜的猫",
  "size": "512x512",
  "n": 1
}

响应:

json 复制代码
{
  "created": 1690000000,
  "data": [
    {
      "url": "https://..."
    }
  ]
}

4. Audio (语音转文本 / 文本转语音)

语音转文本 (Whisper)

bash 复制代码
POST /v1/audio/transcriptions

上传音频文件,返回文字。

文本转语音 (TTS)

bash 复制代码
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 等)都遵循这个规范,所以只要:

bash 复制代码
pip install openai

然后:

python 复制代码
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比较多,我们可以很方便的用它来实现一个通用的大语言模型客户端。


🪐祝好运🪐

相关推荐
lzhdim6 小时前
AI的分类
人工智能·算法·机器学习·分类·数据挖掘
程序员海军7 小时前
用了两年多 GPT,我最近开始换模型了,还折腾了个求职避坑 Agent
前端·人工智能·后端
码士集团小青7 小时前
SpringBoot 集成缓存性能之王 Caffeine
spring boot·后端·缓存
AIsoft_86897 小时前
人才评估中的关键信息如何沉淀?
人工智能·iphone
紧跟先前的步伐8 小时前
Go AI Agent 实战 06|JSON 结构化输出与 Go 后端校验
人工智能·ai·golang
vibecoding779 小时前
Codex 分层用模型完整教程:让 GPT-6.1 Sol 拍板、GPT-6 Luna 跑侦察
人工智能·gpt
新知图书9 小时前
1.3 启动第一个机器人
人工智能·机器人
excel9 小时前
IndexNow:让搜索引擎更快发现网站更新的主动通知协议
前端·后端·架构
Json____10 小时前
用 FastAPI + Vue3 打造一套完整的在线考试系统:从组卷到阅卷的业务闭环实践
后端·node.js·fastapi·it学习·wwwoop.com
明志数科10 小时前
自主探索范式下机器人示教数据的工程定位:少量示范为何对质量更敏感
人工智能·机器学习·机器人