Anthropic 官方 /v1/messages 协议,字段与官方完全一致,现有 Anthropic SDK 代码几乎可直接迁移。
端点
POST https://relay.4aicode.net/v1/messages
请求
POST /v1/messages HTTP/1.1
Host: relay.4aicode.net
Authorization: Bearer sk-4ai-xxxxxxxxxxxxxxxx
anthropic-version: 2023-06-01
content-type: application/json
{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"stream": true,
"messages": [
{ "role": "user", "content": "Say hi" }
]
}
必填
| 字段 | 说明 |
|---|---|
model | Claude 模型(Sonnet / Haiku / Opus 系列)或支持的 gpt-* 模型 |
max_tokens | 最多生成 token 数 |
messages | 对话数组 |
/v1/messages 会按 model 自动路由到对应的上游服务,支持 claude-* 和 gpt-* 模型。使用 Anthropic Messages 协议的客户端(如 Claude Code)可通过此接口接入这些模型。
常用可选
| 字段 | 说明 |
|---|---|
stream | true 启用 SSE |
system | 系统提示词 |
temperature | 0~1 |
tools | Function calling |
stop_sequences | 遇到就停 |
流式响应
stream: true 返回 text/event-stream,事件序列与官方一致:
event: message_start
event: content_block_start
event: content_block_delta
event: content_block_stop
event: message_delta
event: message_stop
relay 全程不缓冲 SSE,首字节延迟基本等同直连。
非流式响应
{
"id": "msg_xxxx",
"type": "message",
"role": "assistant",
"content": [{ "type": "text", "text": "Hi!" }],
"model": "claude-sonnet-4-6",
"stop_reason": "end_turn",
"usage": { "input_tokens": 8, "output_tokens": 3 }
}
usage 是计费依据(详见 配额)。
ChatGPT 模型
Claude Code 使用 ChatGPT 模型时,只需要把模型设为支持的 gpt-*:
export ANTHROPIC_BASE_URL=https://relay.4aicode.net
export ANTHROPIC_AUTH_TOKEN=sk-4ai-xxxxxxxxxxxxxxxx
export ANTHROPIC_DEFAULT_OPUS_MODEL=gpt-5.6-terra
export ANTHROPIC_DEFAULT_OPUS_MODEL_NAME="4AICode GPT 5.6 Terra"
export ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES=effort,xhigh_effort,thinking,adaptive_thinking,interleaved_thinking
export ANTHROPIC_MODEL=opus
export ANTHROPIC_DEFAULT_HAIKU_MODEL=gpt-5.4-mini
export CLAUDE_CODE_EFFORT_LEVEL=xhigh
claude --effort xhigh
ANTHROPIC_DEFAULT_OPUS_MODEL 会让 Claude Code 向 relay 请求 gpt-5.6-terra。CLAUDE_CODE_EFFORT_LEVEL=xhigh 会通过 Anthropic output_config.effort 映射到 OpenAI Responses reasoning.effort=xhigh。
支持的模型与 /v1/chat/completions 一致:gpt-6-astra、gpt-6-sol、gpt-6.1-sol、gpt-6-luna、gpt-5.6-sol、gpt-5.6-terra、gpt-5.6-luna、gpt-5.5、gpt-5.4、gpt-5.4-mini、gpt-5.3-codex。
错误
| HTTP | 含义 |
|---|---|
| 400 | 字段错误(缺 max_tokens、model 不存在等) |
| 401 | token 无效 |
| 403 | 团队被暂停 |
| 429 | 超限流或超配额 |
| 502 | 上游 Claude 抖动,重试即可 |
| 503 | 上游服务暂时不可用,详见 服务冷却与重试 |
503 示例:
{
"code": "no_account_available",
"message": "all accounts cooling down, retry in 60s"
}
完整例子(Python)
from anthropic import Anthropic
client = Anthropic(
base_url="https://relay.4aicode.net",
api_key="sk-4ai-xxxxxxxxxxxxxxxx",
)
with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=512,
messages=[{"role": "user", "content": "用一句话介绍你自己"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)