LLM API 接口规范对比

不同的 AI 公司提供的 API 接口规范各不相同。本文对比 OpenAI、Anthropic、Google 和 Cohere 的 API 格式差异,帮你理解各平台的接口设计和相互转换方法。

各平台 API 概览

请求格式对比

OpenAI 格式

// POST https://api.openai.com/v1/chat/completions
{
  "model": "gpt-4o",
  "messages": [
    {"role": "system", "content": "你是助手"},
    {"role": "user", "content": "你好"}
  ],
  "max_tokens": 1024,
  "temperature": 0.7,
  "stream": false
}

// 认证: Authorization: Bearer sk-xxx

Anthropic 格式

// POST https://api.anthropic.com/v1/messages
{
  "model": "claude-sonnet-4-20250514",
  "max_tokens": 1024,
  "system": "你是助手",
  "messages": [
    {"role": "user", "content": "你好"}
  ],
  "temperature": 0.7,
  "stream": false
}

// 认证: x-api-key: sk-ant-xxx
// 版本: anthropic-version: 2023-06-01

Google Gemini 格式

// POST https://generativelanguage.googleapis.com/v1/models/gemini-pro:generateContent
{
  "contents": [
    {
      "role": "user",
      "parts": [{"text": "你好"}]
    }
  ],
  "systemInstruction": {
    "parts": [{"text": "你是助手"}]
  },
  "generationConfig": {
    "maxOutputTokens": 1024,
    "temperature": 0.7
  }
}

// 认证: ?key=AIza-xxx 或 Authorization: Bearer token

Cohere 格式

// POST https://api.cohere.ai/v1/chat
{
  "model": "command-r-plus",
  "message": "你好",
  "preamble": "你是助手",
  "temperature": 0.7,
  "max_tokens": 1024,
  "chat_history": [
    {"role": "USER", "message": "之前的消息"},
    {"role": "CHATBOT", "message": "之前的回复"}
  ]
}

// 认证: Authorization: Bearer xxx

响应格式对比

OpenAI 响应

{
  "id": "chatcmpl-xxx",
  "object": "chat.completion",
  "choices": [{
    "index": 0,
    "message": {"role": "assistant", "content": "你好!"},
    "finish_reason": "stop"
  }],
  "usage": {"prompt_tokens": 10, "completion_tokens": 5, "total_tokens": 15}
}

Anthropic 响应

{
  "id": "msg_xxx",
  "type": "message",
  "role": "assistant",
  "content": [{"type": "text", "text": "你好!"}],
  "stop_reason": "end_turn",
  "usage": {"input_tokens": 10, "output_tokens": 5}
}
提示:claude4u.com(轻舟 AI)中转服务提供统一的 OpenAI 兼容接口,自动将请求转换为各平台的原生格式。你只需掌握 OpenAI 格式,即可调用所有平台的模型。

关键差异总结

消息格式

流式输出

认证方式

格式转换实现

def openai_to_anthropic(openai_request):
    """OpenAI 格式转 Anthropic 格式"""
    messages = openai_request["messages"]
    system_msg = ""
    other_msgs = []

    for msg in messages:
        if msg["role"] == "system":
            system_msg = msg["content"]
        else:
            other_msgs.append(msg)

    return {
        "model": openai_request.get("model", "claude-sonnet-4-20250514"),
        "max_tokens": openai_request.get("max_tokens", 1024),
        "system": system_msg,
        "messages": other_msgs,
        "temperature": openai_request.get("temperature", 1.0)
    }
注意:各平台的参数名称和取值范围有细微差异。例如 temperature 的有效范围在不同平台可能不同。格式转换时需要注意参数映射和边界值处理。

总结

不同 AI 平台的 API 格式差异增加了多模型集成的复杂度。claude4u.com(轻舟 AI)中转服务统一了接口格式,让开发者只需对接 OpenAI 标准格式,即可使用所有平台的模型,大幅降低集成成本。

Start Using 轻舟 AI

Stable, fast AI API relay — supports Claude, OpenAI, Gemini and more

Sign Up Now