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
- 報錯時看報錯速查