LLM API 格式与调用方式指南(超清晰版)

部署运行你感兴趣的模型镜像

本指南将帮助你一次性弄懂:

  • 为什么会有多种 LLM API 格式
  • 各种格式的典型使用场景
  • 它们之间的核心差别
  • 企业为什么愿意兼容 OpenAI API
  • 如何统一封装所有格式

内容适合开发者、工程师、应用构建者阅读。


🌐 目录

  1. LLM API 为什么会出现各种格式?
  2. OpenAI Chat / Completions(事实标准)
  3. HuggingFace TGI API 格式
  4. Ollama API 格式
  5. vLLM API 格式
  6. LMDeploy API 格式
  7. 各 API 格式的核心对比表
  8. 各格式存在的意义
  9. 为什么行业都在向 OpenAI 格式靠拢?
  10. 如何写一个“适配所有格式的统一调用器”(示例代码)

#️⃣ 1. 为什么会出现各种 LLM API 格式?

原因来自三个阶段的发展:


阶段 1:早期模型输出 = “文本补全”

GPT-2、GPT-3 时代:

输入:prompt
输出:补全文本

结构简单,所以 API 也很简单:

{ "prompt": "Hello", "max_tokens": 100 }

-> OpenAI v1/completions


阶段 2:对话模型出现

ChatGPT 爆火后,人们发现:

✔ 需要处理角色
✔ 需要存上下文
✔ 需要 system prompt
✔ 需要 tools/function calling

于是 Chat API 出现:

/v1/chat/completions

阶段 3:各平台想兼容 OpenAI 生态

OpenAI 的格式变成了行业事实标准。

vLLM、Ollama、国内很多平台(包括你的公司)都开始支持:

  • 只要换个 URL,代码不用变

所以现在你只要修改:

  • API key
  • URL

几乎所有服务都能用。


#️⃣ 2. OpenAI Chat API(行业事实标准)

这是目前使用最多、生态最好的 API 格式。


✔ 典型请求:

POST /v1/chat/completions
{
  "model": "gpt-4",
  "messages": [
    {"role": "system", "content": "你是助手"},
    {"role": "user", "content": "你好"}
  ],
  "temperature": 0.7
}

✔ 返回格式:

{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "你好!"
      }
    }
  ]
}

✔ 特点总结:

特性描述
消息格式messages 数组,含 role(system/user/assistant)
多轮对话内置
工具调用完整支持
生态最强

#️⃣ 3. HuggingFace TGI(Text Generation Inference)格式

专为**模型推理加速(高吞吐)**设计。


✔ 请求格式:

POST /generate
{
  "inputs": "你好,请介绍一下你自己",
  "parameters": {
    "temperature": 0.7,
    "max_new_tokens": 200
  }
}

✔ 返回格式:

{
  "generated_text": "我是一个语言模型..."
}

✔ 特点:

特性描述
对话结构❌ 没有 messages
专注点高吞吐推理(企业常用)
生态弱于 OpenAI

适合只做一次性文本生成的服务。


#️⃣ 4. Ollama API(本地模型)

非常简单,设计给普通人用的本地推理。


✔ 请求:

POST /api/generate
{
  "model": "llama2",
  "prompt": "写一首诗",
  "stream": false
}

✔ 返回:

{
  "response": "春风又绿江南岸..."
}

✔ 特点:

特性描述
部署极易部署(本地)
生态中等
对话格式没有 messages

#️⃣ 5. vLLM API 格式

vLLM 是主流开源推理框架,支持:

  • OpenAI Chat API(最常用)
  • OpenAI Completions API
  • 也有私有拓展

一般使用方式都是兼容 OpenAI 格式。


✔ 请求:

POST /v1/chat/completions

与 OpenAI 完全一样。


✔ 特点:

特性描述
兼容性100% 模仿 OpenAI
生态
推理速度很快

行业大量用 vLLM 搭建内部 ChatGPT 服务。


#️⃣ 6. LMDeploy API 格式

同样支持:

  • OpenAI chat/completions
  • 自己的推理 endpoint

LMDeploy 更适合企业部署 Qwen 系列模型。


✔ 大部分时候你只用 OpenAI 格式调用它。


#️⃣ 7. 各格式核心对比表(最重要)

格式输入结构适合场景优点缺点
OpenAI Chatmessages对话、Agent、工具调用生态最强略复杂
OpenAI Completionsprompt补全简单不适合对话
TGIinputs + parameters企业推理服务高吞吐没有对话结构
Ollamaprompt本地模型易用、轻量不适合大规模服务
vLLM兼容 OpenAI企业服务快、兼容性好需要 GPU

#️⃣ 8. 这些格式为什么“同时存在”?

因为不同团队要解决不同问题:

  • OpenAI 解决对话和生态问题
  • TGI 解决大规模推理的问题
  • Ollama 解决本地部署的问题
  • vLLM 解决通用推理问题

就像:

  • 有 USB-A、USB-C、HDMI、DP
  • 因为要适配不同设备需求

#️⃣ 9. 为什么行业都在向 OpenAI 格式靠拢?

非常关键:

✔ 1. 生态最大

无数代码和项目已经支持它。

✔ 2. 迁移成本最低

换模型 = 换 URL 和 API key 即可。

✔ 3. 支持对话、工具调用、RAG

扩展性极强。

✔ 4. LangChain、LlamaIndex、各种 SDK 默认支持

其他格式需要写适配器,成本大。

因此:

大模型世界已经基本统一到 OpenAI 格式。

你的公司服务也是如此,因此你用同样的代码就能调用你们的内部模型。


#️⃣ 10. 如何写一个“适配所有格式的统一调用器”(送你企业级示例)

class UniversalLLM:
    def __init__(self, api_type, url, api_key=None, model=None):
        self.api_type = api_type
        self.url = url
        self.api_key = api_key
        self.model = model

    def call(self, messages):
        if self.api_type == "openai_chat":
            return self._call_openai_chat(messages)
        elif self.api_type == "tgi":
            return self._call_tgi(messages[-1]["content"])
        elif self.api_type == "ollama":
            return self._call_ollama(messages[-1]["content"])
        else:
            raise ValueError("Unsupported API type")

    def _call_openai_chat(self, messages):
        payload = {"model": self.model, "messages": messages}
        headers = {"Authorization": f"Bearer {self.api_key}"}
        return requests.post(self.url, json=payload, headers=headers).json()

    def _call_tgi(self, text):
        payload = {"inputs": text}
        return requests.post(self.url, json=payload).json()

    def _call_ollama(self, text):
        payload = {"prompt": text}
        return requests.post(self.url, json=payload).json()

🎉 最终总结

1. OpenAI 的 Chat API 已成为事实标准

所有主流平台都要兼容它。

2. 其他格式是为了不同需求(高吞吐、本地部署等)

3. 企业内部系统一般都会支持 OpenAI 格式,让接入最轻松

4. 你可以写一个统一适配器来兼容所有格式

您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值