程序员应该熟悉的概念(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比较多,我们可以很方便的用它来实现一个通用的大语言模型客户端。


🪐祝好运🪐

相关推荐
Lei活在当下5 小时前
【AI手记系列-2026/6/18】iSparto & Harness,Caveman 以及AI时代的生存指南
人工智能·llm·openai
冬奇Lab7 小时前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
冬奇Lab7 小时前
Agent 系列(22):Context Engineering 深度——三种上下文管理策略的量化对比
人工智能·agent
hboot7 小时前
AI工程师第二课 - 数据处理
人工智能·python·数据分析
ServBay7 小时前
打通 AI 编程本地运维边界,利用 MCP 协议简化环境与服务管理
后端·ai编程·mcp
程序员cxuan7 小时前
DeepSeek 杀入多模态,识图功能正式上线!
人工智能·后端·程序员
米小虾9 小时前
告别单打独斗:2026年多Agent协作架构实战指南
人工智能·agent
IT_陈寒10 小时前
SpringBoot这个自动配置坑我跳了三次
前端·人工智能·后端
Larcher11 小时前
AI Loop:让AI像人一样自主完成任务的核心机制
javascript·人工智能·设计模式