系统学习 AI 学习路径:从 GPU 运行时到推理、微调与 RAG 评估

版本信息最后核对:2026-10-24

openai-api-compatible

OpenAI 兼容 API 对照:vLLM、SGLang、Ollama、TGI 等服务的端点与字段差异

补充说明

很多推理服务都提供“OpenAI 兼容”端点,让现有 OpenAI SDK/客户端通过改 base_url 就能接入。但兼容程度不一致:聊天补全、流式输出、工具调用、视觉/音频、embedding、错误码和用量字段都可能不同。选型时不要只看“支持 OpenAI API”,要按实际用到的端点和字段逐项验证。

常见服务:vLLM、SGLang、Ollama、TGI、LMDeploy、llama-server、Xinference、BentoML、Ray Serve,以及 TEI/Infinity 的 embedding 端点。多数聊天服务提供 /v1/chat/completions 和 /v1/models,embedding 服务提供 /v1/embeddings 或自有 /embed。

常用示例

# 通用聊天补全
curl http://localhost:8000/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{"model":"Qwen/Qwen2.5-7B-Instruct","messages":[{"role":"user","content":"你好"}],"stream":false}'

# 流式输出(SSE)
curl -N http://localhost:8000/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{"model":"Qwen/Qwen2.5-7B-Instruct","messages":[{"role":"user","content":"写一个 shell 循环"}],"stream":true}'

# 列出模型
curl http://localhost:8000/v1/models

# 工具调用
curl http://localhost:8000/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{"model":"Qwen/Qwen2.5-7B-Instruct","messages":[{"role":"user","content":"北京天气"}],"tools":[{"type":"function","function":{"name":"get_weather","parameters":{"type":"object","properties":{"city":{"type":"string"}}}}}]}'
# OpenAI SDK:改 base_url 和 api_key 即可接入
from openai import OpenAI

client = OpenAI(base_url="http://localhost:8000/v1", api_key="dummy")
resp = client.chat.completions.create(
    model="Qwen/Qwen2.5-7B-Instruct",
    messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)

上线前做一张兼容性矩阵:端点、流式、工具调用、JSON mode、视觉、音频、embedding、错误格式、usage 字段,逐项用真实请求验证。

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. 用 OpenAI SDK 接入本地服务时,base_url 通常要写到哪一层?
  2. 为什么“支持 OpenAI API”不等于可以直接替换?
  3. 工具调用兼容性要重点验证哪些点?
答案
  1. 通常写到 /v1,例如 http://localhost:8000/v1;SDK 会在后面拼接 /chat/completions 等路径。
  2. 不同服务只实现部分端点/字段,工具调用、流式、JSON mode、视觉、错误格式和 usage 可能不同;要按实际能力逐项验证。
  3. 重点验证 tools 定义、tool_calls 返回结构、并行调用、参数 JSON 转义、流式下的增量格式和多轮工具结果回传。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令