Anthropic SDK
使用 Anthropic SDK 通过 HopBase 调用 Claude 模型。
使用 Anthropic SDK 调用 Claude 模型时,请保留 Messages API 结构,只替换 Base URL、Claude 分组密钥和模型 ID。
| 项目 | 填写值 |
|---|---|
| Base URL | https://api.hop-base.com(不带 /v1) |
| 密钥环境变量 | HOPBASE_CLAUDE_API_KEY |
| 协议 | Anthropic Messages:POST /v1/messages;也支持 POST /v1/messages/count_tokens |
| 模型 ID | 以 Claude 分组密钥调用 GET /v1/models 的返回值为准 |
安装并发送最小请求
安装 SDK:
python -m pip install anthropic发送请求:
import os
from anthropic import Anthropic
client = Anthropic(
base_url="https://api.hop-base.com",
api_key=os.environ["HOPBASE_CLAUDE_API_KEY"],
)
msg = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[{"role": "user", "content": "你好"}],
)
print(msg.content[0].text)使用「Claude Max (官号满血版)」或「Claude Max (官号满血版) - 限时特惠」分组的密钥。「Claude Max (ccmax)」分组只供 Claude Code 客户端使用,SDK / API 调用会被拒绝。
不要把 Claude 分组密钥配置成 OpenAI Compatible。Claude SDK 应保持 Anthropic 原生鉴权和 Messages API 请求结构;Claude 密钥调 OpenAI 协议接口会返回 404。
读取本次扣费
计费的非流式请求会在响应头 X-HopBase-Cost-USD 里返回本次实际从余额扣除的美元金额,X-HopBase-Cost 是同一笔扣费的人民币金额,X-HopBase-Currency 是 X-HopBase-Cost 的币种(恒为 CNY);响应的 usage 里也有同样的 cost、cost_usd 与 currency,SDK 会把它们当作额外字段保留。流式响应都不带,message_delta 的 usage 保持原样,扣费请到控制台「使用记录」查看。完整口径见扣费说明。
raw = client.messages.with_raw_response.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[{"role": "user", "content": "只回复 ok"}],
)
print(raw.headers.get("x-hopbase-cost"), raw.headers.get("x-hopbase-cost-usd"), raw.headers.get("x-hopbase-currency"))
msg = raw.parse() # 与不带 with_raw_response 时的返回值相同
print(msg.usage.cost, msg.usage.cost_usd, msg.usage.currency) # 额外字段,与响应头同值支持的请求参数
下表只列网关会补值或特别处理的部分;其余 Messages API 字段(system、tools、thinking、temperature 等)原样转发,取值范围按 Anthropic 官方规格。各模型的上下文与输出上限见模型列表。
| 参数 / 请求头 | 必填 | 类型与限制 | 默认 | 说明 |
|---|---|---|---|---|
x-api-key 或 Authorization: Bearer | 必填 | 以 sk- 开头的 Claude 分组密钥 | — | 两种请求头都接受;缺失返回 401 missing_api_key,格式不对返回 401 invalid_api_key |
model | 必填 | string,当前密钥分组内的模型 ID | — | 分组不包含该模型时返回 404 model_not_found |
max_tokens | 可选 | integer;网关不设上限,最大值按模型官方规格 | 4096 | 官方 API 要求必填,HopBase 缺省时补为 4096:长输出会在 4096 处截断(stop_reason: "max_tokens"),请显式设置 |
messages | 必填 | array,按 Anthropic 官方格式 | — | 原样转发 |
stream | 可选 | boolean | false | true 返回 Anthropic SSE 事件流 |
anthropic-version / anthropic-beta | 可选 | string 请求头 | — | SDK 会自动带上;原样转发 |
整个请求体上限 60 MB,超过返回 413。
下一步
- 在终端里使用 Claude 见 Claude Code
- GPT 模型改用 OpenAI SDK
- 报错时看报错速查