API 参考

POST /v1/messages

LLMs Text

POST /v1/messages

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" }
  ]
}

必填

字段说明
modelClaude 模型(Sonnet / Haiku / Opus 系列)或支持的 gpt-* 模型
max_tokens最多生成 token 数
messages对话数组

/v1/messages 会按 model 自动路由到对应的上游服务,支持 claude-* 和 gpt-* 模型。使用 Anthropic Messages 协议的客户端(如 Claude Code)可通过此接口接入这些模型。

常用可选

字段说明
streamtrue 启用 SSE
system系统提示词
temperature0~1
toolsFunction 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 不存在等)
401token 无效
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)