Skip to content

LLM 代理 API

LLM 代理 API 是面向模型客户端的兼容层,路径前缀为 /v1/*。它用于承接 OpenAI / Anthropic 兼容请求,并在转发前后执行鉴权、策略校验、审计、日志记录、格式转换和上游路由。

Base URL

text
https://your-domain/v1

本地开发环境通常是:

text
http://localhost:3000/v1

认证

OpenAI 兼容格式:

http
Authorization: Bearer <key>

Anthropic 兼容格式:

http
x-api-key: <key>

两种格式可混用,服务器会自动识别。实际可用模型、客户端类型和来源 IP 由 Key 对应策略决定。

兼容端点

方法路径说明
POST/v1/chat/completionsOpenAI Chat Completions 兼容接口
POST/v1/responsesOpenAI Responses API 兼容接口
POST/v1/messagesAnthropic Messages 兼容接口
GET/v1/models模型列表

请求体和响应体优先参考 OpenAI / Anthropic 官方文档。LLM Fence 不重新定义这些通用 schema,只补充自身在认证、策略、审计、日志和路由上的行为。

模型列表

GET /v1/models 返回配置范围内的模型列表。

  • 未携带 Key:显示全部配置模型
  • 携带有效 Key:按策略中的允许模型过滤

响应中会包含 supported_formats 字段,用于标识模型支持的请求格式。

json
{
  "object": "list",
  "data": [
    {
      "id": "gpt-4o",
      "object": "model",
      "created": 1710000000,
      "owned_by": "my-provider",
      "supported_formats": ["openai", "anthropic"]
    }
  ]
}

流式响应

请求体中设置 "stream": true 即启用 SSE 流式传输。

流式响应格式与入口格式一致:

  • OpenAI 兼容请求返回 OpenAI 兼容 SSE
  • Anthropic 兼容请求返回 Anthropic 兼容 SSE

如果配置了格式转换,流式响应同样会被转换。

错误响应

代理 API 统一返回 OpenAI 兼容错误结构:

json
{
  "error": {
    "message": "invalid api key",
    "type": "invalid_request_error"
  }
}

常见状态码:

状态码说明
401Key 缺失或无效
403Key 已禁用,或策略校验失败
404模型未找到
500上游错误或内部异常

请求追踪

每个请求都会返回 x-request-id 响应头,格式为 req_ 加 UUID,可用于日志查询和问题排查。