更新于 2026-04-14
Anthropic API Proxy: 零修改接入 Claude
大多数「LLM 网关」只做 OpenAI 兼容的 /v1/chat/completions。ModelServer 多做了一层 — 完整实现 Anthropic 原生 /v1/messages,让 Anthropic 官方 SDK / Claude Code 只改 base URL 就能接入,不用写适配层。
为什么需要原生 Anthropic API
Anthropic 的 SDK 和 Claude Code 都直接走 POST /v1/messages,请求体 schema 与 OpenAI 的 /v1/chat/completions 完全不同。几个具体差异:
- 消息结构:Anthropic 的
system是顶层字段,不是 message 数组里的一条 - Tool use:
tool_use/tool_result是 content block,不是 function call - Prompt caching:
cache_control是 Anthropic 私有字段,OpenAI schema 里放不下 - Streaming event:Anthropic 用
message_start / content_block_delta等 event 类型,不是 OpenAI 的 delta
纯 OpenAI-compatible 网关调 Claude 时会做一层「OpenAI → Anthropic」转译,高级功能就会丢。原生代理直接透传,零损耗。
端点
ModelServer Anthropic Messages API
POST https://modelserver.dev/v1/messages
Headers:
anthropic-version: 2023-06-01
x-api-key: sk-你的key # 或 Authorization: Bearer sk-...
content-type: application/json请求体 schema 与 Anthropic 官方完全一致。
Python SDK 接入
Anthropic Python SDK
from anthropic import Anthropic
client = Anthropic(
base_url="https://modelserver.dev",
api_key="sk-你的key",
)
msg = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "你好"}],
)
print(msg.content[0].text)Node SDK 接入
Anthropic Node SDK
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
baseURL: "https://modelserver.dev",
apiKey: "sk-你的key",
});
const msg = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
messages: [{ role: "user", content: "你好" }],
});
console.log(msg.content[0].text);原生 curl
curl
curl https://modelserver.dev/v1/messages \
-H "x-api-key: sk-你的key" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "你好"}]
}'高级功能
Streaming
透传 Anthropic 的 SSE 事件,stream: true 即可。message_start、content_block_start、content_block_delta、message_delta、message_stop 五种事件按官方文档处理。
Tool use
完整支持 tools 参数、tool_use 和 tool_result content block。Claude Code 的全部工具调用都走这条链路。
Prompt caching
透传 cache_control: { type: "ephemeral" }。系统提示 + 大上下文缓存可省 90% 输入成本,计费按 Anthropic 缓存读取费率。
同时支持 OpenAI 形
ModelServer 在同一台服务器上同时暴露
/v1/messages(Anthropic)和 /v1/chat/completions(OpenAI),一把 key 用哪个端点都行。混用也 OK。