HAI Gateway 文档中心

统一接口(灰度测试)

统一接口 Chat Completions

用一套 OpenAI 格式调用 OpenAI、Anthropic、Google 等任意厂商的对话模型,由网关自动探测目标 schema 并完成格式转换。

POSTv1/chat/completions
预览功能 · 灰度测试中

本端点目前处于灰度测试阶段,仅对部分租户开放。如果调用返回权限错误,说明当前账号尚未加入白名单。生产环境请使用对应的稳定端点(/openai/anthropic/google)。预览期间 API 行为可能在后续版本中调整,恕不另行通知。

Authorizations

Authorizationstringheaderrequired

Use the following format for authentication: Bearer sk-pat-您的AccessToken

密钥的值使用 HAI Gateway 的个人访问令牌(以 sk-pat- 开头),与 OpenAI Relay 通道完全一致,无需额外申请 API Key。

Base URL

Body 参数

请求体格式与 OpenAI 官方 Chat Completions API 完全一致,详细参数说明请参考 OpenAI 官方文档

model 字段填入任意已配置的模型 ID(可通过 List Models 获取),网关会自动识别其原生 schema:

  • OpenAI / 兼容厂商:直通,无格式转换
  • Anthropic(claude-*:自动转换为 Anthropic Messages 格式调用上游,响应再转回 OpenAI chunks
  • Google(gemini-*:自动转换为 Google generateContent 调用上游,响应再转回 OpenAI chunks

流式请求注意事项

与原生 OpenAI 端点一致,本端点流式响应会强制返回 usage:

  • 如果请求体里没有 stream_options,会自动添加 {"include_usage": true}
  • 如果已有 stream_options,会强制将 include_usage 设为 true

预览期降级特性

通过统一接口调用 Anthropic / Google 模型时,以下特性不可用或行为有差异,需要这些能力请直接使用对应厂商的原生端点:

  • 基础 tool calling:格式可映射,但并行调用、tool_choice 语义存在差异
  • Structured output:各家实现差异大,暂不支持
  • Extended thinking / reasoning:Anthropic thinking blocks、OpenAI reasoning 是各家独有特性,暂不支持
  • Prompt caching:Anthropic 显式 cache_control 无 OpenAI 对应物,暂不支持
cURL
cURL:OpenAI
curl https://api.hai.network/unified-preview/openai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-pat-您的Access Token" \
  -d '{
    "model": "gpt-5.4-2026-03-05",
    "messages": [
      {
        "role": "developer",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "Hello!"
      }
    ]
  }'
200
200:Default
{
  "id": "chatcmpl-9XYZ...",
  "object": "chat.completion",
  "created": 1741132800,
  "model": "claude-opus-4-6",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help you today?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 10,
    "total_tokens": 22
  }
}