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


🪐祝好运🪐

相关推荐
weixin_669545201 分钟前
高精度二合一锂电池保护芯片XR2130B
人工智能·硬件工程·信息与通信
小毅&Nora26 分钟前
【Spring AI Alibaba】⑥ 记忆管理(Memory):让Agent拥有“长期记忆“的智能方法
人工智能·spring ai·记忆管理
kevin_kang28 分钟前
06-Next.js 13构建现代化AI聊天界面
人工智能
Codebee29 分钟前
实战|Ooder 钩子机制全解析:AI 协同开发与权限框架集成实战
人工智能·后端
Coder_Boy_34 分钟前
基于SpringAI企业级智能教学考试平台视频辅助学习模块全业务闭环方案
人工智能·spring cloud
kevin_kang34 分钟前
09-JWT认证在Next.js中的最佳实践
人工智能
AI街潜水的八角35 分钟前
基于Opencv的二维码识别与创建
人工智能·opencv·计算机视觉
helloworld也报错?35 分钟前
目标检测系列之YOLOv11——v8模型的继续改进
人工智能·python·目标检测·目标跟踪
微光闪现35 分钟前
国际航班动态提醒与延误预测优选平台指南
大数据·人工智能·算法