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


🪐祝好运🪐

相关推荐
结局无敌1 分钟前
构建百年工程:cann/ops-nn 的可持续演进之道
人工智能·cann
MSTcheng.1 分钟前
CANN算子开发新范式:基于ops-nn探索aclnn两阶段调用架构
人工智能·cann
renhongxia12 分钟前
如何基于知识图谱进行故障原因、事故原因推理,需要用到哪些算法
人工智能·深度学习·算法·机器学习·自然语言处理·transformer·知识图谱
做人不要太理性3 分钟前
CANN Runtime 运行时与维测组件:异构任务调度、显存池管理与全链路异常诊断机制解析
人工智能·自动化
算法备案代理5 分钟前
大模型备案与算法备案,企业该如何选择?
人工智能·算法·大模型·算法备案
酷酷的崽7985 分钟前
CANN 生态可维护性与可观测性:构建生产级边缘 AI 系统的运维体系
运维·人工智能
哈__6 分钟前
CANN加速Inpainting图像修复:掩码处理与边缘融合优化
人工智能
深鱼~8 分钟前
ops-transformer算子库:解锁昇腾大模型加速的关键
人工智能·深度学习·transformer·cann
笔画人生13 分钟前
进阶解读:`ops-transformer` 内部实现与性能调优实战
人工智能·深度学习·transformer
毕设源码_廖学姐13 分钟前
计算机毕业设计springboot招聘系统网站 基于SpringBoot的在线人才对接平台 SpringBoot驱动的智能求职与招聘服务网
spring boot·后端·课程设计