对话

Anthropic Messages 和 Claude Code

Claude 模型也兼容 Anthropic 的 Messages API,因此只需更换 Base URL 和密钥,就能使用 Anthropic 的 SDK、Claude Code 及基于它们构建的工具。

POST/v1/messages

Base URL 为 https://api.zurelay.com (SDK 会自动添加 /v1/messages)。通过 x-api-key 或 Authorization: Bearer 发送密钥,并附带 anthropic-version: 2023-06-01。此接口仅提供 Claude 模型;其他模型请使用 /v1/chat/completions。

使用 Anthropic 的 SDK

import os
import anthropic
client = anthropic.Anthropic(
base_url="https://api.zurelay.com",
api_key=os.environ["ZURELAY_API_KEY"],
)
message = client.messages.create(
model="claude-opus-5-5",
max_tokens=1024,
system="You are a careful code reviewer.",
messages=[{"role": "user", "content": "Review this function: def add(a, b): return a - b"}],
)
print(message.content[0].text)

Anthropic 的 Messages API 中的内容均会透传 (唯独 metadata 由我们处理): 字符串或内容块形式的 system (可用 cache_control 启用提示词缓存)、tools、thinking、output_config、stop_sequences、temperature、事件格式相同的流式响应,以及 anthropic-beta 请求头。图片和 PDF 分别以 image 和 document 内容块传入:请参阅图片、PDF、音频和视频。从 Opus 4.7 起,Anthropic 不再允许 Claude 请求携带 temperature、top_p 和 top_k,因此我们会从这些模型的请求中移除这些参数,而不是返回错误。

思考

Claude 会自适应思考:它会自行判断请求需要多少思考,output_config.effort 则用于设置思考强度: low、medium、high、xhigh (超高) 或 max。在 thinking 中添加 display: "summarized",即可在 thinking 内容块中获取思考摘要。

import os
import anthropic
client = anthropic.Anthropic(
base_url="https://api.zurelay.com",
api_key=os.environ["ZURELAY_API_KEY"],
)
message = client.messages.create(
model="claude-opus-5-5",
max_tokens=32000,
thinking={"type": "adaptive", "display": "summarized"},
output_config={"effort": "xhigh"},
messages=[{"role": "user", "content": "How many primes are there below 1,000?"}],
)
for block in message.content:
print(block.thinking if block.type == "thinking" else block.text)
  • Claude Opus 5.5 和 Fable 模型始终会思考:未设置强度时,Opus 5.5 使用 medium,Fable 使用 high。即使要求它们不思考,也会以 low 运行。
  • Claude Sonnet 5.5 和 Opus 5 默认以 high 思考,Claude Haiku 5.5 则使用 medium. Opus 4.6 至 4.8 仅在传入 thinking 时才会思考。Opus 4.6 不支持 xhigh,因此会以 high 运行。
  • 旧版形式 thinking: { type: "enabled", budget_tokens } 适用于所有 Claude 模型:不接受该形式的模型会改用最接近的强度进行自适应思考。Claude Haiku 4.5 仅支持旧版形式;传入自适应思考配置时,我们会为其设置思考预算。
  • 思考按输出 token 计费,因此在 xhigh 和 max 中使用 max_tokens 时,要为思考预留额度,并对长回答使用流式输出。设置级别后,x-zurelay-reasoning-effort 响应头会显示实际使用的级别。

提示词缓存

缓存的用法与 Anthropic 相同:在需要缓存的内容块或整个请求上添加 cache_control,即可缓存五分钟;添加 "ttl": "1h" 则可缓存一小时。输入的各部分按 Anthropic 的方式计费:

输入计费价格用量字段
从缓存读取模型的缓存读取价格cache_read_input_tokens
写入缓存,保留五分钟输入价格的 1.25 倍ephemeral_5m_input_tokens
写入缓存,保留一小时输入价格的 2 倍ephemeral_1h_input_tokens
其余输入输入价格input_tokens

两种缓存写入的用量分别记录在 usage.cache_creation 中,cache_creation_input_tokens 则是两者的总和。各模型页面均列有缓存价格。只有你指定缓存的内容才按写入计费:请求未设置 cache_control 时,所有未从缓存读取的输入均按输入价格计费;指定缓存五分钟的输入绝不会按一小时计费。

Claude Code

设置五个环境变量(基础 URL、你的密钥和三个模型别名),将 Claude Code 接入 Zurelay,然后照常运行:

Shell
export ANTHROPIC_BASE_URL="https://api.zurelay.com"
export ANTHROPIC_AUTH_TOKEN="$ZURELAY_API_KEY"
export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-opus-5-5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-5-5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="claude-haiku-5-5"
claude

如需保存配置,将相同的值写入 ~/.claude/settings.json 的 env 块。完整指南以及 Cursor、Cline 等工具的指南均位于集成。

Claude Code 的 /effort 级别会以 output_config.effort 传给模型,因此 xhigh 和 max 的用法与 Anthropic 相同。Ultracode 是 Claude Code 的设置,不是思考强度级别:它使用当前会话的级别运行(使用 --effort ultracode 启动 Claude Code 时为 xhigh)。

计算 token 数量

POST/v1/messages/count_tokens

接受与 /v1/messages 相同的请求体,返回 { "input_tokens": 1234 },用于估算该请求的 token 数量。免费。

错误

错误以 Anthropic 的格式({ "type": "error", "error": { "type", "message" } })返回,含义与错误页面相同。错误响应不含 code:请使用 HTTP 状态码和 error.type。

部分 Claude 模型只能通过 /v1/chat/completions 读取 PDF。将 PDF 发送到 /v1/messages 时,错误信息会提示应使用哪个端点。图片、PDF、音频和视频中的表格列出了各模型支持读取的内容。
  • 提示:Anthropic 的 token 计数结果与我们的可能略有差异;计费以响应中的用量为准。

有疑问,或发现内容缺失?联系我们的支持团队,我们会通过邮件回复,通常只需一分钟。